{
  "url": "https://www.globo.com",
  "auditedAt": "2026-07-23T12:12:34.577Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of the www.globo.com portal, its Podcasts listing, a linked G1 article journey, and a 404 recovery state.",
  "page": {
    "appType": "hybrid",
    "framework": "React-like server-rendered portal with client-side personalization, advertising, and media",
    "notes": "Public Portuguese-language news and entertainment portal. Scope centers on www.globo.com; one linked G1 article was exercised as the primary content journey."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "discoverability",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "Modern Web Guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "same-document-transitions",
    "shrinking-header-on-scroll",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "improve-text-layout-and-legibility",
    "identify-inp-causes",
    "accessibility",
    "css",
    "security",
    "flicker-free-client-side-ab-testing",
    "translator",
    "search-hidden-content",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals",
    "performance",
    "optimize-image-priority",
    "optimize-preload-priority",
    "html",
    "privacy",
    "forms",
    "passkey-authentication",
    "passkey-registration",
    "required-field-feedback",
    "autofill-sign-up-form",
    "autofill-sign-in-form",
    "validate-input-after-interaction",
    "summarizer",
    "interactive-content-reveal",
    "pull-to-reveal",
    "carousel-snap-highlights",
    "defer-rendering-heavy-content"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "article desktop",
      "findingIds": [
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "other",
      "path": "evidence/content-links.json",
      "caption": "content links"
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list"
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-inclusive.json",
      "caption": "guidance search inclusive"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-performance.json",
      "caption": "guidance search performance"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-security.json",
      "caption": "guidance search security"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-seo.json",
      "caption": "guidance search seo"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-task.json",
      "caption": "guidance search task"
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F01",
        "F03",
        "F04",
        "F05",
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers",
      "findingIds": [
        "F21",
        "F24"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-baseline.json",
      "caption": "home heap baseline",
      "findingIds": [
        "F31"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-menu-repeat.json",
      "caption": "home heap menu repeat",
      "findingIds": [
        "F31"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-post.json",
      "caption": "home heap post"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F12",
        "F28"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-input-probe.json",
      "caption": "home input probe",
      "findingIds": [
        "F06",
        "F14",
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-lighthouse-summary.json",
      "caption": "home lighthouse summary",
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F11",
        "F12",
        "F13",
        "F14",
        "F16",
        "F17",
        "F18",
        "F23",
        "F29"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "home lighthouse",
      "findingIds": [
        "F08",
        "F16"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F03",
        "F05",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-motion.json",
      "caption": "home motion",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-platform-probe.json",
      "caption": "home platform probe",
      "findingIds": [
        "F04",
        "F05",
        "F12",
        "F14",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-resource-probe.json",
      "caption": "home resource probe",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F10",
        "F11",
        "F22",
        "F29",
        "F30"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers",
      "findingIds": [
        "F22",
        "F30"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found",
      "findingIds": [
        "F07",
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/podcasts-desktop.png",
      "caption": "podcasts desktop",
      "findingIds": [
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/podcasts-discoverability-crawler.png",
      "caption": "podcasts discoverability crawler",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/podcasts-discoverability-rendered.png",
      "caption": "podcasts discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/podcasts-discoverability.json",
      "caption": "podcasts discoverability",
      "findingIds": [
        "F25"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/podcasts-dom.json",
      "caption": "podcasts dom"
    },
    {
      "type": "layout",
      "path": "evidence/podcasts-layout-mobile.json",
      "caption": "podcasts layout mobile"
    },
    {
      "type": "other",
      "path": "evidence/podcasts-metadata.json",
      "caption": "podcasts metadata",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots-sitemap.json",
      "caption": "robots sitemap",
      "findingIds": [
        "F19"
      ]
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "media emulation screenshots and animation/computed-style probes",
      "evidence": "Desktop screenshots under default and prefers-color-scheme: dark are visually identical; the platform probe reports colorScheme \"normal\".",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-resource-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "media emulation screenshots and animation/computed-style probes",
      "evidence": "The reduced-motion probe found 19 running 1000–1500 ms animations and no accessible stylesheet containing prefers-reduced-motion.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-motion.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "media emulation screenshots and animation/computed-style probes",
      "evidence": "Lighthouse contrast testing actively evaluated the rendered page; preference-specific forced-colors styling was not detected, but controls remained present and readable in captured states.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "pass",
      "confidence": "high",
      "method": "desktop/mobile visual walkthrough and platform/CSS probe",
      "evidence": "Observed navigation is primarily ordinary cross-origin document navigation; no jarring same-document route swap was present in the scoped host paths.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "desktop/mobile visual walkthrough and platform/CSS probe",
      "evidence": "No scroll-linked storytelling, parallax, or entry/exit reveal was observed, so implementation choice is not applicable.",
      "reason": "No scroll-linked storytelling, parallax, or entry/exit reveal was observed, so implementation choice is not applicable."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "desktop/mobile visual walkthrough and platform/CSS probe",
      "evidence": "Mobile screenshots and layout probes show native vertical scrolling without horizontal trapping; no custom pointer gesture conflict was observed.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "desktop/mobile screenshots and navigation walkthrough",
      "evidence": "Long portal pages retain compact navigation context and remain scrollable without a blocking static header in desktop/mobile captures.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "desktop/mobile screenshots and navigation walkthrough",
      "evidence": "No tooltip or edge-positioned transient menu was observed in the scoped paths.",
      "reason": "No tooltip or edge-positioned transient menu was observed in the scoped paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "desktop/mobile screenshots and navigation walkthrough",
      "evidence": "Prominent headline hierarchy and labeled podcast grid direct users to destinations; link navigation preserves clear destination context.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "load screenshots and semantic DOM probe",
      "evidence": "Load screenshots show a fixed banner covering the lower desktop viewport and roughly the lower quarter of the 360×800 viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "medium",
      "method": "load screenshots and semantic DOM probe",
      "evidence": "DOM probe found zero dialog, popover, and details elements while screenshots show a fixed overlay-like consent surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "load screenshots and semantic DOM probe",
      "evidence": "Apart from the separately reported consent banner, desktop and podcast screenshots devote most space to headlines/content with restrained borders.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "360×800 layout metrics, target/focus probe, CSS probe",
      "evidence": "Layout probes at 360×800 report zero horizontal overflow on both homepage and Podcasts, with viewport meta present.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "360×800 layout metrics, target/focus probe, CSS probe",
      "evidence": "The CSS probe found zero @container rules across the loaded stylesheets despite cards and navigation being reused in differently sized regions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "360×800 layout metrics, target/focus probe, CSS probe",
      "evidence": "The active-control probe found 32 of 38 sampled visible controls below 44 px in one dimension; several focused menu links reported outline-style none and no box shadow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-input-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport walkthrough, linked article journey, and 404 recovery test",
      "evidence": "First-viewport screenshots clearly present current top stories on Home and a labeled “Todos os Podcasts” catalog on Podcasts.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "first-viewport walkthrough, linked article journey, and 404 recovery test",
      "evidence": "Following a homepage story reaches a complete article with title, summary, byline, media, and 82% no-JS content coverage.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "first-viewport walkthrough, linked article journey, and 404 recovery test",
      "evidence": "The 404 screenshot shows multiple lines and the attempted URL painted on top of one another beneath “Página não encontrada.”",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary, and image audit",
      "evidence": "Lighthouse measured LCP 8.0 s, TBT 1,040 ms, Speed Index 18.8 s, and performance score 0.34.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary, and image audit",
      "evidence": "Observed CLS was 0.003 on Home and 0.066 on Podcasts, both below the 0.1 good threshold.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary, and image audit",
      "evidence": "The trace recorded 8 long tasks and 409.83 ms TBT; Lighthouse measured 18.3 s main-thread work and 4.7 s JavaScript execution.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-lighthouse-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary, and image audit",
      "evidence": "HAR captured 323 requests and 9.0 MB transferred; Lighthouse estimated 5.5 MB savings from better cache lifetimes and identified document latency and dependency-tree failures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/home-lighthouse-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, layout metrics, HAR summary, and image audit",
      "evidence": "Lighthouse estimated 4,496 KiB unused JavaScript and 298 KiB legacy JavaScript; HAR attributes 7.56 MB to 59 scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM semantics, focus/target probe, screenshots",
      "evidence": "Lighthouse failed aria-allowed-attr, aria-hidden-focus, label/name mismatch, and svg-img-alt; the DOM probe found 3 unnamed links, 3 unnamed buttons, and 2 unlabelled inputs.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-platform-probe.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM semantics, focus/target probe, screenshots",
      "evidence": "Lighthouse found 67 color-contrast failures on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM semantics, focus/target probe, screenshots",
      "evidence": "Lighthouse reports no main landmark and invalid list composition; the DOM exposes 14 H1 elements, many for weather dates and prices, plus navigation links with no visible focus outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-platform-probe.json",
        "evidence/home-input-probe.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM semantics, focus/target probe, screenshots",
      "evidence": "Desktop/mobile screenshots show readable text sizing and wrapping with no horizontal clipping on core content.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM semantics, focus/target probe, screenshots",
      "evidence": "Mobile layout has no horizontal overflow, but the target probe found 32 sampled controls below 44 px in width or height.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-input-probe.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits and DOM/platform probe",
      "evidence": "Lighthouse captured 58 browser console error entries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-lighthouse.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audits and DOM/platform probe",
      "evidence": "DOM probe confirms HTML doctype, UTF-8 charset, viewport metadata, and valid canonical metadata; asset optimization gaps are separately reported.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits and DOM/platform probe",
      "evidence": "Lighthouse reported two deprecated API warnings, two BFCache failure reasons, inspector issues, and geolocation requested on page load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "metadata probe, robots/sitemap fetch, and discoverability raw/rendered comparison",
      "evidence": "Home and Podcasts each expose unique descriptive titles and meta descriptions in rendered and raw HTML.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "metadata probe, robots/sitemap fetch, and discoverability raw/rendered comparison",
      "evidence": "Lighthouse failed the crawlable-anchors audit while the rest of the portal uses real href links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-recon.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "metadata probe, robots/sitemap fetch, and discoverability raw/rendered comparison",
      "evidence": "robots.txt advertises an HTTP image sitemap; sitemap.xml lists only two HTTP URLs with 2022 lastmod dates, while canonical pages are HTTPS and current.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/robots-sitemap.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "metadata probe, robots/sitemap fetch, and discoverability raw/rendered comparison",
      "evidence": "Both homepage and podcast listing probes found zero JSON-LD blocks despite representing an Organization/WebSite and a podcast collection; Open Graph metadata is present.",
      "pathIds": [
        "podcasts"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/podcasts-metadata.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "headers, cookies, trackers, secrets, HAR, and Lighthouse permission audits",
      "evidence": "Cookie audit found 29 insecure cookies; many use SameSite=None and several persist 390–400 days. Headers include CSP and nosniff but omit HSTS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-cookies.json",
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "headers, cookies, trackers, secrets, HAR, and Lighthouse permission audits",
      "evidence": "Tracker capture contacted 85 third-party origins and 23 known tracker domains; HAR recorded 313 third-party requests and 8.62 MB transferred.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "headers, cookies, trackers, secrets, HAR, and Lighthouse permission audits",
      "evidence": "Lighthouse failed geolocation-on-start. The visible weather area can instead ask only after the user chooses location-based weather.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse-summary.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "headers, cookies, trackers, secrets, HAR, and Lighthouse permission audits",
      "evidence": "Header audit found no HSTS, Referrer-Policy, or Permissions-Policy. CSP supplies frame-ancestors and nosniff is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "no-JS discoverability comparison, representative journey, and 404 screenshot",
      "evidence": "Discoverability measured only 26% raw/rendered token overlap for Podcasts and 55% for the homepage, versus 82% for the linked article.",
      "pathIds": [
        "podcasts"
      ],
      "artifacts": [
        "evidence/podcasts-discoverability.json",
        "evidence/podcasts-discoverability-crawler.png",
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "no-JS discoverability comparison, representative journey, and 404 screenshot",
      "evidence": "The page behaves robustly at runtime: overlays and menus never get cut off, DOM state survives moves, background work and async dependencies are sequenced and conditional rather than fragile, and initial visibility state is detected correctly. Active evidence across the representative paths did not show a divergence beyond separately reported checks.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "no-JS discoverability comparison, representative journey, and 404 screenshot",
      "evidence": "The scoped public news portal is a content site rather than an installable application; offline installability was judged out of scope.",
      "reason": "The scoped public news portal is a content site rather than an installable application; offline installability was judged out of scope."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "no-JS discoverability comparison, representative journey, and 404 screenshot",
      "evidence": "The not-found screenshot shows overlapping explanatory text and URL content, undermining the otherwise available search recovery control.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "lang/metadata probe and rendered locale-content inspection",
      "evidence": "The document declares lang=pt-BR; Portuguese reading order is correctly LTR and captured layouts preserve reading order.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "lang/metadata probe and rendered locale-content inspection",
      "evidence": "Rendered weather, dates, times, and Brazilian currency use Portuguese/Brazilian conventions (for example 23/07/2026 and R$).",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "lang/metadata probe and rendered locale-content inspection",
      "evidence": "Weather and schedule content identifies local place/time context; no ambiguous cross-zone event input was present.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "consent screenshots and scoped flow inventory",
      "evidence": "Desktop, mobile, podcasts, and article screenshots show only “Prosseguir” in the banner; no reject or close action is visible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/podcasts-desktop.png",
        "evidence/article-desktop.png"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "consent screenshots and scoped flow inventory",
      "evidence": "No data-entry form with validation was present on the scoped portal paths.",
      "reason": "No data-entry form with validation was present on the scoped portal paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "consent screenshots and scoped flow inventory",
      "evidence": "No address, payment, sign-in, or sign-up form was present on the scoped portal paths.",
      "reason": "No address, payment, sign-in, or sign-up form was present on the scoped portal paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "consent screenshots and scoped flow inventory",
      "evidence": "Commercial and account-management flows leave the scoped www.globo.com host and were not part of this host audit.",
      "reason": "Commercial and account-management flows leave the scoped www.globo.com host and were not part of this host audit."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, trackers, images, Lighthouse byte/unused-code audits",
      "evidence": "Image audit found 16 oversized images, 46 legacy-format images, 22 below-fold images not lazy-loaded, 7 missing dimensions, and 6 missing srcset.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, trackers, images, Lighthouse byte/unused-code audits",
      "evidence": "HAR recorded 323 requests, 125 fetch/XHR calls, and 7.56 MB script transfer; Lighthouse estimated 4.5 MB unused JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-lighthouse-summary.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, trackers, images, Lighthouse byte/unused-code audits",
      "evidence": "Third parties account for 8.62 MB; a 2.89 MB player bundle loads before explicit playback and tracker capture found 85 third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "scope/applicability review and robots/discoverability evidence",
      "evidence": "No declared agent-facing transaction or tool surface exists on the scoped portal; this emerging capability is not applicable.",
      "reason": "No declared agent-facing transaction or tool surface exists on the scoped portal; this emerging capability is not applicable."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "scope/applicability review and robots/discoverability evidence",
      "evidence": "No user task on the scoped portal clearly benefits from built-in on-device inference.",
      "reason": "No user task on the scoped portal clearly benefits from built-in on-device inference."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "baseline and post-menu heap summary comparison",
      "evidence": "A baseline and a fresh-session snapshot after 20 menu toggles differed by about 3.2% self size; this does not establish unbounded retained growth.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "baseline and post-menu heap summary comparison",
      "evidence": "Baseline heap summary contains 1,385,334 nodes and 84.7 MB self size; the repeated menu run snapshot reached 87.5 MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-menu-repeat.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "baseline and post-menu heap summary comparison",
      "evidence": "Heap summaries did not expose Detached* constructors among dominant retained populations; repeated menu toggling did not provide direct evidence of unbounded listener/timer growth.",
      "pathIds": [
        "home",
        "podcasts",
        "article"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19",
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21",
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared agent-facing transaction or tool surface exists on the scoped portal; this emerging capability is not applicable. No user task on the scoped portal clearly benefits from built-in on-device inference."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F31"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Portal homepage: top-story discovery and navigation; representative aggregator template.",
      "url": "https://www.globo.com/",
      "conditions": [
        "desktop 1440×1000",
        "mobile 360×800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "keyboard focus",
        "cold load"
      ],
      "result": "issues"
    },
    {
      "id": "podcasts",
      "description": "Podcasts listing: representative first-party collection/catalog template.",
      "url": "https://www.globo.com/podcasts/",
      "conditions": [
        "desktop 1440×1000",
        "mobile 360×800",
        "JavaScript disabled crawler comparison"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Linked G1 health article: representative completion of the portal’s primary read-a-story journey.",
      "url": "https://g1.globo.com/saude/noticia/2026/07/23/mulheres-com-somp-tem-risco-cardiaco-4-vezes-maior-mesmo-sem-diabetes-obesidade-ou-pressao-alta-aponta-estudo.ghtml",
      "conditions": [
        "desktop 1440×1000",
        "JavaScript disabled crawler comparison"
      ],
      "result": "pass"
    },
    {
      "id": "not-found",
      "description": "Invalid first-party route: representative HTTP/not-found recovery state.",
      "url": "https://www.globo.com/rota-inexistente-web-uplift",
      "conditions": [
        "desktop 1440×1000"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "pathId": "home",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "summary": "The site remains light when the user requests a dark color scheme.",
      "evidence": "Desktop screenshots under default and prefers-color-scheme: dark are visually identical; the platform probe reports colorScheme \"normal\".",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-resource-probe.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and use prefers-color-scheme or light-dark() tokens for surfaces, text, borders, and browser chrome.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F02",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "pathId": "home",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Animations continue under reduced-motion preference.",
      "evidence": "The reduced-motion probe found 19 running 1000–1500 ms animations and no accessible stylesheet containing prefers-reduced-motion.",
      "artifacts": [
        "evidence/home-motion.json"
      ],
      "suggestedFix": "Add a prefers-reduced-motion: reduce layer that removes non-essential animation and disables auto-advance.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F03",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "pathId": "home",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "summary": "The consent banner obscures primary content, especially on mobile.",
      "evidence": "Load screenshots show a fixed banner covering the lower desktop viewport and roughly the lower quarter of the 360×800 viewport.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Use a compact, content-preserving consent surface with clear choices and dismissal; avoid covering the reading area.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F04",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "pathId": "home",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "summary": "Transient consent UI is custom chrome without semantic dialog/popover primitives.",
      "evidence": "DOM probe found zero dialog, popover, and details elements while screenshots show a fixed overlay-like consent surface.",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Use an appropriately labelled dialog for the consent decision, manage focus, and provide explicit dismiss/reject controls.",
      "effort": "medium",
      "confidence": "medium"
    },
    {
      "id": "F05",
      "severity": "low",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "pathId": "home",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "summary": "Responsive behavior is viewport-wide rather than component-aware.",
      "evidence": "The CSS probe found zero @container rules across the loaded stylesheets despite cards and navigation being reused in differently sized regions.",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Adopt container queries for reusable card and navigation components while retaining intrinsic fallback layouts.",
      "effort": "medium",
      "confidence": "medium"
    },
    {
      "id": "F06",
      "severity": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "pathId": "home",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Many visible targets are undersized and several focused navigation items have no visible focus indicator.",
      "evidence": "The active-control probe found 32 of 38 sampled visible controls below 44 px in one dimension; several focused menu links reported outline-style none and no box shadow.",
      "artifacts": [
        "evidence/home-input-probe.json"
      ],
      "suggestedFix": "Provide at least 44×44 CSS-pixel target areas where practical and define a high-contrast :focus-visible style for every control.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F07",
      "severity": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "pathId": "not-found",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "The not-found recovery page renders overlapping, unreadable state text.",
      "evidence": "The 404 screenshot shows multiple lines and the attempted URL painted on top of one another beneath “Página não encontrada.”",
      "artifacts": [
        "evidence/not-found.png"
      ],
      "suggestedFix": "Repair the 404 text layout and present clear Home, Back, and Search recovery actions with readable spacing.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F08",
      "severity": "critical",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "pathId": "home",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "Cold mobile performance is far outside good Core Web Vitals thresholds.",
      "evidence": "Lighthouse measured LCP 8.0 s, TBT 1,040 ms, Speed Index 18.8 s, and performance score 0.34.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritize the LCP content, reduce startup JavaScript, and delay advertising, analytics, and media code until after critical content is usable.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F09",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "pathId": "home",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "performance",
      "summary": "Heavy scripting blocks the main thread.",
      "evidence": "The trace recorded 8 long tasks and 409.83 ms TBT; Lighthouse measured 18.3 s main-thread work and 4.7 s JavaScript execution.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-lighthouse-summary.json"
      ],
      "suggestedFix": "Profile long tasks, split execution into prioritized chunks, and move non-UI work off the critical main-thread window.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F10",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "pathId": "home",
      "guidanceId": "optimize-preload-priority",
      "guidanceCategory": "performance",
      "summary": "The critical network path is large and poorly cached.",
      "evidence": "HAR captured 323 requests and 9.0 MB transferred; Lighthouse estimated 5.5 MB savings from better cache lifetimes and identified document latency and dependency-tree failures.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/home-lighthouse-summary.json"
      ],
      "suggestedFix": "Set long immutable caching for versioned assets, shorten dependency chains, and reserve preload/fetchpriority for verified critical resources.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F11",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "pathId": "home",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "The page ships several megabytes of unused and legacy JavaScript.",
      "evidence": "Lighthouse estimated 4,496 KiB unused JavaScript and 298 KiB legacy JavaScript; HAR attributes 7.56 MB to 59 scripts.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Code-split media, ads, identity, and analytics by actual need; remove duplicate/legacy payloads for modern browsers.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F12",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "pathId": "home",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Controls and media expose invalid or missing accessible names and roles.",
      "evidence": "Lighthouse failed aria-allowed-attr, aria-hidden-focus, label/name mismatch, and svg-img-alt; the DOM probe found 3 unnamed links, 3 unnamed buttons, and 2 unlabelled inputs.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-platform-probe.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Give each control a stable accessible name, fix ARIA-role combinations, label search inputs, and remove focusable descendants from aria-hidden containers.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F13",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "pathId": "home",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Text and controls fail minimum contrast.",
      "evidence": "Lighthouse found 67 color-contrast failures on the homepage.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json"
      ],
      "suggestedFix": "Update design tokens so normal text reaches 4.5:1 and large text/UI indicators reach applicable WCAG thresholds.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F14",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "pathId": "home",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Landmark, heading, list, and focus structure is not coherent.",
      "evidence": "Lighthouse reports no main landmark and invalid list composition; the DOM exposes 14 H1 elements, many for weather dates and prices, plus navigation links with no visible focus outline.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-platform-probe.json",
        "evidence/home-input-probe.json"
      ],
      "suggestedFix": "Add one main landmark, establish a single page H1 with nested section headings, repair list markup, and preserve visible focus.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F15",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "pathId": "home",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "summary": "Touch-target sizing falls short despite otherwise successful mobile reflow.",
      "evidence": "Mobile layout has no horizontal overflow, but the target probe found 32 sampled controls below 44 px in width or height.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-input-probe.json"
      ],
      "suggestedFix": "Increase interactive hit areas without changing visual density, and verify at 200–400% zoom and narrow reflow.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F16",
      "severity": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "pathId": "home",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "The page emits extensive runtime errors.",
      "evidence": "Lighthouse captured 58 browser console error entries.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Triage first-party exceptions and failed resources, then gate optional integrations so third-party failure does not flood production consoles.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F17",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "pathId": "home",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Deprecated APIs, BFCache blockers, and an on-load geolocation request reduce platform hygiene.",
      "evidence": "Lighthouse reported two deprecated API warnings, two BFCache failure reasons, inspector issues, and geolocation requested on page load.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json"
      ],
      "suggestedFix": "Remove deprecated API use and unload/BFCache blockers; request geolocation only after a clear user action and explanation.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F18",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "pathId": "home",
      "guidanceId": "search-hidden-content",
      "guidanceCategory": "user-experience",
      "summary": "At least one link is not crawlable.",
      "evidence": "Lighthouse failed the crawlable-anchors audit while the rest of the portal uses real href links.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json",
        "evidence/home-recon.json"
      ],
      "suggestedFix": "Replace script-only navigation with real href destinations and keep descriptive link text.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F19",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "pathId": "home",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Sitemap and crawler policy signals are stale or inconsistent.",
      "evidence": "robots.txt advertises an HTTP image sitemap; sitemap.xml lists only two HTTP URLs with 2022 lastmod dates, while canonical pages are HTTPS and current.",
      "artifacts": [
        "evidence/robots-sitemap.json"
      ],
      "suggestedFix": "Publish current HTTPS sitemap indexes for active templates and align robots sitemap declarations, canonicals, and update dates.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F20",
      "severity": "low",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "pathId": "podcasts",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Entity-rich pages omit structured data.",
      "evidence": "Both homepage and podcast listing probes found zero JSON-LD blocks despite representing an Organization/WebSite and a podcast collection; Open Graph metadata is present.",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/podcasts-metadata.json"
      ],
      "suggestedFix": "Add accurate schema.org WebSite/Organization and podcast collection/item JSON-LD that matches visible content.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F21",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "pathId": "home",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "Cookie transport attributes are unsafe and HSTS is absent.",
      "evidence": "Cookie audit found 29 insecure cookies; many use SameSite=None and several persist 390–400 days. Headers include CSP and nosniff but omit HSTS.",
      "artifacts": [
        "evidence/home-cookies.json",
        "evidence/home-headers.json"
      ],
      "suggestedFix": "Set Secure on all HTTPS cookies, use the least-permissive SameSite value, shorten tracking lifetimes, and deploy HSTS after subdomain readiness.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F22",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "pathId": "home",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "summary": "The initial page load has an exceptionally broad tracking footprint.",
      "evidence": "Tracker capture contacted 85 third-party origins and 23 known tracker domains; HAR recorded 313 third-party requests and 8.62 MB transferred.",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Minimize vendors, delay non-essential tracking until valid consent, batch analytics, and enforce data-retention/vendor budgets.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F23",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "pathId": "home",
      "guidanceId": "passkey-authentication",
      "guidanceCategory": "authentication",
      "summary": "Geolocation is requested on load rather than in context.",
      "evidence": "Lighthouse failed geolocation-on-start. The visible weather area can instead ask only after the user chooses location-based weather.",
      "artifacts": [
        "evidence/home-lighthouse-summary.json"
      ],
      "suggestedFix": "Defer geolocation until an explicit weather-location action; explain the benefit before invoking the browser prompt.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F24",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "pathId": "home",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "Several browser-enforced defensive policies are missing.",
      "evidence": "Header audit found no HSTS, Referrer-Policy, or Permissions-Policy. CSP supplies frame-ancestors and nosniff is present.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "suggestedFix": "Add strict Referrer-Policy and Permissions-Policy, deploy HSTS, and keep CSP frame-ancestors narrowly scoped.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F25",
      "severity": "high",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "pathId": "podcasts",
      "guidanceId": "flicker-free-client-side-ab-testing",
      "guidanceCategory": "performance",
      "summary": "Important listing content is only partly available without JavaScript.",
      "evidence": "Discoverability measured only 26% raw/rendered token overlap for Podcasts and 55% for the homepage, versus 82% for the linked article.",
      "artifacts": [
        "evidence/podcasts-discoverability.json",
        "evidence/podcasts-discoverability-crawler.png",
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ],
      "suggestedFix": "Server-render podcast names, destinations, and core portal headlines; layer personalization and playback on afterward.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F26",
      "severity": "high",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "pathId": "not-found",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "The 404 fallback is visually broken.",
      "evidence": "The not-found screenshot shows overlapping explanatory text and URL content, undermining the otherwise available search recovery control.",
      "artifacts": [
        "evidence/not-found.png"
      ],
      "suggestedFix": "Correct the error-page layout and add readable recovery actions tested across current viewport sizes.",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F27",
      "severity": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "pathId": "home",
      "guidanceId": "search-hidden-content",
      "guidanceCategory": "user-experience",
      "summary": "Consent presents acceptance without an equally visible rejection choice.",
      "evidence": "Desktop, mobile, podcasts, and article screenshots show only “Prosseguir” in the banner; no reject or close action is visible.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/podcasts-desktop.png",
        "evidence/article-desktop.png"
      ],
      "suggestedFix": "Offer equally prominent Accept and Reject non-essential cookies actions, preserve refusal, and keep privacy settings reversible.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F28",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "pathId": "home",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "summary": "Image delivery wastes bytes and misses modern delivery opportunities.",
      "evidence": "Image audit found 16 oversized images, 46 legacy-format images, 22 below-fold images not lazy-loaded, 7 missing dimensions, and 6 missing srcset.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "suggestedFix": "Generate AVIF/WebP responsive variants, size them to rendered slots, lazy-load below-fold content, and reserve dimensions.",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F29",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "pathId": "home",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "Advertising, tracking, and media work dominate the initial load.",
      "evidence": "HAR recorded 323 requests, 125 fetch/XHR calls, and 7.56 MB script transfer; Lighthouse estimated 4.5 MB unused JavaScript.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-lighthouse-summary.json"
      ],
      "suggestedFix": "Defer non-critical integrations to user intent/idle time, eliminate duplicate analytics paths, and set request/CPU budgets.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F30",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "pathId": "home",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "summary": "Third-party and media payloads are disproportionate to a news portal landing view.",
      "evidence": "Third parties account for 8.62 MB; a 2.89 MB player bundle loads before explicit playback and tracker capture found 85 third-party origins.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "suggestedFix": "Load the player only when media approaches the viewport or the user presses play, and enforce vendor byte/request budgets.",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F31",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "pathId": "home",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "javascript",
      "summary": "The homepage starts with a large memory and DOM footprint.",
      "evidence": "Baseline heap summary contains 1,385,334 nodes and 84.7 MB self size; the repeated menu run snapshot reached 87.5 MB.",
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-menu-repeat.json"
      ],
      "suggestedFix": "Reduce loaded integrations and hidden DOM, release unused media/ad objects, and set a representative memory budget.",
      "effort": "large",
      "confidence": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Cut startup JavaScript, third-party, advertising, and media cost",
      "priority": 1,
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F11",
        "F22",
        "F29",
        "F30",
        "F31"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Make consent honest, reversible, semantic, and non-obscuring",
      "priority": 2,
      "findingIds": [
        "F03",
        "F04",
        "F27"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Repair accessibility semantics, contrast, focus, and target sizing",
      "priority": 3,
      "findingIds": [
        "F06",
        "F12",
        "F13",
        "F14",
        "F15"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Harden cookies and browser security policies",
      "priority": 4,
      "findingIds": [
        "F21",
        "F23",
        "F24"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Server-render core podcast and portal content",
      "priority": 5,
      "findingIds": [
        "F25"
      ],
      "guidanceId": "flicker-free-client-side-ab-testing",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Fix error-state layout and recovery actions",
      "priority": 6,
      "findingIds": [
        "F07",
        "F26"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Honor dark mode and reduced motion",
      "priority": 7,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Modernize images and responsive component delivery",
      "priority": 8,
      "findingIds": [
        "F05",
        "F28"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Repair indexing metadata and sitemap consistency",
      "priority": 9,
      "findingIds": [
        "F18",
        "F19",
        "F20"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Remove console errors, deprecated APIs, and BFCache blockers",
      "priority": 10,
      "findingIds": [
        "F16",
        "F17"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T12-12-34-577Z"
}
