{
  "url": "https://www.diretta.it",
  "auditedAt": "2026-07-19T21:32:56.263Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete: all 58 catalog checks judged across six representative paths.",
  "page": {
    "appType": "hybrid",
    "framework": "custom Livesport/Flashscore client application",
    "notes": "Server HTML plus extensive deferred JavaScript; public sports results, match details, competitions, and news."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "discoverability",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "robots-and-sitemap-fetch",
    "modern-web-guidance"
  ],
  "guidanceConsulted": [
    "accessibility",
    "dark-mode",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "defer-rendering-heavy-content",
    "performance",
    "optimize-image-priority",
    "break-up-long-tasks",
    "optimize-script-priority",
    "identify-heavy-scripts",
    "html",
    "security",
    "privacy",
    "stabilize-reactive-state",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "article dom",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/article-mobile-layout.json",
      "caption": "article mobile layout",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile"
    },
    {
      "type": "dom",
      "path": "evidence/competition-dom.json",
      "caption": "competition dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/competition.png",
      "caption": "competition"
    },
    {
      "type": "dom",
      "path": "evidence/consent-dom.json",
      "caption": "consent dom",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies"
    },
    {
      "type": "other",
      "path": "evidence/focus-probe.json",
      "caption": "focus probe"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F17",
        "F19"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline",
      "findingIds": [
        "F25",
        "F26"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post",
      "findingIds": [
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F02",
        "F18",
        "F21"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images",
      "findingIds": [
        "F06",
        "F11",
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "home light"
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F02",
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-preferences.json",
      "caption": "home preferences",
      "findingIds": [
        "F01",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon"
    },
    {
      "type": "other",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F08",
        "F09",
        "F18",
        "F23",
        "F24"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-failures.json",
      "caption": "lighthouse failures",
      "findingIds": [
        "F10",
        "F13"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F05",
        "F06",
        "F07",
        "F10",
        "F11",
        "F13",
        "F24"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary",
      "findingIds": [
        "F05",
        "F12",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/manifest-runtime.json",
      "caption": "manifest runtime"
    },
    {
      "type": "screenshot",
      "path": "evidence/match-discoverability-crawler.png",
      "caption": "match discoverability crawler",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/match-discoverability-rendered.png",
      "caption": "match discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/match-discoverability.json",
      "caption": "match discoverability",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/match-dom.json",
      "caption": "match dom",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/match-mobile-layout.json",
      "caption": "match mobile layout",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/match-mobile.png",
      "caption": "match mobile",
      "findingIds": [
        "F02",
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found-mobile.png",
      "caption": "not found mobile"
    },
    {
      "type": "other",
      "path": "evidence/not-found-probe.json",
      "caption": "not found probe"
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "platform probe",
      "findingIds": [
        "F03",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "dom",
      "path": "evidence/tennis-dom.json",
      "caption": "tennis dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/tennis.png",
      "caption": "tennis"
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F09",
        "F18",
        "F23"
      ]
    }
  ],
  "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": "pass",
      "confidence": "high",
      "method": "paired screenshots under prefers-color-scheme light/dark",
      "evidence": "Light and dark emulation produce visibly different, usable surface palettes.",
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dark.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "getAnimations() under prefers-reduced-motion: reduce",
      "evidence": "Running shimmer and pulse animations remain under reduce.",
      "artifacts": [
        "evidence/home-preferences.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "forced-colors and prefers-contrast screenshot",
      "evidence": "Forced-colors/high-contrast screenshot keeps text, icons, borders, and controls visible.",
      "artifacts": [
        "evidence/home-high-contrast.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "pass",
      "confidence": "medium",
      "method": "live CSS feature inspection",
      "evidence": "Live CSS contains view-transition rules and the reduced-motion rule disables transition navigation.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "medium",
      "method": "live CSS feature inspection",
      "evidence": "Live CSS feature probe found scroll/animation timeline rules.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "medium",
      "method": "live CSS feature inspection",
      "evidence": "Live CSS feature probe found scroll-snap and platform-oriented interaction styling.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "CSS inspection plus representative screenshots",
      "evidence": "Live CSS includes scroll-timeline support and screenshots show stable persistent navigation chrome.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/tennis.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "home",
        "tennis",
        "article"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "medium",
      "method": "CSS inspection plus representative screenshots",
      "evidence": "Live CSS includes anchor positioning declarations for attached UI.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/tennis.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "home",
        "tennis",
        "article"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "CSS inspection plus representative screenshots",
      "evidence": "Active sport/result/news tabs are clearly highlighted across home, tennis, competition, and article screenshots.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/tennis.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "home",
        "tennis",
        "article"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "first-load screenshots",
      "evidence": "Consent wall obscures core content on fresh results-page loads.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/match-mobile.png"
      ],
      "pathIds": [
        "home",
        "match"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "semantic DOM probe",
      "evidence": "0 native dialogs/popovers and 2 custom role=dialog overlays.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "mobile visual review",
      "evidence": "Mobile match view is dominated by ad cards, navigation, and consent before match content.",
      "artifacts": [
        "evidence/match-mobile.png"
      ],
      "pathIds": [
        "match"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "mobile layout observers",
      "evidence": "Home, match, and article at 360px report scrollWidth=clientWidth=360 and no overflow; viewport meta exists.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/match-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "CSS feature probe and paired viewport screenshots",
      "evidence": "Live CSS contains @container rules and components reflow from desktop to mobile without overflow.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse plus keyboard focus probe",
      "evidence": "Lighthouse target-size audit passed and focused sampled controls had visible outlines.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/focus-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "visual and heading review",
      "evidence": "Page titles, H1s, active sport tabs, score rows, match identity, and article headline communicate purpose.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/match-mobile.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "representative multi-route walkthrough",
      "evidence": "Real href navigation reaches sport listing, competition, match detail, and news article templates with successful content.",
      "artifacts": [
        "evidence/tennis.png",
        "evidence/competition.png",
        "evidence/match-mobile.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "tennis",
        "competition",
        "match",
        "article"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "medium",
      "method": "state review plus invalid-route probe",
      "evidence": "Live/scheduled match states are visible and the invalid route returns a readable error with a Diretta.it recovery link.",
      "artifacts": [
        "evidence/not-found-probe.json",
        "evidence/not-found-mobile.png",
        "evidence/match-mobile.png"
      ],
      "pathIds": [
        "match",
        "error"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/layout/HAR evidence",
      "evidence": "Lighthouse LCP 14.5s, CLS 0.32 and TBT 900ms.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/layout/HAR evidence",
      "evidence": "Lighthouse CLS 0.32 and 100 images lack dimensions.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/layout/HAR evidence",
      "evidence": "TBT 900ms and observed long tasks exceed 50ms.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/layout/HAR evidence",
      "evidence": "109 requests, 37 stylesheets and many parser-inserted high-priority styles.",
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/layout/HAR evidence",
      "evidence": "42 scripts and 1.29MB third-party transfer, including multiple analytics stacks and legacy bundle.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility and image audit",
      "evidence": "Lighthouse found prohibited ARIA, untitled frames, and label/name mismatch; images probe found one missing alt.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse contrast audit plus high-contrast screenshot",
      "evidence": "Lighthouse colour-contrast audit passed and high-contrast rendering remains legible.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-high-contrast.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse structure audit and keyboard focus probe",
      "evidence": "Lighthouse found a heading-order failure, despite visible focus outlines on sampled controls.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/focus-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "visual review across templates",
      "evidence": "Home, match, and article text remains readable and unclipped at desktop and 360px.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/match-mobile.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "pass",
      "confidence": "high",
      "method": "viewport/layout/Lighthouse/media DOM probe",
      "evidence": "Viewport allows scaling, mobile templates reflow without overflow, Lighthouse target-size passed, and sampled paths contain no video/audio requiring captions.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-home.json",
        "evidence/platform-probe.json"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse console audit",
      "evidence": "Lighthouse captured a getIdent TypeError during load.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/platform and Lighthouse/image audits",
      "evidence": "Doctype/UTF-8 pass, but one image has wrong aspect ratio and all sampled images lack intrinsic dimensions.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-images.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices audits",
      "evidence": "Lighthouse found a BFCache blocker and two missing source maps.",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "DOM and raw discoverability comparison",
      "evidence": "Home has strong metadata, but the representative article has no raw meta description.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/article-discoverability.json"
      ],
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse SEO and robots inspection",
      "evidence": "Viewport and robots pass, but Lighthouse found three anchors without href.",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-recon.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "DOM metadata plus robots/sitemap fetch",
      "evidence": "Public pages return 200, home canonical and index/follow are present, robots is valid, and sitemap indexes core/news/match pages.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/lighthouse-home.json"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "metadata/JSON-LD DOM probe",
      "evidence": "Open Graph exists on home, but zero JSON-LD blocks were found for article and match entities.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-recon.json"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "headers, cookies, secrets and HAR review",
      "evidence": "HTTPS is used and no cookies were set in the clean profile, but CSP, HSTS and nosniff are absent.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/secrets.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "tracker enumeration and HAR summary",
      "evidence": "11 third-party origins, 4 known trackers, 67 third-party requests and 1.29MB third-party transfer.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "medium",
      "method": "first-load visual/DOM observation and route recon",
      "evidence": "No permission prompt appeared on load; authentication is optional and outside the representative score/news journey.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-recon.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "security header inspection",
      "evidence": "HSTS, frame protection, Referrer-Policy, Permissions-Policy and CSP are absent.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "raw-vs-rendered discoverability captures",
      "evidence": "Raw HTML is not empty but contains only 36% of home and 54% of match rendered tokens; match H1 is absent raw.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/match-discoverability.json"
      ],
      "pathIds": [
        "home",
        "match"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "multi-template screenshots, CSS and layout probes",
      "evidence": "Representative listing, match and article templates render at desktop/mobile; CSS includes anchor positioning/container rules and no horizontal clipping was observed.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/match-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "high",
      "method": "manifest and service-worker runtime probe",
      "evidence": "Manifest has name, icons, standalone display and start_url; an active service-worker registration was observed.",
      "artifacts": [
        "evidence/manifest-runtime.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "medium",
      "method": "invalid-route screenshot and DOM probe",
      "evidence": "Invalid route shows a readable retry-later error and a home link rather than a blank shell.",
      "artifacts": [
        "evidence/not-found-mobile.png",
        "evidence/not-found-probe.json"
      ],
      "pathIds": [
        "error"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and CSS feature probe",
      "evidence": "html lang is it, UI is consistently Italian, and live CSS contains logical properties.",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/platform-probe.json"
      ],
      "pathIds": [
        "home",
        "match",
        "article"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "representative rendered DOM/screenshots",
      "evidence": "Dates, sport labels, and localized metadata use Italian formatting consistently across match and article templates.",
      "artifacts": [
        "evidence/match-mobile.png",
        "evidence/article-mobile.png"
      ],
      "pathIds": [
        "match",
        "article"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "low",
      "method": "match detail visual review",
      "evidence": "Match detail presents an unambiguous full local date and time for the Italian locale rather than a partial timestamp.",
      "artifacts": [
        "evidence/match-mobile.png"
      ],
      "pathIds": [
        "match"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "consent screenshots and copy review",
      "evidence": "Full consent wall and 1001-partner scope precede core content, although reject remains equally prominent.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM form census across sampled public paths",
      "evidence": "No user-input form is present in the representative public score, match, competition, or article paths.",
      "reason": "No representative form exists on the audited public paths; invalid-route recovery is judged under core task/resilience."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM form/input census",
      "evidence": "No input fields are present in the representative public paths.",
      "reason": "Autocomplete and autofill do not apply because the sampled public task has no form fields."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "consent-flow visual and copy review",
      "evidence": "Consent is a relevant commercial/privacy flow and blocks the task with exceptionally broad vendor scope.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "images primitive",
      "evidence": "100 legacy-format images, 100 missing dimensions, four missing srcset, zero modern formats.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, Lighthouse, preference probe",
      "evidence": "109 requests/42 scripts, 900ms TBT, and many persistent reduced-motion animations indicate avoidable work.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json",
        "evidence/home-preferences.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR and tracker evidence",
      "evidence": "67 third-party requests transfer 1.29MB before user interaction.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/source capability probe",
      "evidence": "No declared or visible agent-facing workflow was found.",
      "reason": "This public sports-results site exposes human-facing content but no stated agentic workflow; the emerging WebMCP/on-device AI opportunity is not an audit obligation."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/source capability probe",
      "evidence": "No declared or visible agent-facing workflow was found.",
      "reason": "This public sports-results site exposes human-facing content but no stated agentic workflow; the emerging WebMCP/on-device AI opportunity is not an audit obligation."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "low",
      "method": "baseline/post heap-summary comparison",
      "evidence": "Post-interaction snapshot is +30.0MB and +455,288 nodes versus baseline; separate sessions make this a low-confidence leak signal.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "baseline V8 heap summary",
      "evidence": "Baseline is 62.5MB self size with 937,483 nodes and 4.31M edges.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "constructor-level baseline/post heap comparison",
      "evidence": "No Detached* constructor appears among top constructors and EventItemImpl remains exactly 284 before/after; no direct accumulation signal was found.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ],
      "pathIds": [
        "home"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F03",
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06",
        "F07",
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks are contextual and no agent-facing use case or declared intent was found."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/live-score listing and consent entry state; represents the primary results task.",
      "url": "https://www.diretta.it/",
      "conditions": [
        "desktop",
        "360x800",
        "light",
        "dark",
        "reduced-motion",
        "forced-colors"
      ],
      "result": "issues"
    },
    {
      "id": "tennis",
      "description": "Alternate sport listing template; represents sport/category listings.",
      "url": "https://www.diretta.it/tennis/",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "competition",
      "description": "World Cup competition template; represents league/tournament navigation.",
      "url": "https://www.diretta.it/calcio/mondo/coppa-del-mondo/",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "match",
      "description": "Match detail template; represents the primary detail journey and mobile advertising state.",
      "url": "https://www.diretta.it/partita/calcio/guayaquil-city-pn42PQGI/manta-YwE6vHLt/",
      "conditions": [
        "360x800",
        "crawler/no-JS comparison"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "News article template; represents editorial content and share/discovery metadata.",
      "url": "https://www.diretta.it/news/calcio-triplette-haaland-e-foden-al-city-derby-manchester/x8flwbMj/",
      "conditions": [
        "360x800",
        "crawler/no-JS comparison"
      ],
      "result": "issues"
    },
    {
      "id": "error",
      "description": "Unknown route; represents HTTP/runtime failure recovery.",
      "url": "https://www.diretta.it/this-route-does-not-exist-web-uplift",
      "conditions": [
        "360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Reduced-motion preference does not stop persistent shimmer and pulse animations",
      "evidence": "The prefers-reduced-motion evaluate probe found dozens of running 1.5 s placeholderShimmer animations and a running 1.2 s menuLiveIndicatorPulse while reduce was active.",
      "artifacts": [
        "evidence/home-preferences.json"
      ],
      "suggestedFix": "Under @media (prefers-reduced-motion: reduce), remove non-essential shimmer/pulse animation or replace it with a static state.",
      "effort": "small"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent interstitial dominates the first view on result and match pages",
      "evidence": "Desktop and mobile load screenshots show the OneTrust consent interface covering the primary results area; at 360x800 it consumes most of the viewport before scores can be read.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/match-mobile.png"
      ],
      "suggestedFix": "Use a compact, non-obscuring consent surface with equally clear accept/reject actions; defer detailed vendor disclosure to the preferences dialog.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent overlays use custom role=dialog containers rather than native dialog",
      "evidence": "The platform probe counted 0 dialog elements, 0 popovers, and 2 role=dialog containers for consent UI.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/consent-dom.json"
      ],
      "suggestedFix": "Use native <dialog> for modal consent preferences, with native focus management and close behavior.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "match",
      "url": "https://www.diretta.it/partita/calcio/guayaquil-city-pn42PQGI/manta-YwE6vHLt/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "defer-rendering-heavy-content",
      "severity": "high",
      "confidence": "high",
      "summary": "Advertising and chrome crowd the core match task on mobile",
      "evidence": "The match mobile screenshot gives the top 227 px to three gambling advertisements and site chrome before match context, followed immediately by the consent wall.",
      "artifacts": [
        "evidence/match-mobile.png"
      ],
      "suggestedFix": "Reserve the first mobile viewport for match identity/status and defer or collapse advertising below the primary task.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "severity": "critical",
      "confidence": "high",
      "summary": "Mobile load performance is far outside good Core Web Vitals",
      "evidence": "Lighthouse measured LCP 14.5 s, CLS 0.32, TBT 900 ms, and a performance score of 0.20.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile the LCP dependency chain, prioritise the LCP resource, reduce startup JavaScript, and reserve late content space; re-test on mobile.",
      "effort": "large"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "optimize-image-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "Late content and unsized images create layout-instability risk",
      "evidence": "Lighthouse measured CLS 0.32; the images probe found all 100 img elements lacked width and height attributes.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-images.json"
      ],
      "suggestedFix": "Set intrinsic width/height or aspect-ratio for every image and reserve stable slots for consent, ads, score rows, and fonts.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "severity": "high",
      "confidence": "high",
      "summary": "Startup JavaScript blocks the main thread",
      "evidence": "Lighthouse measured 900 ms TBT; the mobile layout observers also captured 73-91 ms long tasks across home, match, and article templates.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-mobile-layout.json",
        "evidence/match-mobile-layout.json",
        "evidence/article-mobile-layout.json"
      ],
      "suggestedFix": "Break long tasks, defer non-critical modules, and schedule score/analytics work by priority after the primary content is interactive.",
      "effort": "large"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "The critical delivery path is fragmented across many assets",
      "evidence": "HAR recorded 109 requests, 42 scripts, 37 stylesheets, 2.13 MB transferred, and many parser-inserted VeryHigh-priority stylesheets.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Consolidate critical CSS, defer template-specific styles/scripts, and shorten the LCP dependency chain while preserving cacheability.",
      "effort": "large"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party and legacy script weight dominates the load",
      "evidence": "HAR recorded 1.29 MB third-party transfer (67 requests), including 533 KB from Google Tag Manager and 174 KB from Facebook; first-party also ships both core and core_legacy bundles.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Gate analytics behind consent, remove redundant destinations and legacy bundles for capable browsers, and load optional integrations on demand.",
      "effort": "large"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "The accessibility tree has semantic defects",
      "evidence": "Lighthouse found prohibited ARIA attributes (3), untitled frames (3), one heading-order failure, and one visible-label/accessibility-name mismatch.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Remove prohibited ARIA, title every iframe, restore sequential headings, and ensure accessible names include visible labels.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Document assets include unsized and incorrectly proportioned images",
      "evidence": "Lighthouse reported one incorrect image aspect ratio; the image probe found 100/100 images without intrinsic dimensions and one missing alt.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Correct aspect ratios, provide intrinsic dimensions, and add an appropriate alt (or empty alt for decorative imagery).",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "A JavaScript exception is logged during page load",
      "evidence": "Lighthouse captured TypeError: Cannot read properties of undefined (reading getIdent) at the main document.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Guard the initialization dependency, add regression coverage for consent states, and keep production console error-free.",
      "effort": "small"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Platform hygiene prevents BFCache and omits source maps",
      "evidence": "Lighthouse reported a BFCache blocker and two large first-party JavaScript files without valid source maps.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Remove unload/BFCache blockers and publish production source maps with controlled access for diagnosability.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "Some interactive anchors are not crawlable links",
      "evidence": "Lighthouse found three <a> controls without href, including audio and live-bet affordances.",
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Use buttons for actions or provide real destination href values for navigation links.",
      "effort": "small"
    },
    {
      "id": "F15",
      "pathId": "article",
      "url": "https://www.diretta.it/news/calcio-triplette-haaland-e-foden-al-city-derby-manchester/x8flwbMj/",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Entity pages lack structured data",
      "evidence": "The platform probe found zero JSON-LD blocks, including on match and article archetypes that map naturally to SportsEvent and NewsArticle entities.",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/article-dom.json",
        "evidence/match-dom.json"
      ],
      "suggestedFix": "Add accurate JSON-LD for NewsArticle and SportsEvent and validate it against visible content.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "article",
      "url": "https://www.diretta.it/news/calcio-triplette-haaland-e-foden-al-city-derby-manchester/x8flwbMj/",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The sampled article lacks a meta description",
      "evidence": "The article discoverability capture reports metaDescriptionPresentInRaw: null although its title and H1 are available.",
      "artifacts": [
        "evidence/article-discoverability.json"
      ],
      "suggestedFix": "Generate a unique article meta description and matching Open Graph description from the article standfirst.",
      "effort": "small"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Core defensive response headers are absent",
      "evidence": "The headers primitive found no CSP, HSTS, X-Content-Type-Options, clickjacking protection, Referrer-Policy, or Permissions-Policy.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy a tested CSP, HSTS, nosniff, frame-ancestors, strict referrer policy, and a least-privilege Permissions-Policy.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Tracking and consent scope are disproportionate",
      "evidence": "The page contacts 11 third-party origins and four known trackers; HAR attributes 1.29 MB and 67 requests to third parties, while consent copy names 1001 partners.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Minimise vendors and purposes, block trackers until consent, batch essential analytics, and document a strict data-minimisation budget.",
      "effort": "large"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced security policies are not configured",
      "evidence": "The headers evidence shows no HSTS, clickjacking control, Referrer-Policy, Permissions-Policy, or CSP frame-ancestors.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add and monitor defensive headers at the edge; start CSP in report-only mode and tighten it before enforcement.",
      "effort": "medium"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "stabilize-reactive-state",
      "severity": "medium",
      "confidence": "high",
      "summary": "Core score content is only partially available without JavaScript",
      "evidence": "Discoverability coverage was 36% on home and 54% on match; the match H1 was absent from raw HTML, although neither page was an empty JS shell.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/match-discoverability.json",
        "evidence/home-discoverability-crawler.png",
        "evidence/match-discoverability-crawler.png"
      ],
      "suggestedFix": "Server-render primary score/match identity content and progressively enhance live updates.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent experience is a nagging wall with extreme vendor scope",
      "evidence": "Every fresh results-page load presents a full consent wall describing 1001 partners before the core task; reject is visible, but the interruption and scope undermine freely given, proportionate consent.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Reduce vendor scope and present concise, purpose-level consent without blocking score access; preserve an equally prominent reject choice.",
      "effort": "large"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "severity": "medium",
      "confidence": "high",
      "summary": "Images use legacy formats without responsive delivery metadata",
      "evidence": "The images probe found 100 legacy PNG/JPEG images, zero modern formats, 100 missing dimensions, and four missing srcset attributes.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "suggestedFix": "Serve AVIF/WebP where beneficial, retain fallback formats, provide responsive sources, and declare dimensions.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party work is heavy relative to the score-listing task",
      "evidence": "HAR recorded 67 third-party requests and 1.29 MB third-party bytes, including multiple analytics and ad stacks before the user engages.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Set a third-party byte/request budget, defer optional vendors until interaction/consent, and remove duplicate analytics destinations.",
      "effort": "large"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "efficient-background-processing",
      "severity": "medium",
      "confidence": "high",
      "summary": "Background and startup work is not proportionate",
      "evidence": "The page starts 109 requests and 42 scripts; Lighthouse TBT is 900 ms and the reduced-motion probe still found many continuously running shimmer animations.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-preferences.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Pause animation and refresh work when hidden/reduced-motion is active, and schedule non-essential fetching at low priority.",
      "effort": "medium"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "defer-rendering-heavy-content",
      "severity": "high",
      "confidence": "high",
      "summary": "The initial memory footprint is unusually large for a score listing",
      "evidence": "The baseline heap summary contains 937,483 nodes, 4.31 million edges, and 62.5 MB self size, including 341,536 native nodes and 64,797 closures.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot"
      ],
      "suggestedFix": "Reduce DOM virtualization scope, unload hidden league/template trees, and lazy-initialize optional widgets and vendor code.",
      "effort": "large"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://www.diretta.it/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "severity": "high",
      "confidence": "low",
      "summary": "Heap grows substantially after repeated consent interaction",
      "evidence": "The post-interaction heap rose from 62.5 MB/937,483 nodes to 92.5 MB/1,392,771 nodes (+48% bytes, +49% nodes); separate page sessions lower confidence, so confirm with same-session GC snapshots before treating as a proven leak.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post.heapsnapshot"
      ],
      "suggestedFix": "Repeat baseline/target/final snapshots in one session with forced GC, then trace retained consent nodes/listeners and dispose them on close.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Cut LCP, TBT, CLS, and startup payload",
      "priority": 1,
      "findingIds": [
        "F05",
        "F06",
        "F07",
        "F08",
        "F09"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Minimise and defer tracking/consent vendors",
      "priority": 2,
      "findingIds": [
        "F02",
        "F18",
        "F21",
        "F23",
        "F24"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy defensive response headers",
      "priority": 3,
      "findingIds": [
        "F17",
        "F19"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Reduce DOM and memory footprint; confirm leak in one session",
      "priority": 4,
      "findingIds": [
        "F25",
        "F26"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Fix ARIA, frame titles, headings, labels, and image semantics",
      "priority": 5,
      "findingIds": [
        "F10",
        "F11"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Progressively render primary score and match content",
      "priority": 6,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "stabilize-reactive-state",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Use native dialog semantics for consent",
      "priority": 7,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Prioritise match content over mobile ads/chrome",
      "priority": 8,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Add article/match metadata and fix links",
      "priority": 9,
      "findingIds": [
        "F14",
        "F15",
        "F16"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Respect reduced motion",
      "priority": 10,
      "findingIds": [
        "F01"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Fix console, BFCache, and source-map hygiene",
      "priority": 11,
      "findingIds": [
        "F12",
        "F13"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Modernise responsive image delivery",
      "priority": 12,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-19T21-32-56-263Z"
}
