{
  "url": "https://www.cnnbrasil.com.br",
  "auditedAt": "2026-07-17T22:31:52.474Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete model-driven audit across six representative paths. The repository web-uplift.json was not applied because it scopes the local playground, not this remote target.",
  "page": {
    "appType": "hybrid",
    "framework": "Next.js/React",
    "notes": "Server-rendered public news portal with long listing pages, article pages, search, live media, advertising/analytics integrations and a blocking consent manager."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "lighthouse",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "robots/sitemap HTTP inspection",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "same-document-transitions",
    "consistent-cross-document-transitions",
    "shrinking-header-on-scroll",
    "light-dismiss-a-dialog",
    "size-aware-styling",
    "forms",
    "performance",
    "accessibility",
    "html",
    "security",
    "translator",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals"
  ],
  "config": {
    "loaded": false
  },
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Initial homepage viewport with consent wall.",
      "condition": "desktop",
      "findingIds": [
        "F01",
        "F05",
        "F06",
        "F07",
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Mobile homepage showing consent dialog dominating the viewport.",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05",
        "F07",
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Dark-preference capture remains light behind the modal.",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "Forced-colors capture retains visible controls and text.",
      "condition": "forced-colors: active",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article.png",
      "caption": "Article template with consent interruption.",
      "condition": "desktop",
      "findingIds": [
        "F03",
        "F04",
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/section.png",
      "caption": "Politics listing template with consent interruption.",
      "condition": "desktop",
      "findingIds": [
        "F05",
        "F08"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search.png",
      "caption": "Search-related capture.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/live.png",
      "caption": "Live/video template with consent interruption.",
      "condition": "desktop",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404.png",
      "caption": "Recoverable not-found page behind the same consent wall.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "Mobile layout metrics: no horizontal overflow and CLS 0.018.",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/section-layout-mobile.json",
      "caption": "Section mobile metrics: no horizontal overflow and CLS 0.014.",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered homepage DOM and styles.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "Navigation, metadata, links and JSON-LD recon.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-ui-probe.json",
      "caption": "Overlay semantics, forms and modern CSS feature probe.",
      "condition": "desktop",
      "findingIds": [
        "F03",
        "F06"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "Focus, target size, DOM size, memory and platform-feature probe.",
      "condition": "desktop keyboard focus",
      "findingIds": [
        "F08",
        "F09",
        "F16",
        "F17",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion.json",
      "caption": "Reduced-motion animation probe found six running animations and no matching CSS rules.",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/forms-consent-probe.json",
      "caption": "Form attributes and consent-choice probe.",
      "condition": "desktop",
      "findingIds": [
        "F26",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-probe.json",
      "caption": "Article text, headings, metadata and structured data.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/search-correct-probe.json",
      "caption": "Search result state for the form’s search parameter.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/live-probe.json",
      "caption": "Live media and iframe semantics probe.",
      "condition": "desktop",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "Not-found message and recovery-link probe.",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Raw network capture for the homepage.",
      "condition": "desktop load",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "HAR summary: 213 requests, 6.56 MB transferred, 183 third-party requests.",
      "condition": "desktop load",
      "findingIds": [
        "F12",
        "F19",
        "F23",
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools load trace.",
      "condition": "desktop load",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Trace summary: LCP 7.55 s, 384 ms TBT and 3 long tasks.",
      "condition": "desktop load",
      "findingIds": [
        "F10",
        "F11"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse report for performance, accessibility, best practices, SEO and agentic browsing.",
      "condition": "mobile simulated load",
      "findingIds": [
        "F11",
        "F13",
        "F14",
        "F15",
        "F16",
        "F18",
        "F20",
        "F24",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Compact Lighthouse metrics and failure summary.",
      "condition": "mobile simulated load",
      "findingIds": [
        "F10",
        "F13",
        "F14",
        "F15",
        "F18",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security header inspection.",
      "condition": "main document",
      "findingIds": [
        "F22",
        "F25"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie security and lifetime inspection.",
      "condition": "homepage load",
      "findingIds": [
        "F22",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party and known-tracker inventory.",
      "condition": "homepage load",
      "findingIds": [
        "F23",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client secret-pattern scan; matches judged as non-actionable public/library strings.",
      "condition": "homepage load",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image dimensions, loading, formats, responsive sources and alt inventory.",
      "condition": "homepage load",
      "findingIds": [
        "F19",
        "F28"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Raw-HTML versus rendered-content comparison: 91% coverage, not a JS shell.",
      "condition": "crawler versus browser",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Browser-rendered discoverability view.",
      "condition": "JavaScript enabled",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Crawler/no-JavaScript discoverability view.",
      "condition": "JavaScript disabled",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline heap summary: 1,031,746 nodes and 60.0 MB self size.",
      "condition": "homepage settled",
      "findingIds": [
        "F31"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "Post-scroll heap summary: 1,032,781 nodes and 60.4 MB self size after ten full-page round trips.",
      "condition": "after repeated scrolling",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt directives.",
      "condition": "crawler",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "Body returned for /sitemap.xml; it is an application error document, not a sitemap.",
      "condition": "HTTP 404",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap-head.txt",
      "caption": "Response headers showing /sitemap.xml returns HTTP 404.",
      "condition": "HTTP HEAD",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/delivery-agent-probe.json",
      "caption": "Script delivery, doctype, charset, permission and agent-capability probe.",
      "condition": "desktop",
      "findingIds": [
        "F20",
        "F24"
      ]
    }
  ],
  "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": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The dark-preference screenshot is visually the same light page and modal as the default capture; CSS probing found no prefers-color-scheme rule.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The reduced-motion probe found six running animations, including two roughly 80-second animations, and no prefers-reduced-motion CSS rules.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Forced-colors screenshot preserved legible text, outlines and consent controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-forced-colors.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "DOM/CSS inspection found no view-transition-name or ::view-transition rules across the MPA navigation surfaces.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-ui-probe.json",
        "evidence/article.png"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement.",
      "evidence": "No scroll-linked animation or scrollytelling surface was present on the representative templates.",
      "reason": "No scroll-linked animation or scrollytelling surface was present on the representative templates."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "UI CSS probe found scroll-snap behavior for carousel interactions and no evidence of pointermove-driven gesture hijacking.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-ui-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The homepage is 32,812 px tall, but CSS inspection found no scroll-state query or progress treatment; the header remains generic site chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/article.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement.",
      "evidence": "No edge-tethered tooltip or contextual popover was part of the representative core journeys.",
      "reason": "No edge-tethered tooltip or contextual popover was part of the representative core journeys."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Skip-to-content and skip-carousel anchors provide explicit attention/navigation targets in the recon DOM.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Homepage, article, section, live, mobile and 404 screenshots all show a large modal covering the primary content before interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article.png",
        "evidence/section.png",
        "evidence/live.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The UI probe found four div[role=dialog] nodes, zero dialog elements, zero popovers and no aria-modal on the visible consent dialog.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-ui-probe.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "On mobile the consent panel consumes almost the full 360×800 viewport; on desktop the first view is dominated by consent and multiple chrome bands rather than a lead story.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Home and section mobile layout captures report 0 px horizontal overflow with a valid viewport meta tag.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/section-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The platform probe found no @container rules despite reusable cards, rails and carousels appearing in different-width regions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/section.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The focus probe found many focused links with outline-style none and no box shadow; visible controls measured 24×24, 32×32 and 36×36 px.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Homepage and article headings clearly identify the news purpose and lead/current stories.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Real links reach section and article templates, and ?search=economia returns an “Exibindo resultados” state.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-probe.json",
        "evidence/search-correct-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "The tested missing URL presents a clear unavailable message and a working HOME recovery link.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse measured LCP 3.5 s and TBT 550 ms; the independent trace observed LCP 7.55 s and 384 ms TBT.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Observed mobile CLS was 0.018 on home and 0.014 on the section; Lighthouse CLS was 0.03.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse reports 4.6 s main-thread work and 1.9 s script bootup; the trace contains a 360 ms long task.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "HAR captured 213 requests and 6.56 MB, including 122 images/3.98 MB and 41 scripts/1.83 MB; two font stylesheets are high-priority parser-inserted blockers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse estimated 722 KiB unused JavaScript and 97 KiB unused CSS; ad, identity and social bundles are major contributors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse found unnamed buttons/links, prohibited ARIA, 8 SVG images without text alternatives and 12 label/name mismatches.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse found 26 contrast failures, including green financial values at 2.27:1 and pale sports labels as low as 1.58:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Focused links commonly computed to outline none; Lighthouse also reports an ill-formed agent/accessibility tree and invalid tabpanel/ARIA usage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Article screenshot shows readable headline/body hierarchy and comfortable editorial line treatment once content is visible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The target probe found 24–36 px controls, while the live page probe found several iframes with empty titles and no exposed caption tracks.",
      "pathIds": [
        "live"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/live-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse captured a React hydration error and a 404 request to the favorites API.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The image probe found 3 images without dimensions, 60 below-fold images not lazy-loaded, 73 without srcset, 91 legacy-format assets and 55 empty/missing alt values requiring editorial review.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse failed notification-on-start and reported that an in-flight iframe navigation prevented BFCache restoration.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/delivery-agent-probe.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Homepage and article probes show unique descriptive titles and meta descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Lighthouse passed crawlable anchors, robots and viewport checks; representative navigation uses real href links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "/sitemap.xml returns HTTP 404 with an application error body that contains both noindex and index robots tags plus a homepage canonical.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/sitemap.xml",
        "evidence/sitemap-head.txt",
        "evidence/robots.txt"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Homepage and article expose Open Graph/Twitter metadata plus NewsMediaOrganization, WebSite, BreadcrumbList and NewsArticle JSON-LD.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "HTTPS and nosniff are present, but CSP and HSTS are absent; 11 cookies were reported without Secure and all 11 use SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Tracker evidence found 32 third-party origins and 5 known trackers; the HAR attributes 183 requests and 5.46 MB to non-main origins before a consent choice.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Lighthouse traced a notification-on-start request to notifpush.com/scripts/wpn2.js.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/delivery-agent-probe.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Header inspection found no X-Frame-Options or CSP frame-ancestors, no Referrer-Policy and no Permissions-Policy.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Discoverability comparison found 91% raw-HTML coverage, title/H1/description present and no JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Representative listing, article and media templates rendered usable content and retained recovery navigation without blank-shell failure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/section.png",
        "evidence/article.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement.",
      "evidence": "CNN Brasil is a public news website rather than an installed app; offline installability is contextual and was not required for this audit.",
      "reason": "CNN Brasil is a public news website rather than an installed app; offline installability is contextual and was not required for this audit."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "The non-existent route gives an intentional Portuguese error message and a HOME recovery action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "The document declares lang=pt-BR and reading direction is correct for the Portuguese content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Rendered finance values and publication dates use Brazilian decimal, currency and day/month conventions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-correct-probe.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement.",
      "evidence": "The audited editorial pages display publication times for a single Brazilian locale and do not expose a cross-time-zone scheduling flow.",
      "reason": "The audited editorial pages display publication times for a single Brazilian locale and do not expose a cross-time-zone scheduling flow."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The visible dialog exposes only Consent and Manage options; the probe found no reject button, while the copy names 420 partners and content remains blocked.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/forms-consent-probe.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "DOM inspection found the EMAIL and terms checkbox are not required and have no aria-describedby error association; the consent checkbox starts aria-invalid=false.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/forms-consent-probe.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "The newsletter email field uses type=email and autocomplete=email; search uses type=search.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/forms-consent-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement.",
      "evidence": "No checkout, paid subscription or account-management journey was present in the representative editorial scope.",
      "reason": "No checkout, paid subscription or account-management journey was present in the representative editorial scope."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Image evidence found 91 legacy-format images, 73 without srcset and 60 below-fold images loaded eagerly; HAR image transfer reached 3.98 MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "The load performs 213 requests across 33 origins with 4.6 s main-thread work; much of the unused script is advertising, identity and analytics code.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "HAR records 183 third-party requests and 5.46 MB, while Lighthouse reports a 4.25 MiB page under its run and 722 KiB potentially unused JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "As a content site, it exposes server-rendered article text, semantic links and extensive JSON-LD; crawler coverage is 91%.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-probe.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and representative-path applicability judgement.",
      "evidence": "No user task in the audited editorial journeys requires an on-device generation or summarization feature.",
      "reason": "No user task in the audited editorial journeys requires an on-device generation or summarization feature."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "After ten full-page scroll round trips, heap self size rose only 0.67% (60.0 to 60.4 MB) and node count 0.10%, with no unbounded trend in this bounded test.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and targeted probe compared with mapped Modern Web Guidance.",
      "evidence": "Heap baseline contains 1,031,746 heap nodes and 60.0 MB self size; the live DOM probe counted 12,846 elements for one landing page.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path screenshot, DOM, Lighthouse or targeted evaluate probe.",
      "evidence": "Before/after heap summaries show stable closure counts and no Detached* constructor among top retained constructors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19",
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F22",
        "F23",
        "F24",
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F31"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and news portal landing template, including consent, navigation, feeds, responsive states and primary discovery journey.",
      "url": "https://www.cnnbrasil.com.br/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "Politics section listing, representative of editorial category/listing templates.",
      "url": "https://www.cnnbrasil.com.br/politica/",
      "conditions": [
        "desktop",
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Current politics article, representative of the core reading and shareable news-detail journey.",
      "url": "https://www.cnnbrasil.com.br/politica/pgr-ve-violacao-em-carta-de-bolsonaro-mas-defende-manutencao-de-domiciliar/",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Site search results for “economia”, representing the content-finding form flow.",
      "url": "https://www.cnnbrasil.com.br/?search=economia",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "live",
      "description": "Live/video hub, representing the media-heavy viewing template.",
      "url": "https://www.cnnbrasil.com.br/ao-vivo/",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Non-existent URL used to inspect HTTP/error recovery behavior.",
      "url": "https://www.cnnbrasil.com.br/definitely-not-a-real-page-web-uplift-404/",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site does not adapt to a dark system preference.",
      "evidence": "The dark-preference screenshot is visually the same light page and modal as the default capture; CSS probing found no prefers-color-scheme rule.",
      "suggestedFix": "Declare color-scheme and provide preference-driven surface, text, border and media colors using prefers-color-scheme or light-dark().",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "summary": "Animations continue when reduced motion is requested.",
      "evidence": "The reduced-motion probe found six running animations, including two roughly 80-second animations, and no prefers-reduced-motion CSS rules.",
      "suggestedFix": "Disable auto-advancing and non-essential motion under prefers-reduced-motion: reduce while preserving necessary state feedback.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/reduced-motion.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "summary": "Route changes do not expose a coherent transition treatment.",
      "evidence": "DOM/CSS inspection found no view-transition-name or ::view-transition rules across the MPA navigation surfaces.",
      "suggestedFix": "Use progressive cross-document View Transitions for section/article navigation, with reduced-motion handling and a no-transition fallback.",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-ui-probe.json",
        "evidence/article.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "summary": "Long news pages provide no position-aware reading chrome.",
      "evidence": "The homepage is 32,812 px tall, but CSS inspection found no scroll-state query or progress treatment; the header remains generic site chrome.",
      "suggestedFix": "Add a lightweight reading/progress affordance or scroll-state-aware compact header on long listing and article templates.",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/article.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F05",
      "severity": "high",
      "confidence": "high",
      "summary": "A consent wall obscures every representative page on first load.",
      "evidence": "Homepage, article, section, live, mobile and 404 screenshots all show a large modal covering the primary content before interaction.",
      "suggestedFix": "Avoid blocking editorial content before a choice. Offer compact, dismissible consent controls and defer non-essential vendors until an explicit choice.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article.png",
        "evidence/section.png",
        "evidence/live.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F06",
      "severity": "medium",
      "confidence": "high",
      "summary": "The modal consent experience is built from custom div dialogs rather than a native modal primitive.",
      "evidence": "The UI probe found four div[role=dialog] nodes, zero dialog elements, zero popovers and no aria-modal on the visible consent dialog.",
      "suggestedFix": "Use <dialog> for the modal flow with correct focus trapping, inert background, Escape/cancel behavior and an explicit non-consent path.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-ui-probe.json",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F07",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent and market/sports chrome crowd out the editorial content.",
      "evidence": "On mobile the consent panel consumes almost the full 360×800 viewport; on desktop the first view is dominated by consent and multiple chrome bands rather than a lead story.",
      "suggestedFix": "Reduce first-view chrome, keep the consent choice compact, and prioritize the lead editorial content.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F08",
      "severity": "low",
      "confidence": "high",
      "summary": "Responsive behavior is viewport-only rather than component-aware.",
      "evidence": "The platform probe found no @container rules despite reusable cards, rails and carousels appearing in different-width regions.",
      "suggestedFix": "Introduce container queries for reusable card, rail and navigation components while retaining viewport fallbacks.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/section.png"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "summary": "Keyboard focus is frequently invisible and several controls are too small.",
      "evidence": "The focus probe found many focused links with outline-style none and no box shadow; visible controls measured 24×24, 32×32 and 36×36 px.",
      "suggestedFix": "Provide a high-contrast :focus-visible treatment and enlarge touch targets to at least 44×44 CSS px or equivalent spacing.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "summary": "Loading and responsiveness miss the good Core Web Vitals experience.",
      "evidence": "Lighthouse measured LCP 3.5 s and TBT 550 ms; the independent trace observed LCP 7.55 s and 384 ms TBT.",
      "suggestedFix": "Prioritize the lead content/LCP image, defer non-critical scripts and ads, and split long tasks.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "summary": "Heavy scripting blocks the main thread.",
      "evidence": "Lighthouse reports 4.6 s main-thread work and 1.9 s script bootup; the trace contains a 360 ms long task.",
      "suggestedFix": "Remove or delay non-essential third-party execution, code-split page features and yield long work with scheduler/task chunking.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "summary": "The homepage transfers an excessive request and byte payload.",
      "evidence": "HAR captured 213 requests and 6.56 MB, including 122 images/3.98 MB and 41 scripts/1.83 MB; two font stylesheets are high-priority parser-inserted blockers.",
      "suggestedFix": "Set a route budget, reduce initial image count, preload only the actual LCP resource, self-host/subset fonts and defer below-fold dependencies.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F13",
      "severity": "medium",
      "confidence": "high",
      "summary": "Large amounts of unused code ship on the landing page.",
      "evidence": "Lighthouse estimated 722 KiB unused JavaScript and 97 KiB unused CSS; ad, identity and social bundles are major contributors.",
      "suggestedFix": "Load advertising, identity, social and feature bundles only when the related surface is used; purge unused CSS per template.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F14",
      "severity": "high",
      "confidence": "high",
      "summary": "Important controls and media affordances have broken accessible names or ARIA.",
      "evidence": "Lighthouse found unnamed buttons/links, prohibited ARIA, 8 SVG images without text alternatives and 12 label/name mismatches.",
      "suggestedFix": "Give every control a stable accessible name that includes its visible label, remove prohibited ARIA and label decorative versus meaningful SVG correctly.",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "summary": "Multiple text treatments fail minimum contrast.",
      "evidence": "Lighthouse found 26 contrast failures, including green financial values at 2.27:1 and pale sports labels as low as 1.58:1.",
      "suggestedFix": "Replace pale semantic colors with tokens that meet WCAG AA in every state and verify with automated and visual contrast tests.",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F16",
      "severity": "high",
      "confidence": "high",
      "summary": "Focus visibility and the accessibility tree are not reliable.",
      "evidence": "Focused links commonly computed to outline none; Lighthouse also reports an ill-formed agent/accessibility tree and invalid tabpanel/ARIA usage.",
      "suggestedFix": "Define consistent :focus-visible styles and repair tab/tabpanel ownership, permitted ARIA attributes and focus order.",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "summary": "Small targets and unlabeled live-media frames reduce inclusive access.",
      "evidence": "The target probe found 24–36 px controls, while the live page probe found several iframes with empty titles and no exposed caption tracks.",
      "suggestedFix": "Enlarge controls, title embedded frames and ensure live and recorded media expose captions/transcripts.",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/live-probe.json"
      ],
      "pathId": "live",
      "url": "https://www.cnnbrasil.com.br/ao-vivo/",
      "effort": "medium"
    },
    {
      "id": "F18",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page logs runtime and network errors.",
      "evidence": "Lighthouse captured a React hydration error and a 404 request to the favorites API.",
      "suggestedFix": "Resolve the server/client markup mismatch and avoid firing favorites requests for missing or anonymous resources.",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F19",
      "severity": "high",
      "confidence": "high",
      "summary": "Image markup and delivery are inconsistent and wasteful.",
      "evidence": "The image probe found 3 images without dimensions, 60 below-fold images not lazy-loaded, 73 without srcset, 91 legacy-format assets and 55 empty/missing alt values requiring editorial review.",
      "suggestedFix": "Generate responsive srcset/sizes, reserve dimensions, lazy-load below-fold media, prefer AVIF/WebP and provide intentional alt text.",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F20",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page requests notification permission on load and misses BFCache.",
      "evidence": "Lighthouse failed notification-on-start and reported that an in-flight iframe navigation prevented BFCache restoration.",
      "suggestedFix": "Request notifications only after a clear user action and stop/cancel subframe work so completed navigations can enter BFCache.",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/delivery-agent-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F21",
      "severity": "high",
      "confidence": "high",
      "summary": "The advertised sitemap endpoint is broken and returns an index-confusing error document.",
      "evidence": "/sitemap.xml returns HTTP 404 with an application error body that contains both noindex and index robots tags plus a homepage canonical.",
      "suggestedFix": "Serve a valid sitemap index with HTTP 200, list it in robots.txt, and ensure error documents have a single noindex policy and self-consistent canonical behavior.",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/sitemap.xml",
        "evidence/sitemap-head.txt",
        "evidence/robots.txt"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F22",
      "severity": "high",
      "confidence": "high",
      "summary": "Baseline response defenses and cookie protections are missing.",
      "evidence": "HTTPS and nosniff are present, but CSP and HSTS are absent; 11 cookies were reported without Secure and all 11 use SameSite=None.",
      "suggestedFix": "Deploy a nonce/hash-based CSP, HSTS and Secure cookies; use Lax/Strict unless cross-site behavior is necessary.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F23",
      "severity": "high",
      "confidence": "high",
      "summary": "The default load has a very large third-party tracking footprint.",
      "evidence": "Tracker evidence found 32 third-party origins and 5 known trackers; the HAR attributes 183 requests and 5.46 MB to non-main origins before a consent choice.",
      "suggestedFix": "Block non-essential vendors until consent, consolidate analytics, shorten identifier lifetimes and enforce a measured third-party budget.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "security",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/cookies.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F24",
      "severity": "high",
      "confidence": "high",
      "summary": "Notification permission is initiated without user context.",
      "evidence": "Lighthouse traced a notification-on-start request to notifpush.com/scripts/wpn2.js.",
      "suggestedFix": "Remove permission requests from startup and ask only after a user enables a clearly explained alert feature.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/delivery-agent-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F25",
      "severity": "high",
      "confidence": "high",
      "summary": "Clickjacking, referrer and permissions defenses are not declared.",
      "evidence": "Header inspection found no X-Frame-Options or CSP frame-ancestors, no Referrer-Policy and no Permissions-Policy.",
      "suggestedFix": "Add frame-ancestors (and X-Frame-Options for legacy coverage), strict-origin-when-cross-origin or stricter referrer policy, and a least-privilege Permissions-Policy.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/headers.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F26",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent wall lacks a direct reject choice while offering immediate consent.",
      "evidence": "The visible dialog exposes only Consent and Manage options; the probe found no reject button, while the copy names 420 partners and content remains blocked.",
      "suggestedFix": "Provide an equally prominent Reject non-essential option beside Consent and make later reversal easy.",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "forms",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/forms-consent-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F27",
      "severity": "medium",
      "confidence": "high",
      "summary": "The newsletter form does not expose robust required/error semantics.",
      "evidence": "DOM inspection found the EMAIL and terms checkbox are not required and have no aria-describedby error association; the consent checkbox starts aria-invalid=false.",
      "suggestedFix": "Use required constraints where semantically required, validate after interaction and connect concise errors with aria-describedby/live announcements.",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "forms",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/forms-consent-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F28",
      "severity": "high",
      "confidence": "high",
      "summary": "The page ships too many unoptimized image variants for an editorial landing page.",
      "evidence": "Image evidence found 91 legacy-format images, 73 without srcset and 60 below-fold images loaded eagerly; HAR image transfer reached 3.98 MB.",
      "suggestedFix": "Serve responsive AVIF/WebP variants, lazy-load below-fold media and make editorial image budgets part of publishing.",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F29",
      "severity": "high",
      "confidence": "high",
      "summary": "Background advertising and analytics work is disproportionate.",
      "evidence": "The load performs 213 requests across 33 origins with 4.6 s main-thread work; much of the unused script is advertising, identity and analytics code.",
      "suggestedFix": "Gate non-essential work on consent/visibility, batch analytics and remove redundant vendors and idle background tasks.",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/lighthouse.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F30",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party scripts and media dominate the resource budget.",
      "evidence": "HAR records 183 third-party requests and 5.46 MB, while Lighthouse reports a 4.25 MiB page under its run and 722 KiB potentially unused JavaScript.",
      "suggestedFix": "Set and enforce per-template third-party, image, font and script budgets; defer video and ad dependencies until intent.",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    },
    {
      "id": "F31",
      "severity": "medium",
      "confidence": "high",
      "summary": "The settled homepage has a large memory and DOM footprint.",
      "evidence": "Heap baseline contains 1,031,746 heap nodes and 60.0 MB self size; the live DOM probe counted 12,846 elements for one landing page.",
      "suggestedFix": "Virtualize or paginate deep feeds, avoid rendering hidden consent/vendor trees up front and release below-fold component state.",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "user-experience",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.cnnbrasil.com.br/",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace the blocking, reject-less consent wall and prevent pre-consent vendor loading",
      "priority": 1,
      "findingIds": [
        "F05",
        "F06",
        "F07",
        "F23",
        "F26"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut initial script, image and third-party cost to restore fast loading",
      "priority": 2,
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13",
        "F28",
        "F29",
        "F30",
        "F31"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Fix accessible names, ARIA, focus, target size and contrast",
      "priority": 3,
      "findingIds": [
        "F09",
        "F14",
        "F15",
        "F16",
        "F17"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Deploy CSP/HSTS, defensive policies and secure cookie defaults",
      "priority": 4,
      "findingIds": [
        "F22",
        "F25"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Stop notification permission requests on startup",
      "priority": 5,
      "findingIds": [
        "F20",
        "F24"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Repair image markup and responsive delivery",
      "priority": 6,
      "findingIds": [
        "F19",
        "F28"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Restore a valid sitemap and consistent indexing signals",
      "priority": 7,
      "findingIds": [
        "F21"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Respect dark mode and reduced motion",
      "priority": 8,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Resolve hydration/API console errors and BFCache blockers",
      "priority": 9,
      "findingIds": [
        "F18",
        "F20"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Improve component-level responsiveness and navigation continuity",
      "priority": 10,
      "findingIds": [
        "F03",
        "F04",
        "F08"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Add robust newsletter validation semantics",
      "priority": 11,
      "findingIds": [
        "F27"
      ],
      "guidanceId": "forms",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-17T22-31-52-474Z"
}
