{
  "url": "https://www.corriere.it",
  "auditedAt": "2026-07-23T02:41:13.336Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Complete atomic audit of 58/58 checks across four representative templates plus a 404 recovery state.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered multi-page publishing platform",
    "notes": "Large Italian news publisher. Fresh sessions receive a blocking consent/subscription wall. Audited public content without accepting tracking."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "images",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "discoverability",
    "lighthouse",
    "heap-summary",
    "Modern Web Guidance search/retrieve"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "performance",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "security",
    "privacy",
    "forms",
    "deliver-optimized-decorative-images",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast"
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/section-mobile.png",
      "caption": "section mobile"
    },
    {
      "type": "dom",
      "path": "evidence/section-dom.json",
      "caption": "section dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile"
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "article dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/newsletter-mobile.png",
      "caption": "newsletter mobile"
    },
    {
      "type": "dom",
      "path": "evidence/newsletter-dom.json",
      "caption": "newsletter dom"
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon"
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "platform probe"
    },
    {
      "type": "other",
      "path": "evidence/document-probe.json",
      "caption": "document probe"
    },
    {
      "type": "other",
      "path": "evidence/article-meta.json",
      "caption": "article meta"
    },
    {
      "type": "other",
      "path": "evidence/404.json",
      "caption": "404"
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers"
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies"
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability"
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered"
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse"
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post"
    }
  ],
  "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 browser evidence and guidance-based judgement",
      "evidence": "The dark-emulated screenshot is pixel-equivalent in appearance to the light capture, and computed styles report color-scheme: normal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The reduced-motion probe found no prefers-reduced-motion CSS rules and five running 2s animations plus running 1.5s animations.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Lighthouse color-contrast audit passed and high-contrast capture retained visible consent text and controls.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The platform probe found only the browser default view-transition name and no authored transition elements across an MPA with many route changes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Platform probe found no scroll-timeline rules, but recon found no authored parallax/scrollytelling motion requiring them and no scroll-jank finding was observed.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Primary navigation and reading use native links and scrolling; no custom pointer-driven gesture surface that fights platform behavior was observed.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "DOM/screenshots show persistent section/header navigation and the content hierarchy remains oriented across sampled homepage, section and article templates.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "No tooltip/popover requiring manual edge positioning was present in the audited primary paths; existing menus remained attached in sampled states.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Section labels, article headings, breadcrumbs/navigation and descriptive links provide clear location and reading progression across sampled templates.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Desktop and 360px screenshots show the entire first viewport obscured by a mandatory consent/subscription wall before any article can be read.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "DOM evidence shows zero <dialog> and popover elements while Lighthouse identifies a full-screen div with role=dialog and a broken accessible name.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Both desktop and mobile screenshots show no readable news content in the unobscured foreground on first load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "At a requested 360x800 viewport the layout primitive measured innerWidth 1230, visualViewport 1200, clientWidth 1214, and 30px overflow; screenshots show a tiny scaled consent panel.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/section-mobile.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The platform probe found zero CSSContainerRule entries; mobile DOM captures retain 780px main widths and the newsletter form is positioned at x=-352.",
      "pathIds": [
        "newsletter"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/newsletter-dom.json",
        "evidence/section-dom.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The focus probe reported outline-style none and no box-shadow for the first search input and multiple header buttons.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/document-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Homepage title, section headings and article headline make the news-reading purpose explicit; prominent headline links expose the next action.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Homepage links led directly to a section and a current article; article title/content metadata loaded without an account wall in DOM evidence.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "A deliberately invalid URL produced a clear “page not found” message, home link and current-story recovery links.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Lighthouse measured LCP 12.4s, TBT 560ms and performance 45; the raw-CDP trace measured LCP 3.21s and TBT 311ms, both indicating meaningful delay under their respective conditions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Layout observer measured CLS 0.052 and Lighthouse measured 0.015, both in the good range.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Trace found 8 long tasks and 311ms TBT; Lighthouse found 11.2s main-thread work, including 3.0s script evaluation and 2.5s style/layout.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "HAR captured 254 requests and 6.80MB transferred; Lighthouse reported 6.69MiB, 1.2s render-blocking savings and 2.0MiB cache-lifetime savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Lighthouse estimated 891KiB unused JS, 68KiB unused CSS, 53KiB legacy JS and duplicate module code; HAR records 96 script requests totaling 2.38MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Lighthouse accessibility scored 79 and identified unnamed menu/search buttons, unnamed links, an unnamed consent dialog and untitled iframes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Lighthouse color-contrast audit passed for the rendered state.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Landmark/heading probes found one main and logical H2 news sections; focus visibility is separately failed under input modality.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Article and homepage DOM use readable serif/sans text sizing and screenshots show clear typographic hierarchy despite the blocking modal.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Lighthouse found duplicate viewport declarations containing maximum-scale=1/user-scalable=no; independent mobile layout evidence shows a 1214px content viewport under 360px emulation.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Lighthouse captured missing $/jQuery errors, newsletter null.split failures, and an uncaught classList exception.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The image audit found 16 images without dimensions, 79 without srcset, 94 legacy-format images and 6 missing alt values; Lighthouse also flagged unsized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Lighthouse best-practices scored 73 and the inspector-issues audit failed with extensive cookie issues; legacy JavaScript was also detected.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Homepage and article probes found descriptive unique titles and meta descriptions.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Lighthouse SEO scored 100, crawlable anchors passed, robots allows indexing, and a viewport meta is present (zoom quality is separately failed under inclusion).",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Homepage/article expose correct canonicals, HTTP 200, robots index/follow, and discoverability raw fetch succeeded.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Article probe found article Open Graph title, description, URL, image, author and UTC publication metadata matching visible content.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Headers found no CSP, HSTS, nosniff, or clickjacking header; cookie audit found 42 cookies flagged insecure, many SameSite=None and several long-lived identifiers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Tracker evidence found 53 third-party origins and known DoubleClick, Rubicon and GTM trackers; HAR attributes 247/254 requests and 6.53MB to origins classified as third-party.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Rendered DOM/platform probes found no navigator.credentials/WebAuthn-facing affordance or passkey messaging around the account entry point.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "No HSTS, CSP/frame-ancestors, X-Frame-Options or X-Content-Type-Options was present; Referrer-Policy remains no-referrer-when-downgrade.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Discoverability comparison found 89% rendered-word coverage in raw HTML, no JS shell, and raw title/H1/description present.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Homepage, section, article and newsletter DOMs rendered full content structures; sampled primary links and header surfaces did not blank or lose state.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from site recon and principle criteria",
      "evidence": "Corriere is a public content MPA rather than an installed app; offline installability is contextual and not required for the audited reading journey.",
      "reason": "Corriere is a public content MPA rather than an installed app; offline installability is contextual and not required for the audited reading journey.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "The 404 probe returned an explicit recovery state with a home link and useful current stories instead of a blank shell.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Document declares lang=\"it-IT\" and Italian content reads in the expected LTR direction across sampled templates.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Rendered article dates use Italian month/day formatting and metadata preserves ISO publication times.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The article probe found many <time> elements with Italian display text but empty dateTime values, while social metadata uses UTC timestamps.",
      "pathIds": [
        "article"
      ],
      "artifacts": [
        "evidence/article-meta.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The modal gives a dominant filled “ACCETTA E CONTINUA” action while the alternative is “Rifiuta e abbonati”; the free rejection path is not presented as an equal first-level choice.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "No required data-entry transaction was exposed before user action in sampled public reading paths; the search/newsletter controls did not show premature blame-style validation.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The DOM probe found visible text inputs with empty autocomplete values and no associated label or aria-label.",
      "pathIds": [
        "newsletter"
      ],
      "artifacts": [
        "evidence/document-probe.json",
        "evidence/newsletter-dom.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The only first-level refusal wording is “Rifiuta e abbonati”, while acceptance is free and visually dominant.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Images account for 3.77MB; 94/100 use legacy formats, 79 lack srcset, and Lighthouse estimates 1.79MiB image-delivery savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "HAR records 247 third-party requests while Lighthouse reports 891KiB unused JS and 11.2s main-thread work, much of it from tracking/ad vendors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "The page transfers 6.80MB over 254 requests, including 2.38MB scripts and 3.77MB images, with 53 third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from site recon and principle criteria",
      "evidence": "No declared agent-facing transaction or tool surface was found; this emerging capability is optional for this news site.",
      "reason": "No declared agent-facing transaction or tool surface was found; this emerging capability is optional for this news site.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from site recon and principle criteria",
      "evidence": "No user task in the audited scope requires on-device inference; absence is an opportunity, not a failure.",
      "reason": "No user task in the audited scope requires on-device inference; absence is an opportunity, not a failure.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "After 10 menu open/close cycles, heap self size rose only 0.61MB (1.0%); Object, Array, Promise and closure populations were flat or lower.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Direct browser evidence and guidance-based judgement",
      "evidence": "Baseline heap summary contained 826,807 nodes, 3.17M edges and 58.99MB self size for a document-centric page.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "DOM/evaluate, visual, Lighthouse, network, or interaction evidence mapped to this check",
      "evidence": "Before/after summaries show closures 39,583→39,569, Promise 513→486, Object 33,001→32,843 and no Detached constructor among top populations.",
      "pathIds": [
        "home",
        "section",
        "article",
        "newsletter"
      ]
    }
  ],
  "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": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F27",
        "F28"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F19",
        "F29",
        "F20"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F21",
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged contextually out of scope for the audited public news-reading journeys."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage, primary discovery surface, consent state, performance/security/global template.",
      "url": "https://www.corriere.it/",
      "conditions": [
        "desktop",
        "360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "fresh session"
      ],
      "result": "issues"
    },
    {
      "id": "section",
      "description": "Economia section listing, representative section/index template.",
      "url": "https://www.corriere.it/economia/",
      "conditions": [
        "360x800",
        "fresh session"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Current Cronache story, representative article/detail reading template and metadata.",
      "url": "https://www.corriere.it/cronache/26_luglio_22/bologna-bodycam-video-fakir-714d3aa9-34f6-4c70-9884-f605a5fbaxlk.shtml",
      "conditions": [
        "360x800",
        "fresh session"
      ],
      "result": "issues"
    },
    {
      "id": "newsletter",
      "description": "Newsletter route, representative form/account-adjacent conversion surface.",
      "url": "https://www.corriere.it/newsletter/",
      "conditions": [
        "360x800",
        "keyboard focus probe"
      ],
      "result": "issues"
    },
    {
      "id": "error-404",
      "description": "Invalid route used to evaluate network/HTTP recovery behavior.",
      "url": "https://www.corriere.it/not-a-real-audit-page-404",
      "conditions": [
        "404 recovery"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "A full-viewport consent wall blocks all news on every fresh visit.",
      "evidence": "Desktop and 360px screenshots show the entire first viewport obscured by a mandatory consent/subscription wall before any article can be read.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Replace the blocking wall with a compact, non-modal consent notice; keep reject and manage choices available without obscuring editorial content.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent choices are visually asymmetric and rejection is coupled to subscription.",
      "evidence": "The modal gives a dominant filled “ACCETTA E CONTINUA” action while the alternative is “Rifiuta e abbonati”; the free rejection path is not presented as an equal first-level choice.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Offer Accept, Reject, and Preferences at the same hierarchy and explain any paid ad-free product separately from privacy consent.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site does not adapt to the user’s dark color preference.",
      "evidence": "The dark-emulated screenshot is pixel-equivalent in appearance to the light capture, and computed styles report color-scheme: normal.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and define preference-driven surface, text, border, and control colors.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Non-essential animations continue under reduced-motion.",
      "evidence": "The reduced-motion probe found no prefers-reduced-motion CSS rules and five running 2s animations plus running 1.5s animations.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Add a prefers-reduced-motion: reduce layer that disables non-essential looping and transition animation while preserving state cues.",
      "effort": "small"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "Navigation changes do not use authored View Transitions.",
      "evidence": "The platform probe found only the browser default view-transition name and no authored transition elements across an MPA with many route changes.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Use cross-document View Transitions for same-origin section and article navigation, with reduced-motion fallback.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "severity": "high",
      "confidence": "high",
      "summary": "The mobile page is a scaled desktop-width layout rather than a true 360px reflow.",
      "evidence": "At a requested 360x800 viewport the layout primitive measured innerWidth 1230, visualViewport 1200, clientWidth 1214, and 30px overflow; screenshots show a tiny scaled consent panel.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/section-mobile.png"
      ],
      "suggestedFix": "Use width=device-width and fluid intrinsic layouts; remove fixed 780/1214px page widths and verify true 320–412px reflow.",
      "effort": "large"
    },
    {
      "id": "F07",
      "pathId": "newsletter",
      "url": "https://www.corriere.it/newsletter/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "severity": "medium",
      "confidence": "high",
      "summary": "Components rely on global fixed widths and expose no container-query adaptation.",
      "evidence": "The platform probe found zero CSSContainerRule entries; mobile DOM captures retain 780px main widths and the newsletter form is positioned at x=-352.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/newsletter-dom.json",
        "evidence/section-dom.json"
      ],
      "suggestedFix": "Introduce container-type on reusable card/form regions and size-aware @container rules; remove negative off-screen positioning.",
      "effort": "large"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Keyboard focus is absent on prominent controls.",
      "evidence": "The focus probe reported outline-style none and no box-shadow for the first search input and multiple header buttons.",
      "artifacts": [
        "evidence/document-probe.json"
      ],
      "suggestedFix": "Add a high-contrast :focus-visible indicator to every interactive control and test the complete header/menu tab order.",
      "effort": "small"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Cold-load performance misses the Core Web Vitals loading bar.",
      "evidence": "Lighthouse measured LCP 12.4s, TBT 560ms and performance 45; the raw-CDP trace measured LCP 3.21s and TBT 311ms, both indicating meaningful delay under their respective conditions.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "suggestedFix": "Prioritise the actual LCP asset, reduce early script execution, and defer advertising/analytics until after critical editorial content.",
      "effort": "large"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Heavy script and layout work blocks the main thread.",
      "evidence": "Trace found 8 long tasks and 311ms TBT; Lighthouse found 11.2s main-thread work, including 3.0s script evaluation and 2.5s style/layout.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Profile the orchestrator and ad/analytics startup, split long tasks, and schedule non-critical work after interaction-ready content.",
      "effort": "large"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "The homepage ships a very large and dependency-heavy cold load.",
      "evidence": "HAR captured 254 requests and 6.80MB transferred; Lighthouse reported 6.69MiB, 1.2s render-blocking savings and 2.0MiB cache-lifetime savings.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Set a route budget, shorten critical chains, improve immutable caching, and defer non-critical third-party and below-fold resources.",
      "effort": "large"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Large amounts of unused and legacy JavaScript/CSS ship on initial load.",
      "evidence": "Lighthouse estimated 891KiB unused JS, 68KiB unused CSS, 53KiB legacy JS and duplicate module code; HAR records 96 script requests totaling 2.38MB.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Remove unused vendor features, conditionally load ad/analytics/newsletter chunks, modernise bundles, and deduplicate shared modules.",
      "effort": "large"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Important controls, links, dialogs, and frames lack accessible names.",
      "evidence": "Lighthouse accessibility scored 79 and identified unnamed menu/search buttons, unnamed links, an unnamed consent dialog and untitled iframes.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Give every icon control and linked image a discernible name, repair the dialog label reference, and title meaningful iframes.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Viewport declarations can prevent user zoom and the layout does not reflow cleanly.",
      "evidence": "Lighthouse found duplicate viewport declarations containing maximum-scale=1/user-scalable=no; independent mobile layout evidence shows a 1214px content viewport under 360px emulation.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Keep one width=device-width, initial-scale=1 viewport declaration without zoom restrictions and implement true narrow-screen reflow.",
      "effort": "medium"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage logs uncaught and application errors.",
      "evidence": "Lighthouse captured missing $/jQuery errors, newsletter null.split failures, and an uncaught classList exception.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix dependency ordering and null guards, then make console-error-free loading a release gate.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image markup and delivery are structurally inefficient.",
      "evidence": "The image audit found 16 images without dimensions, 79 without srcset, 94 legacy-format images and 6 missing alt values; Lighthouse also flagged unsized images.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Emit width/height, meaningful alt or empty decorative alt, responsive srcset/sizes, and modern AVIF/WebP sources.",
      "effort": "large"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Chrome reports browser-platform and cookie inspector issues.",
      "evidence": "Lighthouse best-practices scored 73 and the inspector-issues audit failed with extensive cookie issues; legacy JavaScript was also detected.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Resolve DevTools Issues, modernise legacy bundles, and enforce browser-hygiene checks in CI.",
      "effort": "large"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "critical",
      "confidence": "high",
      "summary": "Core browser security headers are absent and cookies are broadly insecure.",
      "evidence": "Headers found no CSP, HSTS, nosniff, or clickjacking header; cookie audit found 42 cookies flagged insecure, many SameSite=None and several long-lived identifiers.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Deploy a nonce/hash CSP, HSTS, nosniff, frame-ancestors, and secure cookie defaults; audit each cookie for Secure, HttpOnly, SameSite and lifetime.",
      "effort": "large"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The initial page has an exceptionally broad third-party and tracking footprint.",
      "evidence": "Tracker evidence found 53 third-party origins and known DoubleClick, Rubicon and GTM trackers; HAR attributes 247/254 requests and 6.53MB to origins classified as third-party.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Inventory vendors, remove low-value trackers, gate optional vendors behind consent, batch analytics, and proxy truly first-party static origins where appropriate.",
      "effort": "large"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Defensive browser policies are incomplete.",
      "evidence": "No HSTS, CSP/frame-ancestors, X-Frame-Options or X-Content-Type-Options was present; Referrer-Policy remains no-referrer-when-downgrade.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Adopt strict-origin-when-cross-origin, a restrictive Permissions-Policy, CSP frame-ancestors/Trusted Types where feasible, HSTS and nosniff.",
      "effort": "medium"
    },
    {
      "id": "F21",
      "pathId": "newsletter",
      "url": "https://www.corriere.it/newsletter/",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Search and text inputs do not expose labels or autocomplete intent.",
      "evidence": "The DOM probe found visible text inputs with empty autocomplete values and no associated label or aria-label.",
      "artifacts": [
        "evidence/document-probe.json",
        "evidence/newsletter-dom.json"
      ],
      "suggestedFix": "Add programmatic labels, stable name/type/inputmode values, and correct autocomplete tokens for each user-data field.",
      "effort": "small"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image assets consume avoidable bandwidth.",
      "evidence": "Images account for 3.77MB; 94/100 use legacy formats, 79 lack srcset, and Lighthouse estimates 1.79MiB image-delivery savings.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Generate AVIF/WebP variants, responsive srcsets and correctly compressed editorial/decorative crops at the rendered size.",
      "effort": "large"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Startup performs substantial non-critical advertising and analytics work.",
      "evidence": "HAR records 247 third-party requests while Lighthouse reports 891KiB unused JS and 11.2s main-thread work, much of it from tracking/ad vendors.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Do not start optional vendors before consent or content readiness; lazy-load, batch, and cancel background work when hidden.",
      "effort": "large"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "guidanceCategory": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party code and media exceed a proportionate news-homepage budget.",
      "evidence": "The page transfers 6.80MB over 254 requests, including 2.38MB scripts and 3.77MB images, with 53 third-party origins.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Set per-template byte/request/third-party budgets and reject additions that exceed them without measured reader value.",
      "effort": "large"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage has a disproportionately large in-memory object graph.",
      "evidence": "Baseline heap summary contained 826,807 nodes, 3.17M edges and 58.99MB self size for a document-centric page.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ],
      "suggestedFix": "Profile dominant native/code allocations, unload below-fold widgets and vendor state, and set a steady-state heap/DOM budget.",
      "effort": "large"
    },
    {
      "id": "F26",
      "pathId": "article",
      "url": "https://www.corriere.it/cronache/26_luglio_22/bologna-bodycam-video-fakir-714d3aa9-34f6-4c70-9884-f605a5fbaxlk.shtml",
      "principleId": "be-internationalised",
      "principleCheckId": "time-zone-correctness",
      "guidanceId": "coordinate-global-events",
      "guidanceCategory": "internationalisation",
      "severity": "medium",
      "confidence": "high",
      "summary": "Rendered article times omit machine-readable, unambiguous datetime values.",
      "evidence": "The article probe found many <time> elements with Italian display text but empty dateTime values, while social metadata uses UTC timestamps.",
      "artifacts": [
        "evidence/article-meta.json"
      ],
      "suggestedFix": "Populate each time datetime with an ISO 8601 offset/UTC timestamp and render locale/time-zone presentation from that value.",
      "effort": "small"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://www.corriere.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 experience is an ad-hoc div dialog rather than a native dialog primitive.",
      "evidence": "DOM evidence shows zero <dialog> and popover elements while Lighthouse identifies a full-screen div with role=dialog and a broken accessible name.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Use a native <dialog> only when modality is truly necessary, wire its accessible name, and provide platform dismissal behavior.",
      "effort": "medium"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent chrome occupies 100% of the initial viewport and displaces editorial content.",
      "evidence": "Both desktop and mobile screenshots show no readable news content in the unobscured foreground on first load.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Keep the first viewport content-led and move consent controls to a compact, non-obscuring surface.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "security",
      "severity": "medium",
      "confidence": "high",
      "summary": "The visible account entry point provides no evidence of phishing-resistant authentication support.",
      "evidence": "Rendered DOM/platform probes found no navigator.credentials/WebAuthn-facing affordance or passkey messaging around the account entry point.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Offer passkey registration and authentication alongside recovery-safe fallbacks, and request credentials only after user action.",
      "effort": "large"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://www.corriere.it/",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "medium",
      "confidence": "high",
      "summary": "The consent/subscription flow conflates privacy rejection with a commercial commitment.",
      "evidence": "The only first-level refusal wording is “Rifiuta e abbonati”, while acceptance is free and visually dominant.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Separate privacy choices from subscription marketing, show commitments and pricing before action, and provide an equal free reject choice.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Decouple privacy consent from subscription and remove the blocking wall",
      "priority": 1,
      "findingIds": [
        "F01",
        "F02",
        "F27",
        "F28",
        "F30"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Restore real mobile reflow, zoom, container adaptation and focus",
      "priority": 2,
      "findingIds": [
        "F06",
        "F07",
        "F08",
        "F14"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Reduce critical-path JavaScript, third parties and payload weight",
      "priority": 3,
      "findingIds": [
        "F09",
        "F10",
        "F11",
        "F12",
        "F19",
        "F23",
        "F24"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Deploy security headers and secure cookie defaults",
      "priority": 4,
      "findingIds": [
        "F18",
        "F20"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Fix accessible names, labels and input assistance",
      "priority": 5,
      "findingIds": [
        "F13",
        "F21"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Modernise responsive image delivery",
      "priority": 6,
      "findingIds": [
        "F16",
        "F22"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Add dark and reduced-motion preference support",
      "priority": 7,
      "findingIds": [
        "F03",
        "F04"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Eliminate console/platform errors and reduce heap footprint",
      "priority": 8,
      "findingIds": [
        "F15",
        "F17",
        "F25"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Add unambiguous datetime values",
      "priority": 9,
      "findingIds": [
        "F26"
      ],
      "guidanceId": "coordinate-global-events",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add progressive navigation transitions",
      "priority": 10,
      "findingIds": [
        "F05"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Add passkey-capable account authentication",
      "priority": 11,
      "findingIds": [
        "F29"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T02-41-13-336Z"
}
