{
  "url": "https://www.skysports.com",
  "auditedAt": "2026-07-23T09:24:47.583Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of five representative public templates/journeys plus a 404 state. Login, paid playback and completed checkout were excluded because they require credentials or payment.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered multi-page application with client-side enhancement",
    "notes": "Public sports news, live scores, media and commercial entry surface. The repo web-uplift.json applies only to the local playground and was not loaded for this remote target."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "HTTP fetch"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "same-document-transitions",
    "shrinking-header-on-scroll",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "improve-text-layout-and-legibility",
    "identify-inp-causes",
    "accessibility",
    "css",
    "security",
    "flicker-free-client-side-ab-testing",
    "translator",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals",
    "privacy",
    "identify-heavy-scripts",
    "optimize-image-priority",
    "forms",
    "html"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-headers.txt",
      "caption": "404 headers.txt"
    },
    {
      "type": "other",
      "path": "evidence/404.html",
      "caption": "404.html"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-desktop.png",
      "caption": "article desktop.png",
      "findingIds": [
        "F4"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler.png"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered.png"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability.json"
    },
    {
      "type": "other",
      "path": "evidence/article-images.json",
      "caption": "article images.json",
      "findingIds": [
        "F9",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/article-probe.json",
      "caption": "article probe.json"
    },
    {
      "type": "screenshot",
      "path": "evidence/football-desktop.png",
      "caption": "football desktop.png",
      "findingIds": [
        "F3"
      ]
    },
    {
      "type": "other",
      "path": "evidence/football-probe.json",
      "caption": "football probe.json"
    },
    {
      "type": "screenshot",
      "path": "evidence/get-sky-mobile.png",
      "caption": "get sky mobile.png",
      "findingIds": [
        "F6"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline.json"
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "heap post.json"
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies.json",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark.png",
      "findingIds": [
        "F1"
      ],
      "condition": "prefers-color-scheme: dark"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop.png",
      "findingIds": [
        "F1",
        "F4",
        "F5"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler.png"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered.png"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability.json"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom.json",
      "findingIds": [
        "F1",
        "F2",
        "F3"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers.json",
      "findingIds": [
        "F14",
        "F16"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast.png",
      "condition": "prefers-contrast: more"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images.json",
      "findingIds": [
        "F9",
        "F18"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout.json",
      "findingIds": [
        "F6"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile.png",
      "findingIds": [
        "F4",
        "F6",
        "F7"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe.json",
      "findingIds": [
        "F2",
        "F7",
        "F11",
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon.json",
      "findingIds": [
        "F5"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets.json"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary.json",
      "findingIds": [
        "F10",
        "F15"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary.json",
      "findingIds": [
        "F8"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace.json",
      "findingIds": [
        "F8"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers.json",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home.har",
      "findingIds": [
        "F10",
        "F15"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home.json",
      "findingIds": [
        "F8",
        "F9",
        "F10",
        "F11",
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/manifest.json",
      "caption": "manifest.json"
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics.json"
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "reduced motion probe.json"
    },
    {
      "type": "other",
      "path": "evidence/resource-policy-probe.json",
      "caption": "resource policy probe.json"
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt"
    },
    {
      "type": "screenshot",
      "path": "evidence/scores-discoverability-crawler.png",
      "caption": "scores discoverability crawler.png"
    },
    {
      "type": "screenshot",
      "path": "evidence/scores-discoverability-rendered.png",
      "caption": "scores discoverability rendered.png"
    },
    {
      "type": "discoverability",
      "path": "evidence/scores-discoverability.json",
      "caption": "scores discoverability.json",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/scores-mobile.png",
      "caption": "scores mobile.png",
      "findingIds": [
        "F6",
        "F17"
      ],
      "condition": "viewport: 360x800"
    },
    {
      "type": "other",
      "path": "evidence/scores-probe.json",
      "caption": "scores probe.json",
      "findingIds": [
        "F17"
      ]
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Paired 1440x900 screenshots under normal and prefers-color-scheme: dark are pixel-identical (both 544,208 bytes), and captured CSS contains no prefers-color-scheme rule.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Under prefers-reduced-motion: reduce the probe found zero active animations and one stylesheet responding to the preference.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "Lighthouse color-contrast passed and the high-contrast screenshot retained visible text and controls.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The captured CSS contains no view-transition declarations and the live DOM probe found no view-transition styling across this multi-page news experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "No scroll-linked animation was present on the representative templates, so there is no scroll animation implementation to evaluate.",
      "reason": "No scroll-linked animation was present on the representative templates, so there is no scroll animation implementation to evaluate."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Captured CSS uses scroll-snap and the sampled journeys did not expose custom pointer-drag handlers that fought native scrolling.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Captured CSS contains no scroll-state query or scroll timeline, while desktop screenshots show a large, persistent two-level navigation area.",
      "pathIds": [
        "football"
      ],
      "artifacts": [
        "evidence/football-desktop.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "No tooltip, anchored popover or edge-positioned menu was encountered in the sampled public journeys.",
      "reason": "No tooltip, anchored popover or edge-positioned menu was encountered in the sampled public journeys."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Screenshots show active section state, strong page headings and selected navigation underlines on article and score templates.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Desktop screenshots show a modal covering roughly the lower third of the viewport with the page dimmed; at 360x800 it covers most of the viewport before any user action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-desktop.png"
      ],
      "findingIds": [
        "F4"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The recon probe identifies DIV role=dialog, not an open dialog element, for the modal consent surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F5"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Outside the separately reported consent wall, content cards and headings dominate the representative page layouts.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "At 360x800, “Essential cookies only” is clipped off the left edge and “Accept all” is clipped off the right edge on homepage, scores and Get Sky captures; most underlying content is unavailable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/get-sky-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Captured CSS includes @container and the same navigation/content system reflows between 1440px and 360px.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "The homepage probe found 48 visible anchors/buttons/inputs with either width or height below 24 CSS px; the sampled first focus target does have a visible browser outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F7"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Article and scores screenshots expose specific H1/page headings and recognizable next actions in the first viewport.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "At 360x800, “Essential cookies only” is clipped off the left edge and “Accept all” is clipped off the right edge on homepage, scores and Get Sky captures; most underlying content is unavailable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/get-sky-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "An unknown route returns HTTP 404 with the explicit H1 “Sorry, we could not find the page you were looking for” and retains site navigation.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, HAR summary and layout/image evidence",
      "evidence": "Lighthouse measured LCP 7.4s, Speed Index 4.6s and Time to Interactive 8.0s (performance score 0.60), although an unthrottled trace measured LCP 1.65s and only 20.74ms TBT.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F8"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, HAR summary and layout/image evidence",
      "evidence": "The images primitive found width/height attributes missing on all 100 sampled homepage images and all 100 sampled article images; Lighthouse measured CLS 0.181.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F9"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse, trace summary, HAR summary and layout/image evidence",
      "evidence": "The trace recorded one 70.74ms long task and only 20.74ms total blocking time; Lighthouse TBT was 94ms.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, HAR summary and layout/image evidence",
      "evidence": "Lighthouse estimates 119 KiB unused JavaScript and 90 KiB unused CSS. The HAR records 19 scripts (367,619 transferred bytes), 10 fonts (221,893 bytes), and 218,143 third-party bytes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse, trace summary, HAR summary and layout/image evidence",
      "evidence": "Lighthouse estimates 119 KiB unused JavaScript and 90 KiB unused CSS. The HAR records 19 scripts (367,619 transferred bytes), 10 fonts (221,893 bytes), and 218,143 third-party bytes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "Lighthouse found three pundit headline links in the tab order with no accessible text and reported invalid H4/H3 heading order; accessibility score was 0.95.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "Lighthouse found no color-contrast failures on the homepage.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "Lighthouse found three pundit headline links in the tab order with no accessible text and reported invalid H4/H3 heading order; accessibility score was 0.95.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "Article and score screenshots show readable type, sensible line lengths and no text clipping outside the consent action defect.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility, DOM/focus probe and visual screenshots",
      "evidence": "The homepage probe found 48 visible anchors/buttons/inputs with either width or height below 24 CSS px; the sampled first focus target does have a visible browser outline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F7"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Lighthouse recorded ReferenceError: _satellite is not defined and a TypeError in ui-sitewide-dynamic-tile during load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The images primitive found width/height attributes missing on all 100 sampled homepage images and all 100 sampled article images; Lighthouse measured CLS 0.181.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F9"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Lighthouse best-practices scored 0.96; no permission prompt appeared on load and notification permission remained default.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata probe, raw/rendered discoverability comparison, robots and HTTP inspection",
      "evidence": "All four content probes returned descriptive titles and meta descriptions; Lighthouse SEO passed.",
      "pathIds": [
        "home",
        "article",
        "scores"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata probe, raw/rendered discoverability comparison, robots and HTTP inspection",
      "evidence": "Real href links, viewport metadata, valid robots.txt and 100% no-JS content coverage were observed.",
      "pathIds": [
        "home",
        "article",
        "scores"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Metadata probe, raw/rendered discoverability comparison, robots and HTTP inspection",
      "evidence": "The homepage metadata probe returned no canonical link. Discoverability found the scores page content fully server-rendered but titlePresentInRaw=false.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/scores-discoverability.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata probe, raw/rendered discoverability comparison, robots and HTTP inspection",
      "evidence": "Representative pages expose 2–5 JSON-LD blocks and 5–7 Open Graph tags matching their visible entities.",
      "pathIds": [
        "home",
        "article",
        "scores"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, secrets, trackers and HAR inspection",
      "evidence": "The cookie audit shows bm_lso and ak_bmsc with secure=false; six of six cookies use SameSite=None, including several that do not need cross-site semantics.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-cookies.json",
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, secrets, trackers and HAR inspection",
      "evidence": "The pre-consent HAR records 18 third-party requests and 218,143 transferred bytes, including Covatic and Dotmetrics; trackers enumeration finds eight third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Headers, cookies, secrets, trackers and HAR inspection",
      "evidence": "No browser permission prompt or authentication flow was exercised; credentials are not required for the audited public news journeys.",
      "reason": "No browser permission prompt or authentication flow was exercised; credentials are not required for the audited public news journeys."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Headers, cookies, secrets, trackers and HAR inspection",
      "evidence": "Headers include HSTS and nosniff, but omit Referrer-Policy and Permissions-Policy. CSP contains only frame-ancestors and therefore does not constrain script/style/connect sources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Metadata probe, raw/rendered discoverability comparison, robots and HTTP inspection",
      "evidence": "Discoverability reports 99–100% raw-HTML content coverage with title/H1/description preserved on home and article pages.",
      "pathIds": [
        "home",
        "article",
        "scores"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "At 360x800, “Essential cookies only” is clipped off the left edge and “Accept all” is clipped off the right edge on homepage, scores and Get Sky captures; most underlying content is unavailable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/get-sky-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The sampled product is primarily a public news/live service and explicitly prefers related native applications; full offline app behaviour is not a core public journey.",
      "reason": "The sampled product is primarily a public news/live service and explicitly prefers related native applications; full offline app behaviour is not a core public journey."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The unknown path returns a true HTTP 404 and a readable branded error page rather than a blank shell.",
      "pathIds": [
        "home",
        "article",
        "scores"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "All sampled documents declare lang=en and retained correct reading order across desktop/mobile layouts.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Fixture values use semantic time elements with machine-readable datetime values rather than only visual strings.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "issues",
      "confidence": "medium",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The scores probe lists semantic time values such as text “5.00pm” with datetime “17:00”, but no zone or offset is present in the sampled output.",
      "pathIds": [
        "scores"
      ],
      "artifacts": [
        "evidence/scores-probe.json",
        "evidence/scores-mobile.png"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The consent surface offers Essential only, View options and Accept all as peer actions without confirmshaming copy.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "No authored form appears on the sampled public routes before entering gated account/payment services.",
      "reason": "No authored form appears on the sampled public routes before entering gated account/payment services."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "No authored text, address, payment or sign-in fields appear on the sampled public routes.",
      "reason": "No authored text, address, payment or sign-in fields appear on the sampled public routes."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "At 360x800, “Essential cookies only” is clipped off the left edge and “Accept all” is clipped off the right edge on homepage, scores and Get Sky captures; most underlying content is unavailable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/get-sky-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The homepage image audit reports 92 legacy-format images, only 2 modern-format images and 45 missing srcset among 100 sampled images; the article sample reports 99 legacy formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "The pre-consent HAR records 18 third-party requests and 218,143 transferred bytes, including Covatic and Dotmetrics; trackers enumeration finds eight third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "Lighthouse estimates 119 KiB unused JavaScript and 90 KiB unused CSS. The HAR records 19 scripts (367,619 transferred bytes), 10 fonts (221,893 bytes), and 218,143 third-party bytes. The pre-consent HAR records 18 third-party requests and 218,143 transferred bytes, including Covatic and Dotmetrics; trackers enumeration finds eight third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F10",
        "F15"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Metadata probe, raw/rendered discoverability comparison, robots and HTTP inspection",
      "evidence": "No agent-facing transactional or productivity capability is in scope for this public sports-news surface; server-rendered content remains machine-readable.",
      "reason": "No agent-facing transactional or productivity capability is in scope for this public sports-news surface; server-rendered content remains machine-readable."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshots, DOM/CSS and evaluate probes",
      "evidence": "On-device summarisation is an optional emerging enhancement, not necessary to complete the sampled news, score or commercial-entry tasks.",
      "reason": "On-device summarisation is an optional emerging enhancement, not necessary to complete the sampled news, score or commercial-entry tasks."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline/post-interaction heap summaries and in-page memory/DOM metrics",
      "evidence": "After ten menu/scroll cycles, heap self size grew only 125,230 bytes (0.69%) and DOM count returned to 2,456.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline/post-interaction heap summaries and in-page memory/DOM metrics",
      "evidence": "The heap summary reports 18.1MB self size and 311,148 V8 snapshot nodes, proportionate to this media-heavy page.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline/post-interaction heap summaries and in-page memory/DOM metrics",
      "evidence": "Baseline/post summaries show no Detached* constructor among top retained constructors; DOM element count remained 2,456.",
      "pathIds": [
        "home"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F1"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F2"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F3"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F4",
        "F5"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F6",
        "F7"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F8",
        "F9",
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F7"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F9"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F6"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F18",
        "F15",
        "F10"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged outside the scope of the sampled public sports-news journeys."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and first-visit consent entry state, representing the main news discovery journey.",
      "url": "https://www.skysports.com/",
      "conditions": [
        "desktop 1440x900",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "football",
      "description": "Football section/listing template, representing high-density section navigation and card grids.",
      "url": "https://www.skysports.com/football",
      "conditions": [
        "desktop 1440x900"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "News article/detail template, representing the core content-reading journey and rich metadata.",
      "url": "https://www.skysports.com/football/news/11661/13565869/alejandro-garnacho-transfer-news-aston-villa-agree-deal-with-chelsea-for-winger",
      "conditions": [
        "desktop 1440x900",
        "JavaScript disabled crawler comparison"
      ],
      "result": "issues"
    },
    {
      "id": "scores",
      "description": "Scores and fixtures surface, representing dynamic sports data and mobile use.",
      "url": "https://www.skysports.com/football-scores-fixtures",
      "conditions": [
        "mobile 360x800",
        "JavaScript disabled crawler comparison"
      ],
      "result": "issues"
    },
    {
      "id": "commercial",
      "description": "Get Sky entry page, representing the public commercial conversion journey before account/payment steps.",
      "url": "https://www.skysports.com/watch/get-sky",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "error404",
      "description": "Unknown route, representing HTTP error handling and recovery.",
      "url": "https://www.skysports.com/definitely-not-a-real-page-web-uplift",
      "conditions": [
        "HTTP 404"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F1",
      "severity": "medium",
      "summary": "The site does not adapt its visual theme to the user’s dark-mode preference.",
      "evidence": "Paired 1440x900 screenshots under normal and prefers-color-scheme: dark are pixel-identical (both 544,208 bytes), and captured CSS contains no prefers-color-scheme rule.",
      "suggestedFix": "Declare color-scheme and provide preference-driven surface, text, control and media colors using prefers-color-scheme or light-dark().",
      "effort": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-dom.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F2",
      "severity": "low",
      "summary": "Route changes do not use View Transitions.",
      "evidence": "The captured CSS contains no view-transition declarations and the live DOM probe found no view-transition styling across this multi-page news experience.",
      "suggestedFix": "Use cross-document View Transitions for eligible same-origin navigation, with a no-motion fallback.",
      "effort": "medium",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "animation",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "confidence": "medium"
    },
    {
      "id": "F3",
      "severity": "low",
      "summary": "Persistent navigation does not expose declarative scroll-state-aware behaviour.",
      "evidence": "Captured CSS contains no scroll-state query or scroll timeline, while desktop screenshots show a large, persistent two-level navigation area.",
      "suggestedFix": "Use scroll-state container queries for sticky header state and retain a static fallback.",
      "effort": "small",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "css",
      "pathId": "football",
      "url": "https://www.skysports.com/football",
      "artifacts": [
        "evidence/football-desktop.png",
        "evidence/home-dom.json"
      ],
      "confidence": "medium"
    },
    {
      "id": "F4",
      "severity": "high",
      "summary": "The first-visit cookie wall obscures the primary content on every sampled public route.",
      "evidence": "Desktop screenshots show a modal covering roughly the lower third of the viewport with the page dimmed; at 360x800 it covers most of the viewport before any user action.",
      "suggestedFix": "Reduce the initial consent surface to the minimum legally required, preserve an equally prominent essential-only choice, and ensure content remains readable where policy permits.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/article-desktop.png"
      ],
      "confidence": "high"
    },
    {
      "id": "F5",
      "severity": "medium",
      "summary": "The consent flow uses a custom role=dialog container rather than the native dialog primitive.",
      "evidence": "The recon probe identifies DIV role=dialog, not an open dialog element, for the modal consent surface.",
      "suggestedFix": "Use a native dialog with modal focus management, labelled title/description and deliberate consent dismissal controls.",
      "effort": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/home-desktop.png"
      ],
      "confidence": "high"
    },
    {
      "id": "F6",
      "severity": "high",
      "summary": "The mobile consent layout clips both edge actions and blocks core news, scores and commercial journeys.",
      "evidence": "At 360x800, “Essential cookies only” is clipped off the left edge and “Accept all” is clipped off the right edge on homepage, scores and Get Sky captures; most underlying content is unavailable.",
      "suggestedFix": "Reflow consent actions into a full-width vertical or wrapping group with safe inline padding, then test at 320–400 CSS px and 200% zoom.",
      "effort": "small",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/get-sky-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F7",
      "severity": "medium",
      "summary": "A meaningful set of interactive targets is too small for robust touch use.",
      "evidence": "The homepage probe found 48 visible anchors/buttons/inputs with either width or height below 24 CSS px; the sampled first focus target does have a visible browser outline.",
      "suggestedFix": "Increase compact targets and their hit areas toward at least 44×44 CSS px without crowding adjacent actions, while retaining visible focus.",
      "effort": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-mobile.png"
      ],
      "confidence": "high"
    },
    {
      "id": "F8",
      "severity": "high",
      "summary": "Throttled mobile loading misses the Core Web Vitals LCP bar.",
      "evidence": "Lighthouse measured LCP 7.4s, Speed Index 4.6s and Time to Interactive 8.0s (performance score 0.60), although an unthrottled trace measured LCP 1.65s and only 20.74ms TBT.",
      "suggestedFix": "Profile the LCP element and prioritize its discovery/delivery; delay non-critical consent, analytics and below-fold work.",
      "effort": "large",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F9",
      "severity": "medium",
      "summary": "Images lack intrinsic dimensions and the throttled run records material layout shift.",
      "evidence": "The images primitive found width/height attributes missing on all 100 sampled homepage images and all 100 sampled article images; Lighthouse measured CLS 0.181.",
      "suggestedFix": "Emit width and height or a stable aspect-ratio for every image/card slot before loading content.",
      "effort": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json",
        "evidence/lighthouse-home.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F10",
      "severity": "medium",
      "summary": "Substantial unused CSS/JavaScript and third-party code inflate delivery.",
      "evidence": "Lighthouse estimates 119 KiB unused JavaScript and 90 KiB unused CSS. The HAR records 19 scripts (367,619 transferred bytes), 10 fonts (221,893 bytes), and 218,143 third-party bytes.",
      "suggestedFix": "Split template CSS/JS, load live components conditionally, prune duplicate bundles and defer analytics code until it is needed and permitted.",
      "effort": "large",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "confidence": "high"
    },
    {
      "id": "F11",
      "severity": "high",
      "summary": "Some homepage links have no accessible name and heading levels skip structure.",
      "evidence": "Lighthouse found three pundit headline links in the tab order with no accessible text and reported invalid H4/H3 heading order; accessibility score was 0.95.",
      "suggestedFix": "Give each card link a programmatic name from its visible headline and make card headings follow the page section hierarchy.",
      "effort": "small",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-probe.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F12",
      "severity": "medium",
      "summary": "The homepage logs uncaught runtime errors.",
      "evidence": "Lighthouse recorded ReferenceError: _satellite is not defined and a TypeError in ui-sitewide-dynamic-tile during load.",
      "suggestedFix": "Guard optional analytics dependencies, correct dynamic-tile initialization ordering and add production error monitoring regression coverage.",
      "effort": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F13",
      "severity": "low",
      "summary": "The homepage omits a canonical URL and the scores title is not present in raw HTML.",
      "evidence": "The homepage metadata probe returned no canonical link. Discoverability found the scores page content fully server-rendered but titlePresentInRaw=false.",
      "suggestedFix": "Emit stable canonical links on every indexable template and ensure the final descriptive title is present in the initial server HTML.",
      "effort": "small",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/scores-discoverability.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F14",
      "severity": "high",
      "summary": "Two first-party cookies are set without Secure and all six sampled cookies use SameSite=None.",
      "evidence": "The cookie audit shows bm_lso and ak_bmsc with secure=false; six of six cookies use SameSite=None, including several that do not need cross-site semantics.",
      "suggestedFix": "Set Secure on every production cookie and choose Lax/Strict unless a documented cross-site flow requires None; review HttpOnly where script access is unnecessary.",
      "effort": "small",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-cookies.json",
        "evidence/home-headers.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F15",
      "severity": "medium",
      "summary": "Third-party measurement code loads before a consent decision and consumes a material share of the initial transfer.",
      "evidence": "The pre-consent HAR records 18 third-party requests and 218,143 transferred bytes, including Covatic and Dotmetrics; trackers enumeration finds eight third-party origins.",
      "suggestedFix": "Gate non-essential measurement behind consent, reduce vendors, batch permitted analytics and enforce a third-party byte/request budget.",
      "effort": "large",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-trackers.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F16",
      "severity": "medium",
      "summary": "Browser-enforced policy coverage is incomplete and the CSP only defines frame ancestors.",
      "evidence": "Headers include HSTS and nosniff, but omit Referrer-Policy and Permissions-Policy. CSP contains only frame-ancestors and therefore does not constrain script/style/connect sources.",
      "suggestedFix": "Deploy a nonce/hash-based CSP with explicit source directives, plus a strict Referrer-Policy and least-privilege Permissions-Policy.",
      "effort": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "confidence": "high"
    },
    {
      "id": "F17",
      "severity": "low",
      "summary": "Fixture times do not expose a time-zone context for users outside the UK.",
      "evidence": "The scores probe lists semantic time values such as text “5.00pm” with datetime “17:00”, but no zone or offset is present in the sampled output.",
      "suggestedFix": "State the schedule time zone and offer locale/time-zone-aware display while retaining machine-readable unambiguous datetimes.",
      "effort": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "time-zone-correctness",
      "guidanceId": "translator",
      "guidanceCategory": "internationalization",
      "pathId": "scores",
      "url": "https://www.skysports.com/football-scores-fixtures",
      "artifacts": [
        "evidence/scores-probe.json",
        "evidence/scores-mobile.png"
      ],
      "confidence": "medium"
    },
    {
      "id": "F18",
      "severity": "medium",
      "summary": "Image delivery relies overwhelmingly on legacy formats and incomplete responsive source selection.",
      "evidence": "The homepage image audit reports 92 legacy-format images, only 2 modern-format images and 45 missing srcset among 100 sampled images; the article sample reports 99 legacy formats.",
      "suggestedFix": "Negotiate AVIF/WebP where appropriate and provide width-aware srcset/sizes while preserving optimized fallbacks.",
      "effort": "large",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.skysports.com/",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/article-images.json"
      ],
      "confidence": "high"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Make the consent experience responsive and content-preserving",
      "priority": 1,
      "findingIds": [
        "F4",
        "F5",
        "F6"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Fix insecure cookie attributes and strengthen browser policies",
      "priority": 2,
      "findingIds": [
        "F14",
        "F16"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Improve LCP and eliminate layout shifts",
      "priority": 3,
      "findingIds": [
        "F8",
        "F9"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Restore accessible names, heading order and touch target sizing",
      "priority": 4,
      "findingIds": [
        "F7",
        "F11"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Gate and reduce third-party work and unused bundles",
      "priority": 5,
      "findingIds": [
        "F10",
        "F15"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Modernize responsive image delivery",
      "priority": 6,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Add preference-driven dark mode",
      "priority": 7,
      "findingIds": [
        "F1"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Remove production console exceptions",
      "priority": 8,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Complete canonical and server-title signals",
      "priority": 9,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add time-zone context to fixture times",
      "priority": 10,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Adopt declarative navigation transitions and scroll state",
      "priority": 11,
      "findingIds": [
        "F2",
        "F3"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T09-12-56-297Z"
}
