{
  "url": "https://www.gazzetta.it",
  "auditedAt": "2026-07-21T01:09:36.438Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete across 58 checks and four representative public templates/journeys.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered multi-page publication with shared RCS component/orchestrator scripts",
    "notes": "Public Italian sports-news homepage, World Cup section, article and live-results surface. A consent-or-subscribe wall appears on fresh sessions."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "direct-http",
    "modern-web-guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "same-document-transitions",
    "shrinking-header-on-scroll",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "forms",
    "performance",
    "break-up-long-tasks",
    "html",
    "security",
    "privacy",
    "flicker-free-client-side-ab-testing",
    "translator",
    "custom-button-actions",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals",
    "improve-text-layout-and-legibility",
    "optimize-image-priority"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "article dom"
    },
    {
      "type": "other",
      "path": "evidence/article-metadata.json",
      "caption": "article metadata"
    },
    {
      "type": "layout",
      "path": "evidence/article-mobile-layout.json",
      "caption": "article mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F02",
        "F29"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F15",
        "F26",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/consent-controls.json",
      "caption": "consent controls"
    },
    {
      "type": "other",
      "path": "evidence/content-links.json",
      "caption": "content links"
    },
    {
      "type": "other",
      "path": "evidence/contrast-preference-probe.json",
      "caption": "contrast preference probe",
      "findingIds": [
        "F04",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/form-error-probe.json",
      "caption": "form error probe",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance-consulted.txt",
      "caption": "guidance consulted"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-consented-desktop.png",
      "caption": "home consented desktop"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-consented-mobile.png",
      "caption": "home consented mobile",
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F01",
        "F03",
        "F13",
        "F23",
        "F25",
        "F26",
        "F32"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "findingIds": [
        "F28"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers",
      "findingIds": [
        "F19",
        "F22"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-baseline.json",
      "caption": "home heap baseline",
      "findingIds": [
        "F33",
        "F34"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-post.json",
      "caption": "home heap post",
      "findingIds": [
        "F33",
        "F34"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F12",
        "F17",
        "F30"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "home lighthouse",
      "findingIds": [
        "F04",
        "F08",
        "F09",
        "F12",
        "F13",
        "F16",
        "F18"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F02",
        "F15",
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F02",
        "F15",
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-platform-probe.json",
      "caption": "home platform probe",
      "findingIds": [
        "F05",
        "F06",
        "F07",
        "F10",
        "F12",
        "F14",
        "F21",
        "F24",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-preferences-probe.json",
      "caption": "home preferences probe",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon"
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F10",
        "F11",
        "F16",
        "F20",
        "F30",
        "F31",
        "F32"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers",
      "findingIds": [
        "F20",
        "F31"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F10",
        "F11",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/indexing-http.txt",
      "caption": "indexing http"
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "pwa probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/results-mobile.png",
      "caption": "results mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F26"
      ]
    },
    {
      "type": "other",
      "path": "evidence/results-probe.json",
      "caption": "results probe",
      "findingIds": [
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/section-metadata.json",
      "caption": "section metadata"
    },
    {
      "type": "layout",
      "path": "evidence/section-mobile-layout.json",
      "caption": "section mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F02",
        "F29"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/section-mobile.png",
      "caption": "section mobile",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F26"
      ]
    }
  ],
  "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": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "The dark screenshot is byte-for-byte visually identical to the light capture; under emulated prefers-color-scheme: dark, computed color-scheme remains normal and body background remains rgb(253,233,235).",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-desktop.png",
        "evidence/home-preferences-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "evaluate under prefers-reduced-motion: reduce",
      "evidence": "Emulated reduced-motion matched and getAnimations() returned no active animations, so no non-essential motion continued.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Under prefers-contrast: more, computed colors remain unchanged. Lighthouse measures 2.83:1 for orange links/buttons and 2.29:1 for “Preferenze”, below 4.5:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/contrast-preference-probe.json",
        "evidence/home-lighthouse.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Rendered DOM/source feature probe found no view-transition-name, @view-transition, or related API marker on the multi-page news experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/source feature scan and animation probe",
      "evidence": "No active animations, scroll timeline markers, or scroll-linked visual effects were present, so no main-thread scroll animation anti-pattern was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "DOM interaction/feature inspection",
      "evidence": "Representative news, article, section and results paths used native links and scrolling; no custom pointer gesture handlers or platform-fighting gesture UI was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "The homepage DOM is over 22,000px tall, while the feature probe found no scroll-state query, scroll timeline, or progress treatment.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "No tooltip, contextual menu, or edge-anchored transient overlay was present in the representative reading, section, and live-results paths.",
      "reason": "No tooltip, contextual menu, or edge-anchored transient overlay was present in the representative reading, section, and live-results paths.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and metadata review",
      "evidence": "Descriptive section/article links, sequential headings, main/nav landmarks and article metadata provide a clear information hierarchy across representative paths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/section-metadata.json",
        "evidence/article-metadata.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Desktop and 360px screenshots show the page blurred and inert behind a modal on first load. The only prominent choices are “ACCETTA E CONTINUA” and “RIFIUTA E ABBONATI”; the latter does not provide a free rejection path.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/results-mobile.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "DOM inspection reports zero <dialog> and zero popover elements; the visible 624x444 fixed overlay is a DIV role=dialog.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "No-JS crawler screenshot shows header/navigation followed by roughly 250px of blank reserved space; no headline appears in the first viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability-crawler.png"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "At a 360x800 device viewport, layout reports a 1125 CSS-pixel viewport rendered at scale 0.32 because meta viewport is width=1120, initial-scale=0.70. Screenshots show tiny consent text and controls across home, article, section and live-results templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/section-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Feature probe found no @container/container-type markers, while all three tested templates retained the 1125px CSS viewport on a 360px device.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/section-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Focus/target probe found visible controls under 44px; the Abbonamenti link computes outline: none when focused, while many other links retain the UA outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Across home, article, section and results screenshots, users see the policy wall instead of headlines, scores or article content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-mobile.png",
        "evidence/section-mobile.png",
        "evidence/results-mobile.png"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Direct navigation to a representative article still shows only the consent-or-subscribe wall over blurred editorial content.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-mobile.png"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "404 response and rendered-state probe",
      "evidence": "A deliberately invalid URL returned a clear Italian not-found explanation, a home action, search guidance and navigation links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/indexing-http.txt"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Raw-CDP trace measured FCP 2.83s and LCP 4.12s; Lighthouse’s separate run measured LCP 33.5s and performance 0.48.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json",
        "evidence/home-lighthouse.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "layout-shift observer across templates",
      "evidence": "Observed CLS stayed low: 0.0002 on home, 0.0045 on section and 0.0014 on article during capture.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/section-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Trace reports two long tasks, the longest 229ms, and 206ms total blocking time; Lighthouse reports 342ms TBT.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-lighthouse.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "HAR records 163 requests and 5.88MB transferred, including 2.36MB script, 2.58MB images and 682KB fonts. Parser-inserted orchestrator scripts in <head> have neither async nor defer.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "The HAR contains 62 script requests totaling 2.36MB; Google Tag Manager alone transfers 798KB and multiple advertising/tracking bundles are among the largest resources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Images primitive found 43 of 100 images missing alt text. Lighthouse confirms missing alt on sponsor/footer images; DOM probe finds two search inputs without associated labels.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-lighthouse.json",
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Lighthouse reports 2.83:1 for orange-on-white links and white-on-orange buttons, and 2.29:1 for “Preferenze”, against a required 4.5:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Focus/target probe found visible controls under 44px; the Abbonamenti link computes outline: none when focused, while many other links retain the UA outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "A 360px device receives a 1125 CSS-pixel layout at 0.32 scale. Consent copy and controls become extremely small despite technically allowing zoom.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "A 360px device receives a 1125 CSS-pixel layout at 0.32 scale. Consent copy and controls become extremely small despite technically allowing zoom.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Lighthouse records a 404 for https://dimages2.gazzettaobjects.it/favicon.ico.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Of 100 images, 80 lack explicit width/height, 35 are oversized, 41 below-fold images are not lazy-loaded and 37 use legacy formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices and DOM inspection",
      "evidence": "Lighthouse and DOM inspection found valid baseline platform usage with no permission prompt on load or deprecated-API finding beyond the separately recorded console/resource error.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-platform-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered metadata probes",
      "evidence": "Home, section, article and results pages each expose descriptive titles and meta descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/section-metadata.json",
        "evidence/article-metadata.json",
        "evidence/results-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Lighthouse flags a registration anchor with no href. The viewport is hard-coded to width=1120, producing a scaled desktop layout on mobile.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata, Lighthouse SEO, and direct HTTP probes",
      "evidence": "Home and representative pages returned 200, expose canonical URLs and index/follow signals; robots.txt is valid and sitemap.xml responds.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/article-metadata.json",
        "evidence/section-metadata.json",
        "evidence/indexing-http.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Article metadata parse",
      "evidence": "The article includes NewsArticle and BreadcrumbList JSON-LD plus matching Open Graph title, description, image and URL.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/article-metadata.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "HTTPS is used, but headers primitive finds no CSP, HSTS or X-Content-Type-Options. Cookie audit finds 25 cookies flagged insecure and SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Tracker probe finds 30 third-party origins and five known trackers, including DoubleClick, Google Tag Manager and Facebook. HAR attributes 158 requests and 5.75MB to non-main origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "DOM probe finds multiple text/password sign-in forms with empty autocomplete tokens and no WebAuthn/passkey marker in rendered source.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/form-error-probe.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "No CSP/frame-ancestors, X-Frame-Options, HSTS, Permissions-Policy or nosniff header is present; Referrer-Policy remains no-referrer-when-downgrade.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "discoverability raw-HTML comparison",
      "evidence": "Raw HTML retains 92% of home content words and 84% of article content words, including title, h1 and description; neither page is a JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "DOM, screenshot and layout review",
      "evidence": "Representative server-rendered pages loaded stable navigation/content DOM, and the consent overlay remained within viewport bounds in desktop and mobile captures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-mobile.png",
        "evidence/article-dom.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "This public news publication is content-oriented rather than an installable application; offline/PWA installability is not required for the audited core reading journey.",
      "reason": "This public news publication is content-oriented rather than an installable application; offline/PWA installability is not required for the audited core reading journey.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "404 HTTP/rendered-state probe",
      "evidence": "The 404 path provides an explicit explanation and actionable route home/search instead of a blank shell or infinite spinner.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/indexing-http.txt"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "The publication is deliberately Italian-language and Italy-focused, with no language/locale switch exposed in the audited scope; html lang=it-IT is correct.",
      "reason": "The publication is deliberately Italian-language and Italy-focused, with no language/locale switch exposed in the audited scope; html lang=it-IT is correct.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "The audited editorial and scores surfaces are deliberately single-locale Italian; multi-locale data formatting was not an offered capability.",
      "reason": "The audited editorial and scores surfaces are deliberately single-locale Italian; multi-locale data formatting was not an offered capability.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "No cross-time-zone scheduling or user-authored event flow was part of the representative Italian news journeys.",
      "reason": "No cross-time-zone scheduling or user-authored event flow was part of the representative Italian news journeys.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "The modal pairs “ACCETTA E CONTINUA” with “RIFIUTA E ABBONATI”; declining profiling is framed as a paid path, while settings is a lower-emphasis orange link.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/contrast-preference-probe.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Invalid empty-submit DOM probe",
      "evidence": "Login inputs are labelled and use native required constraints; an empty submit leaves both required fields invalid without premature custom blame messaging.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/form-error-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Rendered form probe shows search, username/text and password fields with empty autocomplete tokens.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/results-probe.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "The blocking wall says users can choose a paid plan but the “RIFIUTA E ABBONATI” action displays no price, term or cancellation information before the click.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Images probe finds 35 oversized images, 37 legacy-format images, 23 without srcset, and only one modern-format image among 100.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Initial load transfers 5.88MB in 163 requests, with 30 third-party origins and multiple tracking bundles even while the blocking consent wall is displayed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "Non-main origins account for 158 requests and 5.75MB. Scripts and images total 4.94MB while the visible state is only a consent wall.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "No declared agent-facing transaction or tool surface exists; the emerging WebMCP opportunity is not treated as a failure.",
      "reason": "No declared agent-facing transaction or tool surface exists; the emerging WebMCP opportunity is not treated as a failure.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative-route recon.",
      "evidence": "On-device inference is not necessary to complete the publication’s reading and live-score tasks; absence is not a defect.",
      "reason": "On-device inference is not necessary to complete the publication’s reading and live-score tasks; absence is not a defect.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "After GC, baseline heap was 769,639 nodes/51.1MB; after accepting the wall and ten alternating top/bottom scrolls it retained 1,417,924 nodes/83.8MB, with closures rising from 36,691 to 98,366. The consent state change is a confound, so leak attribution is medium confidence.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post.json"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Direct visual, DOM, performance, network, accessibility, security, or memory evidence as cited by the linked finding.",
      "evidence": "A settled baseline after GC contains 769,639 heap nodes and 51.1MB self size; the exercised state retains 83.8MB and 1.42 million nodes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post.json"
      ],
      "findingIds": [
        "F34"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "GC heap-summary constructor comparison",
      "evidence": "Neither heap summary shows a Detached* constructor among the dominant retained populations; direct evidence does not show a prominent detached-DOM class, though the general growth issue is recorded separately.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F07",
        "F28"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F29",
        "F14"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "The publication is deliberately Italian-language and Italy-focused, with no language/locale switch exposed in the audited scope; html lang=it-IT is correct. The audited editorial and scores surfaces are deliberately single-locale Italian; multi-locale data formatting was not an offered capability. No cross-time-zone scheduling or user-authored event flow was part of the representative Italian news journeys."
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24",
        "F25"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F30",
        "F31",
        "F32"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared agent-facing transaction or tool surface exists; the emerging WebMCP opportunity is not treated as a failure. On-device inference is not necessary to complete the publication’s reading and live-score tasks; absence is not a defect."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F33",
        "F34"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary headline-discovery template; tested initial consent state, desktop/mobile, preferences, performance, network, privacy, accessibility and memory.",
      "url": "https://www.gazzetta.it",
      "conditions": [
        "desktop 780x500",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "fresh consent state"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "World Cup section/listing archetype representing topical indexes and navigation into story/video content.",
      "url": "https://www.gazzetta.it/Calcio/Mondiali/",
      "conditions": [
        "viewport: 360x800",
        "fresh consent state"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Representative current NewsArticle detail page, including crawler visibility, metadata and core reading flow.",
      "url": "https://www.gazzetta.it/Calcio/Serie-A/Inter/21-07-2026/nicolo-barella-l-intervista-gazzetta-tra-inter-e-nazionale-resto-a-vita-champions.shtml",
      "conditions": [
        "viewport: 360x800",
        "JavaScript and raw no-JS HTML",
        "fresh consent state"
      ],
      "result": "issues"
    },
    {
      "id": "results",
      "description": "Live-results interactive destination representing the scores journey and shared forms/navigation shell.",
      "url": "https://www.gazzetta.it/risultati-live/",
      "conditions": [
        "viewport: 360x800",
        "fresh consent state"
      ],
      "result": "issues"
    },
    {
      "id": "error404",
      "description": "Deliberately invalid route representing HTTP/network recovery behavior.",
      "url": "https://www.gazzetta.it/definitely-not-a-real-page-web-uplift",
      "conditions": [
        "normal network"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "critical",
      "confidence": "high",
      "summary": "A full-screen consent-or-subscribe wall obscures all editorial content on every tested entry page.",
      "evidence": "Desktop and 360px screenshots show the page blurred and inert behind a modal on first load. The only prominent choices are “ACCETTA E CONTINUA” and “RIFIUTA E ABBONATI”; the latter does not provide a free rejection path.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/results-mobile.png"
      ],
      "suggestedFix": "Let visitors reject non-essential processing without being forced into a subscription, keep a concise non-modal notice where lawful, and use a native dialog only when blocking interaction is essential.",
      "effort": "large"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "severity": "high",
      "confidence": "high",
      "summary": "Mobile uses a scaled 1120px desktop canvas instead of a readable reflowed layout.",
      "evidence": "At a 360x800 device viewport, layout reports a 1125 CSS-pixel viewport rendered at scale 0.32 because meta viewport is width=1120, initial-scale=0.70. Screenshots show tiny consent text and controls across home, article, section and live-results templates.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/section-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "suggestedFix": "Use width=device-width, initial-scale=1; build fluid layouts with intrinsic sizing and responsive type, then verify each template at 320–412 CSS pixels.",
      "effort": "large"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page ignores the user’s dark color-scheme preference.",
      "evidence": "The dark screenshot is byte-for-byte visually identical to the light capture; under emulated prefers-color-scheme: dark, computed color-scheme remains normal and body background remains rgb(253,233,235).",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-desktop.png",
        "evidence/home-preferences-probe.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and retint surfaces, text, controls and overlays with prefers-color-scheme or light-dark().",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "High-contrast preference does not change controls, and the consent UI already contains low-contrast orange text and buttons.",
      "evidence": "Under prefers-contrast: more, computed colors remain unchanged. Lighthouse measures 2.83:1 for orange links/buttons and 2.29:1 for “Preferenze”, below 4.5:1.",
      "artifacts": [
        "evidence/contrast-preference-probe.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Increase foreground/background contrast to WCAG minimums and add a prefers-contrast/forced-colors treatment that preserves borders and focus indicators.",
      "effort": "small"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "animation",
      "severity": "low",
      "confidence": "medium",
      "summary": "Route and state changes have no View Transition integration.",
      "evidence": "Rendered DOM/source feature probe found no view-transition-name, @view-transition, or related API marker on the multi-page news experience.",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "suggestedFix": "Progressively enhance same-origin article and section navigation with cross-document View Transitions, preserving an instant fallback.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "Long pages expose no scroll-state-aware header or reading-position feedback.",
      "evidence": "The homepage DOM is over 22,000px tall, while the feature probe found no scroll-state query, scroll timeline, or progress treatment.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-platform-probe.json"
      ],
      "suggestedFix": "Add lightweight scroll-state-aware chrome or article progress where it improves orientation, with no-JS and reduced-motion fallbacks.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The blocking consent overlay is a custom DIV with role=dialog rather than a native dialog and has no light-dismiss path.",
      "evidence": "DOM inspection reports zero <dialog> and zero popover elements; the visible 624x444 fixed overlay is a DIV role=dialog.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-platform-probe.json"
      ],
      "suggestedFix": "Use <dialog> for genuinely modal consent settings, label it accessibly, manage focus, and offer a clear close/reject action.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Initial rendering is slow and misses the good LCP threshold.",
      "evidence": "Raw-CDP trace measured FCP 2.83s and LCP 4.12s; Lighthouse’s separate run measured LCP 33.5s and performance 0.48.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Prioritize the true LCP resource, shorten the critical path, defer non-essential advertising/tracking, and test under representative mobile throttling.",
      "effort": "large"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Long tasks and heavy scripting block the main thread.",
      "evidence": "Trace reports two long tasks, the longest 229ms, and 206ms total blocking time; Lighthouse reports 342ms TBT.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-lighthouse.json"
      ],
      "suggestedFix": "Profile the 229ms task, break app work into schedulable chunks, and delay advertising/analytics work until after core content is interactive.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The page delivers a very large, script-heavy critical path.",
      "evidence": "HAR records 163 requests and 5.88MB transferred, including 2.36MB script, 2.58MB images and 682KB fonts. Parser-inserted orchestrator scripts in <head> have neither async nor defer.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-platform-probe.json"
      ],
      "suggestedFix": "Defer non-critical classic scripts, reduce dependency chains, subset/preload only required fonts, and prioritize only the hero image.",
      "effort": "large"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "JavaScript and third-party code dominate page weight.",
      "evidence": "The HAR contains 62 script requests totaling 2.36MB; Google Tag Manager alone transfers 798KB and multiple advertising/tracking bundles are among the largest resources.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Audit code coverage, remove duplicate/legacy bundles, and load advertising and analytics conditionally after consent and user-value content.",
      "effort": "large"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Many images and search fields lack accessible alternatives or labels.",
      "evidence": "Images primitive found 43 of 100 images missing alt text. Lighthouse confirms missing alt on sponsor/footer images; DOM probe finds two search inputs without associated labels.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-lighthouse.json",
        "evidence/home-platform-probe.json"
      ],
      "suggestedFix": "Provide meaningful alt text or alt=\"\" for decorative images and programmatic labels for search fields; verify names and roles with axe/Lighthouse.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent links and primary controls fail WCAG contrast.",
      "evidence": "Lighthouse reports 2.83:1 for orange-on-white links and white-on-orange buttons, and 2.29:1 for “Preferenze”, against a required 4.5:1.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Darken the orange or change text colors so normal text and controls meet at least 4.5:1 in every state.",
      "effort": "small"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some primary interactive elements are under target size or suppress focus indication.",
      "evidence": "Focus/target probe found visible controls under 44px; the Abbonamenti link computes outline: none when focused, while many other links retain the UA outline.",
      "artifacts": [
        "evidence/home-platform-probe.json"
      ],
      "suggestedFix": "Give controls at least a 44x44 CSS-pixel activation area and use :focus-visible with a high-contrast outline on every control.",
      "effort": "small"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "The mobile experience shrinks a desktop canvas rather than reflowing text and controls.",
      "evidence": "A 360px device receives a 1125 CSS-pixel layout at 0.32 scale. Consent copy and controls become extremely small despite technically allowing zoom.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Adopt device-width responsive reflow and test at 320 CSS pixels and 200% zoom without two-dimensional panning or tiny targets.",
      "effort": "large"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "The page logs a resource error on load.",
      "evidence": "Lighthouse records a 404 for https://dimages2.gazzettaobjects.it/favicon.ico.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Serve the referenced favicon or remove the broken request, then verify a clean console/network load.",
      "effort": "trivial"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image markup and delivery are structurally weak.",
      "evidence": "Of 100 images, 80 lack explicit width/height, 35 are oversized, 41 below-fold images are not lazy-loaded and 37 use legacy formats.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "suggestedFix": "Emit intrinsic width/height or aspect-ratio, responsive srcset/sizes, modern formats, and native lazy loading below the fold.",
      "effort": "large"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "A link is not crawlable and the viewport signal is not genuinely mobile-friendly.",
      "evidence": "Lighthouse flags a registration anchor with no href. The viewport is hard-coded to width=1120, producing a scaled desktop layout on mobile.",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Give navigation anchors real href values and switch to width=device-width, initial-scale=1 with responsive templates.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Core transport defenses and cookie flags are missing.",
      "evidence": "HTTPS is used, but headers primitive finds no CSP, HSTS or X-Content-Type-Options. Cookie audit finds 25 cookies flagged insecure and SameSite=None.",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "suggestedFix": "Deploy a restrictive CSP, HSTS and nosniff; mark every HTTPS cookie Secure and choose Lax/Strict unless cross-site use truly requires None.",
      "effort": "medium"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The initial load has an extensive tracking and third-party footprint.",
      "evidence": "Tracker probe finds 30 third-party origins and five known trackers, including DoubleClick, Google Tag Manager and Facebook. HAR attributes 158 requests and 5.75MB to non-main origins.",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Minimize vendors and events, keep optional tags behind granular consent, batch necessary analytics, and enforce vendor budgets.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Visible sign-in forms rely on password fields without modern authentication or correct autofill metadata.",
      "evidence": "DOM probe finds multiple text/password sign-in forms with empty autocomplete tokens and no WebAuthn/passkey marker in rendered source.",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/form-error-probe.json"
      ],
      "suggestedFix": "Add username/current-password autocomplete now and offer passkey/WebAuthn sign-in and reauthentication alongside existing methods.",
      "effort": "large"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced defensive policies are largely absent.",
      "evidence": "No CSP/frame-ancestors, X-Frame-Options, HSTS, Permissions-Policy or nosniff header is present; Referrer-Policy remains no-referrer-when-downgrade.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "suggestedFix": "Add frame-ancestors (or X-Frame-Options fallback), strict-origin-when-cross-origin Referrer-Policy, a least-privilege Permissions-Policy, HSTS, nosniff and CSP.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent choice is bundled with subscription pressure rather than offering an equivalent reject action.",
      "evidence": "The modal pairs “ACCETTA E CONTINUA” with “RIFIUTA E ABBONATI”; declining profiling is framed as a paid path, while settings is a lower-emphasis orange link.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/contrast-preference-probe.json"
      ],
      "suggestedFix": "Offer reject-all and accept-all with equal prominence, separate consent from subscription sales, and retain easy preference reversal.",
      "effort": "medium"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Search and sign-in fields omit autocomplete assistance.",
      "evidence": "Rendered form probe shows search, username/text and password fields with empty autocomplete tokens.",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/results-probe.json"
      ],
      "suggestedFix": "Add search, username, current-password and other purpose-specific autocomplete tokens so browser assistance works reliably.",
      "effort": "small"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "The subscription alternative is introduced as the only rejection path without showing price or commitment in the decision UI.",
      "evidence": "The blocking wall says users can choose a paid plan but the “RIFIUTA E ABBONATI” action displays no price, term or cancellation information before the click.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Provide a free reject path; for any subscription CTA, disclose price, billing cadence, commitment and cancellation before the user proceeds.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-purpose-and-primary-action",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "The first viewport prioritizes a long policy wall over the site’s news purpose and reading action.",
      "evidence": "Across home, article, section and results screenshots, users see the policy wall instead of headlines, scores or article content.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/article-mobile.png",
        "evidence/section-mobile.png",
        "evidence/results-mobile.png"
      ],
      "suggestedFix": "Keep the publication purpose and primary content visible; reduce consent copy and avoid blocking the content hierarchy.",
      "effort": "large"
    },
    {
      "id": "F27",
      "pathId": "article",
      "url": "https://www.gazzetta.it/Calcio/Serie-A/Inter/21-07-2026/nicolo-barella-l-intervista-gazzetta-tra-inter-e-nazionale-resto-a-vita-champions.shtml",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "The core reading flow is blocked until the visitor accepts profiling or enters a subscription path.",
      "evidence": "Direct navigation to a representative article still shows only the consent-or-subscribe wall over blurred editorial content.",
      "artifacts": [
        "evidence/article-mobile.png"
      ],
      "suggestedFix": "Allow the public article flow to continue after rejecting optional processing, reserving subscription gates for clearly identified paid content.",
      "effort": "large"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The content-first crawler view gives most of the first viewport to empty advertising space.",
      "evidence": "No-JS crawler screenshot shows header/navigation followed by roughly 250px of blank reserved space; no headline appears in the first viewport.",
      "artifacts": [
        "evidence/home-discoverability-crawler.png"
      ],
      "suggestedFix": "Reduce or collapse empty ad slots before content and ensure at least one meaningful headline enters the initial viewport.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "medium",
      "summary": "The component system shows no container-query adaptation and remains tied to the desktop canvas.",
      "evidence": "Feature probe found no @container/container-type markers, while all three tested templates retained the 1125px CSS viewport on a 360px device.",
      "artifacts": [
        "evidence/home-platform-probe.json",
        "evidence/section-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "suggestedFix": "Use container queries for reused cards/navigation modules and retain viewport queries only for page-level composition.",
      "effort": "large"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Images are frequently oversized, legacy-formatted and missing responsive delivery.",
      "evidence": "Images probe finds 35 oversized images, 37 legacy-format images, 23 without srcset, and only one modern-format image among 100.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Generate AVIF/WebP variants and responsive srcset/sizes, and right-size author avatars and cards to rendered dimensions.",
      "effort": "large"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The page performs substantial background advertising and tracking work before content access.",
      "evidence": "Initial load transfers 5.88MB in 163 requests, with 30 third-party origins and multiple tracking bundles even while the blocking consent wall is displayed.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "suggestedFix": "Defer optional vendors until consent and idle time, remove redundant calls, and establish request/byte/CPU budgets.",
      "effort": "large"
    },
    {
      "id": "F32",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party scripts and media are disproportionate to first-viewport user value.",
      "evidence": "Non-main origins account for 158 requests and 5.75MB. Scripts and images total 4.94MB while the visible state is only a consent wall.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Set strict third-party and media budgets, self-host essential assets, and lazy-load below-fold media only as it approaches the viewport.",
      "effort": "large"
    },
    {
      "id": "F33",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "javascript",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Retained heap grows sharply after entering the site and repeatedly traversing the long feed.",
      "evidence": "After GC, baseline heap was 769,639 nodes/51.1MB; after accepting the wall and ten alternating top/bottom scrolls it retained 1,417,924 nodes/83.8MB, with closures rising from 36,691 to 98,366. The consent state change is a confound, so leak attribution is medium confidence.",
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post.json"
      ],
      "suggestedFix": "Repeat baseline/target/final snapshots in one consented session, identify retaining paths, and dispose observers, listeners, timers and ad/feed objects when no longer needed.",
      "effort": "large"
    },
    {
      "id": "F34",
      "pathId": "home",
      "url": "https://www.gazzetta.it",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "javascript",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page has a very large live heap for a news homepage.",
      "evidence": "A settled baseline after GC contains 769,639 heap nodes and 51.1MB self size; the exercised state retains 83.8MB and 1.42 million nodes.",
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post.json"
      ],
      "suggestedFix": "Reduce simultaneously live cards, ad SDKs and duplicated libraries; virtualize deep feeds and enforce heap/node budgets in regression tests.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Replace the consent-or-subscribe wall with equal, non-blocking consent choices",
      "priority": 1,
      "findingIds": [
        "F01",
        "F23",
        "F25",
        "F26",
        "F27"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Ship a true device-width responsive layout and accessible mobile reflow",
      "priority": 2,
      "findingIds": [
        "F02",
        "F15",
        "F18",
        "F29"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Reduce critical-path, third-party, and background payload",
      "priority": 3,
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F11",
        "F20",
        "F31",
        "F32"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Add CSP, HSTS, secure cookie flags, and defensive browser policies",
      "priority": 4,
      "findingIds": [
        "F19",
        "F22"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Fix consent/UI contrast, labels, alt text, focus and target sizing",
      "priority": 5,
      "findingIds": [
        "F04",
        "F12",
        "F13",
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Modernize and right-size responsive image delivery",
      "priority": 6,
      "findingIds": [
        "F17",
        "F30"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Investigate and cap retained heap growth in the feed",
      "priority": 7,
      "findingIds": [
        "F33",
        "F34"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Honor color-scheme and improve route/scroll orientation",
      "priority": 8,
      "findingIds": [
        "F03",
        "F05",
        "F06",
        "F28"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Add autofill tokens and passkey-capable authentication",
      "priority": 9,
      "findingIds": [
        "F21",
        "F24"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Repair console and crawlability defects",
      "priority": 10,
      "findingIds": [
        "F16",
        "F18"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-21T01-09-36-438Z"
}
