{
  "url": "https://g1.globo.com/",
  "auditedAt": "2026-07-23T06:50:31.377Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete across 59 registered checks and four representative public templates. Search results, authenticated account flows, live playback internals and every regional section were not covered because they either repeat audited templates or cross into separate/authenticated surfaces.",
  "page": {
    "appType": "hybrid",
    "framework": "Server-rendered MPA with React-like article components",
    "notes": "Brazilian Portuguese news publisher. Core content is strongly server-rendered; advertising, consent, account and recommendation integrations add substantial client behavior."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "discoverability",
    "trace",
    "har",
    "lighthouse",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "robots/sitemap"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "same-document-transitions",
    "navigation-drawer",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "fluid-scaling",
    "size-aware-styling",
    "forms",
    "performance",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "accessibility",
    "html",
    "security",
    "privacy",
    "batch-analytics-events",
    "flicker-free-client-side-ab-testing",
    "translator",
    "validate-input-after-interaction",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Homepage first viewport with consent and ad chrome.",
      "condition": "desktop 800x600",
      "findingIds": [
        "F001",
        "F004",
        "F005",
        "F006",
        "F025"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage at narrow mobile viewport.",
      "condition": "viewport 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Homepage under requested dark color scheme.",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "Article template first viewport.",
      "condition": "desktop 800x600",
      "findingIds": [
        "F004"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "Article template mobile rendering.",
      "condition": "viewport 360x800",
      "findingIds": [
        "F007"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/latest-desktop.png",
      "caption": "Latest-news listing first viewport.",
      "condition": "desktop 800x600",
      "findingIds": [
        "F004",
        "F006"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/videos-desktop.png",
      "caption": "Video listing first viewport.",
      "condition": "desktop 800x600",
      "findingIds": [
        "F004"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "Homepage mobile layout and shift/long-task observations.",
      "condition": "viewport 360x800",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/article-layout-mobile.json",
      "caption": "Article mobile overflow and layout observations.",
      "condition": "viewport 360x800",
      "findingIds": [
        "F007",
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-overflow-probe.json",
      "caption": "Elements causing article inline overflow.",
      "condition": "viewport 360x800",
      "findingIds": [
        "F007",
        "F008"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace.",
      "condition": "cold load",
      "findingIds": [
        "F010"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact trace timing and long-task summary.",
      "condition": "cold load",
      "findingIds": [
        "F010",
        "F012"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "HAR 1.2 network capture.",
      "condition": "cold load",
      "findingIds": [
        "F013",
        "F023"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact request, byte, third-party and hygiene summary.",
      "condition": "cold load",
      "findingIds": [
        "F013",
        "F014",
        "F023",
        "F028",
        "F029"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "Lighthouse performance/accessibility/best-practices/SEO report.",
      "condition": "mobile simulated cold load",
      "findingIds": [
        "F010",
        "F011",
        "F012",
        "F014",
        "F015",
        "F016",
        "F018",
        "F020",
        "F021",
        "F028"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "Security response-header inspection.",
      "condition": "cold load",
      "findingIds": [
        "F022",
        "F024"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "Cookie security and persistence inspection.",
      "condition": "fresh profile",
      "findingIds": [
        "F022",
        "F025"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "Third-party tracker inventory.",
      "condition": "cold load",
      "findingIds": [
        "F023",
        "F025",
        "F029"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "Client-exposed secret scan, with zero findings.",
      "condition": "cold load",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Homepage image markup/delivery audit.",
      "condition": "desktop",
      "findingIds": [
        "F011",
        "F015",
        "F019",
        "F027"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-images.json",
      "caption": "Article image markup/delivery audit.",
      "condition": "desktop",
      "findingIds": [
        "F011",
        "F019",
        "F027"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline homepage heap summary.",
      "condition": "after load",
      "findingIds": [
        "F030"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "Heap summary after ten repeated full-page scroll cycles.",
      "condition": "post interaction",
      "findingIds": [
        "F030"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-platform-probe.json",
      "caption": "Document, structure, CSS, service-worker and media probe.",
      "condition": "desktop",
      "findingIds": [
        "F003",
        "F005",
        "F008",
        "F016"
      ]
    },
    {
      "type": "other",
      "path": "evidence/focus-target-probe.json",
      "caption": "Keyboard focus visibility and target measurements.",
      "condition": "keyboard/programmatic focus",
      "findingIds": [
        "F009",
        "F016",
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/forced-colors-probe.json",
      "caption": "Control/text rendering under forced colors.",
      "condition": "forced-colors: active",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "Animation inventory under reduced motion.",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": [
        "F002"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-metadata-probe.json",
      "caption": "Article structured/social metadata and form probe.",
      "condition": "desktop",
      "findingIds": [
        "F026"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Homepage raw HTML vs rendered comparison.",
      "condition": "JavaScript on/off",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "Article raw HTML vs rendered comparison.",
      "condition": "JavaScript on/off",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/latest-discoverability.json",
      "caption": "Latest listing raw HTML vs rendered comparison.",
      "condition": "JavaScript on/off",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/videos-discoverability.json",
      "caption": "Videos listing raw HTML vs rendered comparison.",
      "condition": "JavaScript on/off",
      "findingIds": []
    }
  ],
  "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": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The dark-mode screenshot is pixel-identical to the light screenshot and the platform probe reports computed colorScheme \"normal\".",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The reduced-motion probe confirms the media query is active but still finds three 1,000 ms document animations, including running animations.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Forced-colors probe confirmed active system colors, preserving visible yellow links and white controls on black with system border colors.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The platform probe reports no View Transition support usage while the site exposes hundreds of navigational links and interactive menu/search states.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Platform/CSS inspection found no scroll-linked decorative animation or custom scroll handler behavior to replace; scrolling remains native.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Representative feed and article interactions use native links and scrolling; no custom pointermove/swipe gesture that fights platform behavior was observed.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Screenshots and DOM show persistent section-labelled header/navigation while the page provides native scroll position and a clear article context.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "No tooltip, popover or edge-positioned anchored overlay was present in the representative public news paths.",
      "reason": "No tooltip, popover or edge-positioned anchored overlay was present in the representative public news paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Article navigation lands on a prominent H1 and visible section label; keyboard focus receives a visible UA/custom outline on primary links.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Desktop screenshots of the homepage, article, latest-news and videos templates show a large fixed consent prompt covering the lower content, with only a prominent “Prosseguir” action.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The DOM/platform probe finds 0 dialog, 0 popover and 0 details elements despite rendered consent, menu, account and search overlay controls.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Homepage and listing screenshots devote most of the initial viewport to an empty/ad slot plus the consent panel, leaving little editorial content visible.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "At 360x800, the article layout primitive reports scrollWidth 994, clientWidth 360 and horizontalOverflowPx 634; the probe identifies the off-canvas account drawer and quote carousel extending to 1,988 px.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The platform probe finds zero container-query rules; the article quote carousel and drawer overflow while reused global components depend on viewport layout.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The focus/target probe measures the Menu button at 12x2 CSS px and finds several later controls with outline none; some could not receive focus when programmatically focused.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "First-viewport screenshots clearly identify g1 as a news portal; lead headlines and article H1 expose the next reading action.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The lead homepage link opened a complete 200-status article with headline, dek, byline, date and body imagery without an account wall.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Despite failed recommendation/ad requests recorded in HAR/console, core homepage and article content rendered and remained navigable.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, DevTools trace, mobile layout and HAR summary.",
      "evidence": "Lighthouse reports performance 0.38, LCP 6.4 s, TBT 1,020 ms and TTI 52.6 s; the independent trace reports LCP 5.89 s and TBT 984 ms.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, DevTools trace, mobile layout and HAR summary.",
      "evidence": "Lighthouse reports CLS 0.106 and identifies CLS culprits; 8 of 10 homepage images and 18 of 20 article images lack explicit dimensions.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, DevTools trace, mobile layout and HAR summary.",
      "evidence": "The trace records 7 long tasks, a 574 ms longest task and 984 ms total blocking; Lighthouse attributes 8.7 s of main-thread work and 4.8 s script bootup.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, DevTools trace, mobile layout and HAR summary.",
      "evidence": "The HAR records 250 requests and 6.21 MB transferred, including parser-inserted critical CSS, many scripts and multiple redirects; 244 requests and 6.06 MB are classified off the main origin.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, DevTools trace, mobile layout and HAR summary.",
      "evidence": "Lighthouse estimates 2,637 KiB unused JavaScript; the 1.2 MB player bundle alone has about 1.04 MB unused on the homepage.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, forced-colors, focus/target and screenshot inspection.",
      "evidence": "Lighthouse accessibility finds unnamed image links and visible-label/accessible-name mismatches for network brand links.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility, forced-colors, focus/target and screenshot inspection.",
      "evidence": "Lighthouse color-contrast audit passed and forced-colors inspection preserved system text/control colors.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, forced-colors, focus/target and screenshot inspection.",
      "evidence": "The homepage platform probe finds an empty H1; Lighthouse finds malformed list content, and the focus probe finds visible controls that reject focus or suppress outlines.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility, forced-colors, focus/target and screenshot inspection.",
      "evidence": "Desktop/mobile article screenshots show a readable headline, comfortable line length, clear dek/byline hierarchy and no text clipping in the primary column.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, forced-colors, focus/target and screenshot inspection.",
      "evidence": "The article has 634 px horizontal overflow at 360 px and the Menu target is measured at 12x2 px, preventing reliable reflow and touch operation.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Lighthouse records Bastian Failed to fetch errors, CORS failures and advertising API errors in the console.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The image primitive finds dimensions missing on 8/10 homepage and 18/20 article images; it also reports 10/10 homepage image elements without alt, including linked editorial thumbnails.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Lighthouse reports two deprecated API warnings, inspector issues and an unload handler in a subframe that prevents BFCache restoration.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "DOM probes found descriptive, template-specific title and meta description on homepage and article.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "Lighthouse identifies three footer/menu anchors using href=\"javascript:void(0)\" and several unnamed links, despite most content links being real URLs.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "All four paths returned 200; homepage/article expose canonical URLs, robots.txt allows public content and advertises three sitemap indexes.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "Article probe found Organization/article JSON-LD plus matching og:type, title, description, image and URL metadata.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR inspection.",
      "evidence": "Headers show HTTPS and nosniff but no HSTS; CSP is only upgrade-insecure-requests. The cookie audit finds numerous analytics identifiers without Secure and widespread SameSite=None.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR inspection.",
      "evidence": "The tracker primitive observes 85 third-party origins and 25 known tracker hosts; the HAR attributes 244/250 requests and 6.06/6.21 MB to origins outside g1.globo.com.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR inspection.",
      "evidence": "No browser permission prompt fired on page load; public news reading requires no authentication. The account surface is separate and was not exercised.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, trackers, secrets and HAR inspection.",
      "evidence": "The headers primitive finds no HSTS, frame-ancestors/X-Frame-Options, Referrer-Policy or Permissions-Policy; the CSP has no source restrictions.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "Discoverability comparisons show 86-95% raw-HTML content coverage on home/article/latest and 66% on videos; none is a JS shell and titles/H1/meta survive.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "Core content survived multiple failed third-party requests; native article and listing navigation remained usable in rendered and crawler views.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "This is a content/news MPA rather than an installed application; offline installability is contextual.",
      "reason": "This is a content/news MPA rather than an installed application; offline installability is contextual."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML discoverability comparison, metadata/DOM probes, robots/sitemap and screenshots.",
      "evidence": "HAR captured failed recommendation/ad requests while core headlines and article content still rendered, demonstrating graceful isolation of non-core failures.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "DOM reports html lang=\"pt-br\" and visible Portuguese content/read order is correct under the left-to-right locale.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The audited publication is deliberately pt-BR and exposes no locale switcher or multi-locale transactional data in scope.",
      "reason": "The audited publication is deliberately pt-BR and exposes no locale switcher or multi-locale transactional data in scope."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "No scheduling, recurring-event or user-entered time-zone flow exists in the representative news paths.",
      "reason": "No scheduling, recurring-event or user-entered time-zone flow exists in the representative news paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Across templates the consent panel explains personalization and advertising but exposes only the primary “Prosseguir” button; trackers and cookies are already present in fresh sessions.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F025"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The representative public paths contain only a simple search field and no required-data form submission flow to exercise.",
      "reason": "The representative public paths contain only a simple search field and no required-data form submission flow to exercise."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "The article metadata/form probe finds the named, labelled search field with autocomplete=\"off\".",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F026"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "Checkout, subscription and authenticated account management are separate properties and were outside this public g1 content scope.",
      "reason": "Checkout, subscription and authenticated account management are separate properties and were outside this public g1 content scope."
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, tracker, Lighthouse and image-delivery inspection.",
      "evidence": "Homepage inspection finds 6 legacy-format images and only 1 modern-format image; article inspection finds 7 legacy and 0 modern, with 14 images lacking srcset.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, tracker, Lighthouse and image-delivery inspection.",
      "evidence": "The homepage issues 250 requests, loads an offscreen 1.2 MB player and about 800 KB Permutive script, and executes 83 scripts before any video interaction.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F028"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, tracker, Lighthouse and image-delivery inspection.",
      "evidence": "HAR evidence attributes 6.06 MB of 6.21 MB and 244 of 250 requests to non-main origins, disproportionate for a text-led news homepage.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F029"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "No declared agent-facing transactional capability exists; emerging WebMCP exposure is optional for this publisher.",
      "reason": "No declared agent-facing transactional capability exists; emerging WebMCP exposure is optional for this publisher."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative desktop/mobile screenshots plus DOM/evaluate probes across home, article, latest and videos.",
      "evidence": "No user task in the audited paths requires on-device inference; absence is an opportunity, not a failure.",
      "reason": "No user task in the audited paths requires on-device inference; absence is an opportunity, not a failure."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline and post-interaction heap summaries using ten repeated full-page scroll cycles.",
      "evidence": "Heap comparison after ten full-page scroll cycles decreased from 1,523,846 to 1,511,600 nodes and from 91.57 MB to 90.49 MB, showing no retained growth for the tested interaction.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Baseline and post-interaction heap summaries using ten repeated full-page scroll cycles.",
      "evidence": "The baseline heap summary reports 1,523,846 heap nodes and 91.6 MB self size before meaningful interaction. Repeated scrolling did not increase it, but the starting footprint is high.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ],
      "findingIds": [
        "F030"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline and post-interaction heap summaries using ten repeated full-page scroll cycles.",
      "evidence": "The repeated-scroll heap stayed bounded and shrank overall; summaries exposed no growing Detached* constructor population. Confidence is limited because raw snapshots were not manually parsed.",
      "pathIds": [
        "home",
        "article",
        "latest",
        "videos"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001",
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004",
        "F005",
        "F006"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F007",
        "F008",
        "F009"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F010",
        "F011",
        "F012",
        "F013",
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F015",
        "F016",
        "F017"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F018",
        "F019",
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F022",
        "F023",
        "F024"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F025",
        "F026"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F027",
        "F028",
        "F029"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged not applicable for this public news-publishing scope."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F030"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary news discovery feed; represents the entry template, global navigation, consent UI and main content discovery.",
      "url": "https://g1.globo.com/",
      "conditions": [
        "desktop 800x600",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Lead economy article; represents the core reading journey and article/detail template.",
      "url": "https://g1.globo.com/economia/noticia/2026/07/23/como-empresas-brasileiras-tentam-driblar-o-tarifaco.ghtml",
      "conditions": [
        "desktop 800x600",
        "mobile 360x800",
        "crawler without JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "latest",
      "description": "Latest-news listing; represents section/index feeds and chronological discovery.",
      "url": "https://g1.globo.com/ultimas-noticias/",
      "conditions": [
        "desktop 800x600",
        "crawler without JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "videos",
      "description": "Video listing; represents media-heavy discovery and video content.",
      "url": "https://g1.globo.com/videos/",
      "conditions": [
        "desktop 800x600",
        "crawler without JavaScript"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "severity": "medium",
      "confidence": "high",
      "summary": "No user-preference-driven dark theme",
      "evidence": "The dark-mode screenshot is pixel-identical to the light screenshot and the platform probe reports computed colorScheme \"normal\".",
      "suggestedFix": "Declare color-scheme: light dark and provide prefers-color-scheme/light-dark() surface and text tokens.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-desktop.png"
      ]
    },
    {
      "id": "F002",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Animations remain active with reduced motion requested",
      "evidence": "The reduced-motion probe confirms the media query is active but still finds three 1,000 ms document animations, including running animations.",
      "suggestedFix": "Under prefers-reduced-motion: reduce, remove non-essential animation or reduce it to a near-instant, non-spatial transition.",
      "effort": "small",
      "artifacts": [
        "evidence/reduced-motion-probe.json"
      ]
    },
    {
      "id": "F003",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "severity": "low",
      "confidence": "high",
      "summary": "Route and state changes do not use View Transitions",
      "evidence": "The platform probe reports no View Transition support usage while the site exposes hundreds of navigational links and interactive menu/search states.",
      "suggestedFix": "Progressively enhance route and major state changes with same/cross-document View Transitions, retaining instant navigation as fallback.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "id": "F004",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent prompt obscures primary content on every entry template",
      "evidence": "Desktop screenshots of the homepage, article, latest-news and videos templates show a large fixed consent prompt covering the lower content, with only a prominent “Prosseguir” action.",
      "suggestedFix": "Use a compact, accessible consent surface that does not cover core content and offers clear accept, reject and preference actions.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-desktop.png",
        "evidence/latest-desktop.png",
        "evidence/videos-desktop.png"
      ]
    },
    {
      "id": "F005",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "severity": "medium",
      "confidence": "high",
      "summary": "Overlay UI is not built from semantic top-layer primitives",
      "evidence": "The DOM/platform probe finds 0 dialog, 0 popover and 0 details elements despite rendered consent, menu, account and search overlay controls.",
      "suggestedFix": "Use dialog for modal consent and popover/details for transient menu/disclosure UI, with native focus and light-dismiss behavior.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "id": "F006",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "medium",
      "confidence": "high",
      "summary": "Advertising and consent chrome dominate the first viewport",
      "evidence": "Homepage and listing screenshots devote most of the initial viewport to an empty/ad slot plus the consent panel, leaving little editorial content visible.",
      "suggestedFix": "Reserve smaller ad slots, collapse unfilled inventory promptly, and keep consent chrome outside the main reading area.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/latest-desktop.png"
      ]
    },
    {
      "id": "F007",
      "pathId": "article",
      "url": "https://g1.globo.com/economia/noticia/2026/07/23/como-empresas-brasileiras-tentam-driblar-o-tarifaco.ghtml",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "Article template overflows by 634 CSS pixels on mobile",
      "evidence": "At 360x800, the article layout primitive reports scrollWidth 994, clientWidth 360 and horizontalOverflowPx 634; the probe identifies the off-canvas account drawer and quote carousel extending to 1,988 px.",
      "suggestedFix": "Constrain off-canvas drawers to the visual viewport, clip their containing layer, and make the quote carousel intrinsically size within 100% inline-size.",
      "effort": "medium",
      "artifacts": [
        "evidence/article-layout-mobile.json",
        "evidence/article-overflow-probe.json",
        "evidence/article-mobile.png"
      ]
    },
    {
      "id": "F008",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "severity": "medium",
      "confidence": "high",
      "summary": "Reused components do not use component-level responsive rules",
      "evidence": "The platform probe finds zero container-query rules; the article quote carousel and drawer overflow while reused global components depend on viewport layout.",
      "suggestedFix": "Give reusable cards, ticker/carousel and drawer shells containment and size-aware @container adaptations, with intrinsic fallbacks.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/article-overflow-probe.json"
      ]
    },
    {
      "id": "F009",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some focusable controls have tiny targets or no visible focus",
      "evidence": "The focus/target probe measures the Menu button at 12x2 CSS px and finds several later controls with outline none; some could not receive focus when programmatically focused.",
      "suggestedFix": "Make the actual interactive box at least 44x44 CSS px and provide a high-contrast :focus-visible indicator on every control.",
      "effort": "small",
      "artifacts": [
        "evidence/focus-target-probe.json"
      ]
    },
    {
      "id": "F010",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Homepage load is slow and interaction readiness is poor",
      "evidence": "Lighthouse reports performance 0.38, LCP 6.4 s, TBT 1,020 ms and TTI 52.6 s; the independent trace reports LCP 5.89 s and TBT 984 ms.",
      "suggestedFix": "Prioritize the LCP asset/content, delay non-critical advertising/analytics, and break up startup work until LCP and interaction metrics are in the good range.",
      "effort": "large",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ]
    },
    {
      "id": "F011",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Load-time layout shift is just outside the good range",
      "evidence": "Lighthouse reports CLS 0.106 and identifies CLS culprits; 8 of 10 homepage images and 18 of 20 article images lack explicit dimensions.",
      "suggestedFix": "Reserve image, ad and late-content space with width/height or aspect-ratio and use stable font fallbacks.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-images.json",
        "evidence/article-images.json"
      ]
    },
    {
      "id": "F012",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "severity": "high",
      "confidence": "high",
      "summary": "Heavy scripts block the main thread",
      "evidence": "The trace records 7 long tasks, a 574 ms longest task and 984 ms total blocking; Lighthouse attributes 8.7 s of main-thread work and 4.8 s script bootup.",
      "suggestedFix": "Split and schedule startup tasks, move eligible computation off-thread, and defer ad/player/measurement code until needed.",
      "effort": "large",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "id": "F013",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical delivery is overwhelmed by a large dependency graph",
      "evidence": "The HAR records 250 requests and 6.21 MB transferred, including parser-inserted critical CSS, many scripts and multiple redirects; 244 requests and 6.06 MB are classified off the main origin.",
      "suggestedFix": "Reduce critical chains, preload only true LCP dependencies, defer non-critical scripts and apply useful cache/compression headers.",
      "effort": "large",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ]
    },
    {
      "id": "F014",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "severity": "high",
      "confidence": "high",
      "summary": "Several megabytes of JavaScript are unused during load",
      "evidence": "Lighthouse estimates 2,637 KiB unused JavaScript; the 1.2 MB player bundle alone has about 1.04 MB unused on the homepage.",
      "suggestedFix": "Conditionally load the player and advertising integrations only when their UI is near use, and remove duplicate/legacy bundles.",
      "effort": "large",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "id": "F015",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some links have no discernible name or mismatched accessible names",
      "evidence": "Lighthouse accessibility finds unnamed image links and visible-label/accessible-name mismatches for network brand links.",
      "suggestedFix": "Give linked images meaningful alt/aria-label text and ensure each accessible name contains its visible label.",
      "effort": "small",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-images.json"
      ]
    },
    {
      "id": "F016",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Heading and focus semantics contain gaps",
      "evidence": "The homepage platform probe finds an empty H1; Lighthouse finds malformed list content, and the focus probe finds visible controls that reject focus or suppress outlines.",
      "suggestedFix": "Provide a meaningful H1, valid list children, and a logical, consistently visible keyboard focus order.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/focus-target-probe.json",
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "id": "F017",
      "pathId": "article",
      "url": "https://g1.globo.com/economia/noticia/2026/07/23/como-empresas-brasileiras-tentam-driblar-o-tarifaco.ghtml",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "Mobile reflow and target sizing are not consistently usable",
      "evidence": "The article has 634 px horizontal overflow at 360 px and the Menu target is measured at 12x2 px, preventing reliable reflow and touch operation.",
      "suggestedFix": "Fix inline overflow at narrow widths and enlarge interactive hit areas without disabling user scaling.",
      "effort": "medium",
      "artifacts": [
        "evidence/article-layout-mobile.json",
        "evidence/focus-target-probe.json"
      ]
    },
    {
      "id": "F018",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage emits runtime and network errors",
      "evidence": "Lighthouse records Bastian Failed to fetch errors, CORS failures and advertising API errors in the console.",
      "suggestedFix": "Handle expected network failures without console errors and correct or remove failing cross-origin integrations.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "id": "F019",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image markup omits intrinsic dimensions and often usable alternatives",
      "evidence": "The image primitive finds dimensions missing on 8/10 homepage and 18/20 article images; it also reports 10/10 homepage image elements without alt, including linked editorial thumbnails.",
      "suggestedFix": "Emit width/height for every content image and purposeful alt text for linked editorial imagery; use empty alt only for truly decorative images.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json"
      ]
    },
    {
      "id": "F020",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Deprecated APIs and platform lifecycle blockers remain",
      "evidence": "Lighthouse reports two deprecated API warnings, inspector issues and an unload handler in a subframe that prevents BFCache restoration.",
      "suggestedFix": "Update or isolate deprecated ad dependencies, remove unload handlers, and resolve DevTools inspector issues.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "id": "F021",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "Some navigation links are not crawlable",
      "evidence": "Lighthouse identifies three footer/menu anchors using href=\"javascript:void(0)\" and several unnamed links, despite most content links being real URLs.",
      "suggestedFix": "Use buttons for actions and real destination href values for navigation, with descriptive link text.",
      "effort": "small",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/recon.json"
      ]
    },
    {
      "id": "F022",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Transport policy and cookie hardening are incomplete",
      "evidence": "Headers show HTTPS and nosniff but no HSTS; CSP is only upgrade-insecure-requests. The cookie audit finds numerous analytics identifiers without Secure and widespread SameSite=None.",
      "suggestedFix": "Deploy HSTS, a restrictive nonce/hash-based CSP, and set Secure plus the narrowest suitable SameSite policy on all cookies.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ]
    },
    {
      "id": "F023",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The page activates an exceptionally broad tracking footprint",
      "evidence": "The tracker primitive observes 85 third-party origins and 25 known tracker hosts; the HAR attributes 244/250 requests and 6.06/6.21 MB to origins outside g1.globo.com.",
      "suggestedFix": "Reduce vendors, gate non-essential analytics/advertising on explicit consent, batch events and enforce strict retention/data-minimisation contracts.",
      "effort": "large",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ]
    },
    {
      "id": "F024",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Several browser-enforced defenses are absent",
      "evidence": "The headers primitive finds no HSTS, frame-ancestors/X-Frame-Options, Referrer-Policy or Permissions-Policy; the CSP has no source restrictions.",
      "suggestedFix": "Add HSTS, frame-ancestors, strict Referrer-Policy and a least-privilege Permissions-Policy, then harden CSP sources and Trusted Types where applicable.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-headers.json"
      ]
    },
    {
      "id": "F025",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent presents continuation without an equivalent refusal choice",
      "evidence": "Across templates the consent panel explains personalization and advertising but exposes only the primary “Prosseguir” button; trackers and cookies are already present in fresh sessions.",
      "suggestedFix": "Provide equally prominent accept, reject and manage choices before non-essential storage or tracking starts, and make later withdrawal easy.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-trackers.json",
        "evidence/home-cookies.json"
      ]
    },
    {
      "id": "F026",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "severity": "low",
      "confidence": "high",
      "summary": "Search input disables browser autocomplete",
      "evidence": "The article metadata/form probe finds the named, labelled search field with autocomplete=\"off\".",
      "suggestedFix": "Allow appropriate search autocomplete/history behavior unless there is a documented privacy reason to suppress it.",
      "effort": "small",
      "artifacts": [
        "evidence/article-metadata-probe.json"
      ]
    },
    {
      "id": "F027",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image delivery still relies heavily on legacy formats and incomplete responsive markup",
      "evidence": "Homepage inspection finds 6 legacy-format images and only 1 modern-format image; article inspection finds 7 legacy and 0 modern, with 14 images lacking srcset.",
      "suggestedFix": "Negotiate AVIF/WebP, provide srcset/sizes, and retain intrinsic dimensions for every responsive image.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json"
      ]
    },
    {
      "id": "F028",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "severity": "high",
      "confidence": "high",
      "summary": "Large background advertising and measurement work runs on initial load",
      "evidence": "The homepage issues 250 requests, loads an offscreen 1.2 MB player and about 800 KB Permutive script, and executes 83 scripts before any video interaction.",
      "suggestedFix": "Defer player, ad auctions and measurement until visible/consented, coalesce analytics, and stop background work when hidden.",
      "effort": "large",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "id": "F029",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party code consumes nearly the entire page budget",
      "evidence": "HAR evidence attributes 6.06 MB of 6.21 MB and 244 of 250 requests to non-main origins, disproportionate for a text-led news homepage.",
      "suggestedFix": "Set per-template third-party budgets, remove low-value vendors, lazy-load media code and cache reusable assets.",
      "effort": "large",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ]
    },
    {
      "id": "F030",
      "pathId": "home",
      "url": "https://g1.globo.com/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "severity": "medium",
      "confidence": "high",
      "summary": "Initial memory footprint is disproportionate for a news homepage",
      "evidence": "The baseline heap summary reports 1,523,846 heap nodes and 91.6 MB self size before meaningful interaction. Repeated scrolling did not increase it, but the starting footprint is high.",
      "suggestedFix": "Conditionally load large integrations, release unused caches/observers and profile the dominant constructors with a dedicated heap analyzer.",
      "effort": "large",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ]
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Gate and reduce third-party advertising/analytics",
      "priority": 1,
      "findingIds": [
        "F012",
        "F013",
        "F014",
        "F023",
        "F025",
        "F028",
        "F029"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Restore good LCP and interaction readiness",
      "priority": 2,
      "findingIds": [
        "F010",
        "F012",
        "F013",
        "F014"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Offer fair, non-blocking consent controls",
      "priority": 3,
      "findingIds": [
        "F004",
        "F005",
        "F006",
        "F025"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Fix article mobile overflow and target sizing",
      "priority": 4,
      "findingIds": [
        "F007",
        "F008",
        "F009",
        "F017"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Harden headers and cookie policies",
      "priority": 5,
      "findingIds": [
        "F022",
        "F024"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Repair names, heading/focus structure and image semantics",
      "priority": 6,
      "findingIds": [
        "F015",
        "F016",
        "F019"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Modernize responsive image delivery",
      "priority": 7,
      "findingIds": [
        "F011",
        "F019",
        "F027"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Respect dark and reduced-motion preferences",
      "priority": 8,
      "findingIds": [
        "F001",
        "F002"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Remove console/deprecation/BFCache failures",
      "priority": 9,
      "findingIds": [
        "F018",
        "F020"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Reduce initial memory footprint",
      "priority": 10,
      "findingIds": [
        "F030"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T06-50-31-377Z"
}
