{
  "url": "https://www.mlb.com",
  "auditedAt": "2026-07-21T17:58:00.765Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete representative audit. Excluded transaction submission, authenticated account interiors, video playback, search (robots-disallowed), and team microsites to avoid side effects and duplicate templates.",
  "page": {
    "appType": "hybrid",
    "framework": "Next.js/React plus multiple MLB shared web applications",
    "notes": "Large server-rendered sports/news/data portal with localized, subscription and authentication surfaces."
  },
  "evidenceUsed": [
    "screenshot",
    "video",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Lighthouse",
    "robots.txt",
    "sitemap.xml",
    "Modern Web Guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "fluid-scaling",
    "forms",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "improve-text-layout-and-legibility",
    "security",
    "privacy",
    "batch-analytics-events",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "same-document-transitions",
    "performance",
    "html",
    "passkeys",
    "translator"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "404 mobile"
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability"
    },
    {
      "type": "other",
      "path": "evidence/article-form-invalid.json",
      "caption": "article form invalid"
    },
    {
      "type": "other",
      "path": "evidence/article-forms.json",
      "caption": "article forms"
    },
    {
      "type": "layout",
      "path": "evidence/article-layout-mobile.json",
      "caption": "article layout mobile"
    },
    {
      "type": "other",
      "path": "evidence/article-lighthouse-failures.json",
      "caption": "article lighthouse failures"
    },
    {
      "type": "lighthouse",
      "path": "evidence/article-lighthouse.json",
      "caption": "article lighthouse"
    },
    {
      "type": "other",
      "path": "evidence/article-links.json",
      "caption": "article links"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile-light.png",
      "caption": "article mobile light"
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile"
    },
    {
      "type": "other",
      "path": "evidence/css-feature-counts.txt",
      "caption": "css feature counts"
    },
    {
      "type": "screenshot",
      "path": "evidence/es-home-mobile.png",
      "caption": "es home mobile"
    },
    {
      "type": "other",
      "path": "evidence/es-home-probe.json",
      "caption": "es home probe"
    },
    {
      "type": "other",
      "path": "evidence/guidance-catalog.json",
      "caption": "guidance catalog"
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved-additional.md",
      "caption": "guidance retrieved additional"
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-consent.json",
      "caption": "guidance search consent"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-images.json",
      "caption": "guidance search images"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-performance.json",
      "caption": "guidance search performance"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-security.json",
      "caption": "guidance search security"
    },
    {
      "type": "other",
      "path": "evidence/guidance-search-third-party.json",
      "caption": "guidance search third party"
    },
    {
      "type": "other",
      "path": "evidence/home-audit-probe.json",
      "caption": "home audit probe"
    },
    {
      "type": "other",
      "path": "evidence/home-buttons.json",
      "caption": "home buttons"
    },
    {
      "type": "other",
      "path": "evidence/home-contrast-focus.json",
      "caption": "home contrast focus"
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "home forced colors"
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers"
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-baseline.json",
      "caption": "home heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/home-heap-post-menu10.json",
      "caption": "home heap post menu10"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images"
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile"
    },
    {
      "type": "other",
      "path": "evidence/home-lighthouse-failures.json",
      "caption": "home lighthouse failures"
    },
    {
      "type": "lighthouse",
      "path": "evidence/home-lighthouse.json",
      "caption": "home lighthouse"
    },
    {
      "type": "video",
      "path": "evidence/home-menu-transition.mp4",
      "caption": "home menu transition"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile-dark.png",
      "caption": "home mobile dark"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile"
    },
    {
      "type": "other",
      "path": "evidence/home-preferences.json",
      "caption": "home preferences"
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "home recon"
    },
    {
      "type": "other",
      "path": "evidence/home-scroll-state.json",
      "caption": "home scroll state"
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary"
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary"
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home"
    },
    {
      "type": "screenshot",
      "path": "evidence/login-mobile.png",
      "caption": "login mobile"
    },
    {
      "type": "other",
      "path": "evidence/login-probe.json",
      "caption": "login probe"
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots"
    },
    {
      "type": "screenshot",
      "path": "evidence/scores-discoverability-crawler.png",
      "caption": "scores discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/scores-discoverability-rendered.png",
      "caption": "scores discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/scores-discoverability.json",
      "caption": "scores discoverability"
    },
    {
      "type": "layout",
      "path": "evidence/scores-layout-mobile.json",
      "caption": "scores layout mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/scores-mobile.png",
      "caption": "scores mobile"
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap"
    },
    {
      "type": "screenshot",
      "path": "evidence/standings-discoverability-crawler.png",
      "caption": "standings discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/standings-discoverability-rendered.png",
      "caption": "standings discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/standings-discoverability.json",
      "caption": "standings discoverability"
    },
    {
      "type": "layout",
      "path": "evidence/standings-layout-mobile.json",
      "caption": "standings layout mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/standings-mobile.png",
      "caption": "standings mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/stats-discoverability-crawler.png",
      "caption": "stats discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/stats-discoverability-rendered.png",
      "caption": "stats discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/stats-discoverability.json",
      "caption": "stats discoverability"
    },
    {
      "type": "layout",
      "path": "evidence/stats-layout-mobile.json",
      "caption": "stats layout mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/stats-mobile.png",
      "caption": "stats mobile"
    },
    {
      "type": "screenshot",
      "path": "evidence/subscribe-mobile.png",
      "caption": "subscribe mobile"
    },
    {
      "type": "other",
      "path": "evidence/subscribe-probe.json",
      "caption": "subscribe probe"
    }
  ],
  "config": {
    "loaded": false
  },
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F03",
        "F13"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F21"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F22",
        "F18",
        "F08"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared intent indicates MLB.com currently wants to expose transactional WebMCP/agentic tools; public content remains available as SSR HTML, so this emerging capability is treated as an opportunity rather than a failure. No user task in the audited news, scores, stats, subscription or localized surfaces requires on-device language-model or summarizer inference; absence is not a quality failure."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage: global navigation, score rail, lead news, consent, performance, privacy and memory baseline.",
      "url": "https://www.mlb.com/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "forced-colors: active",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "scores",
      "description": "Scores listing: primary live-data task and responsive game cards.",
      "url": "https://www.mlb.com/scores",
      "conditions": [
        "viewport: 360x800",
        "no-JavaScript crawler comparison"
      ],
      "result": "pass"
    },
    {
      "id": "standings",
      "description": "Standings listing/table archetype.",
      "url": "https://www.mlb.com/standings",
      "conditions": [
        "viewport: 360x800",
        "no-JavaScript crawler comparison"
      ],
      "result": "issues"
    },
    {
      "id": "stats",
      "description": "Dense interactive statistics/table archetype.",
      "url": "https://www.mlb.com/stats",
      "conditions": [
        "viewport: 360x800",
        "no-JavaScript crawler comparison"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Editorial article template including share metadata and newsletter form.",
      "url": "https://www.mlb.com/news/mlb-trade-deadline-candidates-with-rising-stock",
      "conditions": [
        "viewport: 360x800",
        "prefers-color-scheme: light",
        "no-JavaScript crawler comparison",
        "empty form submission"
      ],
      "result": "issues"
    },
    {
      "id": "es-home",
      "description": "Spanish localized variant for lang, hreflang, locale and layout inspection.",
      "url": "https://www.mlb.com/es",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "subscribe",
      "description": "MLB.TV subscription landing page for pricing, renewal, cancellation and commercial clarity.",
      "url": "https://www.mlb.com/live-stream-games/subscribe",
      "conditions": [
        "viewport: 360x800",
        "no purchase submitted"
      ],
      "result": "issues"
    },
    {
      "id": "error-state",
      "description": "Intentional unknown route for 404 and recovery behavior.",
      "url": "https://www.mlb.com/this-route-should-not-exist-web-uplift",
      "conditions": [
        "viewport: 360x800"
      ],
      "result": "pass"
    },
    {
      "id": "login",
      "description": "Authentication entry surface for modern-auth affordance inspection.",
      "url": "https://www.mlb.com/login",
      "conditions": [
        "viewport: 360x800",
        "no credentials submitted"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "summary": "The main MLB homepage ignores the user’s dark color-scheme preference.",
      "evidence": "The dark-condition probe reported colorScheme “normal” and body background rgb(245,245,245); the dark screenshot is visually identical to the default light surface.",
      "suggestedFix": "Declare light and dark support at the root and use adaptive color tokens for page, card, text, and native-control surfaces.",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "confidence": "high",
      "artifacts": [
        "evidence/home-preferences.json",
        "evidence/home-mobile-dark.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F02",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "summary": "Route and major state changes do not use View Transitions.",
      "evidence": "Rendered CSS/HTML contained zero view-transition declarations, while route navigation is a hard document swap; the menu interaction video only shows local drawer behavior.",
      "suggestedFix": "Progressively enhance major route and state changes with same-document or cross-document View Transitions, while honoring reduced motion.",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/css-feature-counts.txt",
        "evidence/home-menu-transition.mp4"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F03",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "summary": "The cookie banner obscures primary content on first visit across key mobile templates.",
      "evidence": "Mobile screenshots of home, standings, article, and subscription show a 250–300px consent panel covering roughly one third of the viewport and blocking content interaction.",
      "suggestedFix": "Use a compact, non-obscuring consent surface with equally prominent accept/reject choices and keep settings available through a semantic dialog.",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "confidence": "high",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/standings-mobile.png",
        "evidence/article-mobile.png",
        "evidence/subscribe-mobile.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F04",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "summary": "Promotional and navigation chrome displaces the primary homepage content.",
      "evidence": "At 360×800 the Ballpark Expedition banner, global navigation, and score rail consume about the first 270px before the lead story; the consent layer then covers the lower third.",
      "suggestedFix": "Defer or reduce promotional chrome on narrow screens so the lead story and task content dominate the first viewport.",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F05",
      "severity": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "summary": "Some controls and links are too small or too tightly spaced for touch.",
      "evidence": "Lighthouse target-size audit failed on the homepage even though the focused skip control had a visible box-shadow focus indicator.",
      "suggestedFix": "Increase interactive hit areas and spacing to at least comfortable touch-target dimensions without removing visible keyboard focus.",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/home-contrast-focus.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F06",
      "severity": "critical",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "summary": "Primary pages load far too slowly under Lighthouse mobile conditions.",
      "evidence": "Homepage Lighthouse performance was 0.28 with LCP 32.1s, FCP 6.7s, TBT 1,730ms, and TTI 75.3s; article performance was 0.35 with LCP 21.8s. The raw trace independently measured LCP 17.6s.",
      "suggestedFix": "Prioritize the true LCP resource, cut render-blocking dependencies, and delay nonessential personalization, ads, analytics, and media until after useful content.",
      "guidanceId": "performance",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/article-lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F07",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "summary": "Heavy JavaScript blocks the main thread.",
      "evidence": "The trace found 7 long tasks, a 451ms longest task, and 649ms TBT; mobile layout observation also captured a 1,516ms task. Lighthouse measured 1,730ms TBT.",
      "suggestedFix": "Profile long animation frames, split long tasks, and schedule or defer noncritical hydration, ad, and analytics work.",
      "guidanceId": "break-up-long-tasks",
      "guidanceCategory": "performance",
      "confidence": "high",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-layout-mobile.json",
        "evidence/home-lighthouse.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F08",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "summary": "The homepage ships an excessive request and byte load before core content settles.",
      "evidence": "HAR recorded 505 requests and 15.24MB transferred: 7.13MB script, 6.92MB images, 128 scripts, 205 images, and multiple parser-inserted VeryHigh-priority stylesheets.",
      "suggestedFix": "Set a route-level performance budget, consolidate critical CSS, defer third parties, and reduce initial JS/image delivery.",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "confidence": "high",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F09",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "summary": "Key templates contain broken ARIA relationships and missing image alternatives.",
      "evidence": "Homepage Lighthouse found prohibited aria-labelledby on tab panels, unnamed links/images and label/name mismatches; article Lighthouse found invalid aria-setsize and multiple content images without alt text.",
      "suggestedFix": "Repair tab/list semantics and provide meaningful alt text or explicit presentation roles for decorative images.",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F10",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "summary": "Small score, signup, and consent text fails WCAG contrast.",
      "evidence": "Lighthouse measured homepage team records at 3.54:1 and article signup text at 2.87:1; consent links measured 4.01:1, all below 4.5:1 for this text size.",
      "suggestedFix": "Use darker text/brand tokens and test all score, signup, and consent states to at least WCAG AA contrast.",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F11",
      "severity": "medium",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "summary": "Heading and ARIA structure is inconsistent across templates.",
      "evidence": "The homepage probe found no h1 and starts at h2; article Lighthouse failed heading order and list semantics, while homepage tab panels use aria-labelledby without a valid role.",
      "suggestedFix": "Give every template one descriptive h1, preserve sequential headings, and implement complete tab/list patterns.",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "artifacts": [
        "evidence/home-audit-probe.json",
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F12",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "summary": "The article viewport restricts user scaling.",
      "evidence": "Article Lighthouse failed meta-viewport because user-scalable=no or maximum-scale below 5 was present; the homepage also failed target-size.",
      "suggestedFix": "Remove user-scalable=no and restrictive maximum-scale values, then verify reflow and target size at 200–400% zoom.",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "confidence": "high",
      "artifacts": [
        "evidence/article-lighthouse.json",
        "evidence/home-lighthouse.json"
      ],
      "effort": "small",
      "pathId": "article",
      "url": "https://www.mlb.com/news/mlb-trade-deadline-candidates-with-rising-stock"
    },
    {
      "id": "F13",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "summary": "Homepage and article loads emit application, network, CORS, MIME, and hydration errors.",
      "evidence": "Lighthouse captured failed login checks and CORS/MIME errors on home, plus invalid-date and React hydration errors #418/#423/#425 on the article.",
      "suggestedFix": "Fix hydration/date defects and isolate third-party failures so expected network denials do not produce uncaught errors.",
      "guidanceId": "html",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F14",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "summary": "Image dimensions and aspect ratios are unreliable.",
      "evidence": "The image primitive found 31 of 100 images without dimensions and 70 oversized; Lighthouse separately failed incorrect aspect ratio.",
      "suggestedFix": "Emit numeric width/height or aspect-ratio for every image and use correctly sized responsive variants.",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "confidence": "high",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-lighthouse-failures.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F15",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "summary": "Deprecated APIs and BFCache blockers remain in first- and third-party code.",
      "evidence": "Lighthouse reported unload listeners, deprecated Shared Storage/Topics usage, inspector issues, and BFCache failure reasons on both home and article.",
      "suggestedFix": "Remove unload listeners, update or remove deprecated vendor integrations, and resolve BFCache and inspector blockers.",
      "guidanceId": "html",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F16",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "summary": "The audited news article has social tags but no structured article data.",
      "evidence": "The article is a rich editorial entity; rendered probes/Lighthouse showed Open Graph metadata but no application/ld+json block.",
      "suggestedFix": "Add accurate NewsArticle/Article JSON-LD matching the visible headline, author, dates, image, publisher, and canonical URL.",
      "guidanceId": "html",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/article-lighthouse.json",
        "evidence/home-audit-probe.json"
      ],
      "effort": "small",
      "pathId": "article",
      "url": "https://www.mlb.com/news/mlb-trade-deadline-candidates-with-rising-stock"
    },
    {
      "id": "F17",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "summary": "Security policy and cookie configuration are weak despite HTTPS.",
      "evidence": "Headers primitive found no CSP and no Permissions-Policy; cookie audit found all 52 observed cookies flagged insecure, with many SameSite=None and several roughly 390–400 days old.",
      "suggestedFix": "Deploy a report-only then enforced CSP, add a least-privilege Permissions-Policy, and mark all HTTPS cookies Secure with the narrowest suitable SameSite and lifetime.",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "confidence": "high",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F18",
      "severity": "critical",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "summary": "Tracking and third-party collection begin before meaningful consent and dominate the page.",
      "evidence": "Trackers primitive saw 80 third-party origins and 17 known tracker hosts; HAR attributed 495/505 requests and 15.01MB to third-party origins. Cookie screenshots still show the undecided consent banner while this traffic and 52 cookies were observed.",
      "suggestedFix": "Block nonessential tags until consent, remove redundant vendors, batch essential analytics, shorten identifiers, and enforce a third-party request/byte budget.",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "confidence": "high",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home-cookies.json",
        "evidence/home-mobile.png"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F19",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "summary": "The entry sign-in experience exposes no passkey option.",
      "evidence": "The login entry screenshot shows an email-only first step and no passkey/WebAuthn affordance; no permission prompt appeared on audited page loads.",
      "suggestedFix": "Offer discoverable passkey sign-in/conditional UI alongside recovery-compatible fallback authentication.",
      "guidanceId": "passkeys",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/login-mobile.png"
      ],
      "effort": "large",
      "pathId": "login",
      "url": "https://www.mlb.com/login"
    },
    {
      "id": "F20",
      "severity": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "summary": "The localized site relies overwhelmingly on physical-direction CSS.",
      "evidence": "Spanish content correctly uses lang=es and en/es hreflang, but stylesheet inspection counted 429 physical left/right declarations and only 4 logical-property declarations.",
      "suggestedFix": "Replace reusable layout spacing and positioning with inline/block logical properties and verify an RTL test locale.",
      "guidanceId": "translator",
      "guidanceCategory": "web-quality",
      "confidence": "high",
      "artifacts": [
        "evidence/es-home-probe.json",
        "evidence/es-home-mobile.png"
      ],
      "effort": "medium",
      "pathId": "es-home",
      "url": "https://www.mlb.com/es"
    },
    {
      "id": "F21",
      "severity": "medium",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "summary": "The article newsletter form accepts an empty submission without a visible field error.",
      "evidence": "Both email inputs lacked required and autocomplete; submitting empty produced no :invalid controls and no form error alert.",
      "suggestedFix": "Make intent explicit, validate after interaction, show a clear inline error, set aria-invalid, and announce errors in a dedicated live region.",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "confidence": "high",
      "artifacts": [
        "evidence/article-forms.json",
        "evidence/article-form-invalid.json"
      ],
      "effort": "small",
      "pathId": "article",
      "url": "https://www.mlb.com/news/mlb-trade-deadline-candidates-with-rising-stock"
    },
    {
      "id": "F22",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "summary": "Many images are materially oversized for their rendered slots.",
      "evidence": "The image primitive marked 70 of 100 homepage images oversized; HAR transferred 6.92MB across 205 image requests despite modern formats.",
      "suggestedFix": "Generate tighter responsive breakpoints, retain srcset/sizes, reserve dimensions, and avoid fetching offscreen variants before needed.",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "confidence": "high",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    },
    {
      "id": "F23",
      "severity": "high",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "summary": "The homepage has a very large steady-state heap footprint.",
      "evidence": "After GC, the baseline heap summary contained 2,578,233 nodes and 159.7MB self size; the repeated-menu run contained 2,587,441 nodes and 163.7MB.",
      "suggestedFix": "Profile the largest native/code/object populations, reduce initialized widgets and vendor runtimes, and lazy-mount below-fold modules.",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "confidence": "high",
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post-menu10.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://www.mlb.com/"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Gate and consolidate third-party tracking until explicit consent",
      "priority": 1,
      "findingIds": [
        "F18",
        "F03"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut initial route JS, image, request and main-thread budgets",
      "priority": 2,
      "findingIds": [
        "F06",
        "F07",
        "F08",
        "F22",
        "F23"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Prioritize the LCP resource and remove blocking delivery chains",
      "priority": 3,
      "findingIds": [
        "F06",
        "F08"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Repair accessible names, ARIA structure, headings, contrast and zoom",
      "priority": 4,
      "findingIds": [
        "F05",
        "F09",
        "F10",
        "F11",
        "F12"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Deploy CSP, Permissions-Policy and secure cookie defaults",
      "priority": 5,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Make consent compact, balanced and non-obscuring",
      "priority": 6,
      "findingIds": [
        "F03",
        "F18"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Fix hydration/runtime errors, deprecations and BFCache blockers",
      "priority": 7,
      "findingIds": [
        "F13",
        "F15"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Add dimensions and right-sized responsive image variants",
      "priority": 8,
      "findingIds": [
        "F14",
        "F22"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Add article JSON-LD and improve localized logical layout",
      "priority": 9,
      "findingIds": [
        "F16",
        "F20"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add humane newsletter validation/autofill and passkey entry",
      "priority": 10,
      "findingIds": [
        "F19",
        "F21"
      ],
      "guidanceId": "forms",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 9,
    "auditPasses": 1
  },
  "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": "matchMedia/computed-style probe plus dark screenshot",
      "evidence": "Dark emulation left color-scheme normal and body light; screenshot did not retint.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F01"
      ],
      "artifacts": [
        "evidence/home-preferences.json",
        "evidence/home-mobile-dark.png"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Emulated-media animation probe",
      "evidence": "Under prefers-reduced-motion: reduce, getAnimations() returned no active animations and no reduced-motion CSS was needed for the settled state.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-preferences.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Forced-colors screenshot and focus-style probe",
      "evidence": "Forced-colors screenshot retained visible navigation, score text, controls and consent actions; focused skip control had a dual-ring box shadow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-forced-colors.png",
        "evidence/home-contrast-focus.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered CSS feature inspection and transition video",
      "evidence": "No view-transition usage was found in rendered source; route changes remain document swaps.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F02"
      ],
      "artifacts": [
        "evidence/css-feature-counts.txt",
        "evidence/home-menu-transition.mp4"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No parallax, scrollytelling, or scroll-linked reveal interaction was observed on the representative templates, so there is no scroll animation implementation to assess.",
      "reason": "No parallax, scrollytelling, or scroll-linked reveal interaction was observed on the representative templates, so there is no scroll animation implementation to assess."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "CSS feature inspection plus mobile screenshots",
      "evidence": "Rendered CSS contains scroll-snap and overscroll-behavior, and horizontal score navigation retains native scrolling controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/css-feature-counts.txt",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Mobile screenshot and rendered CSS inspection",
      "evidence": "On the long homepage, static promotional/nav/score chrome consumes substantial initial space and no scroll-state query was found.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F04"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/css-feature-counts.txt"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No tooltip or edge-sensitive anchored popover was present in the representative first-load and primary-flow states; the main overlay is a modal consent surface.",
      "reason": "No tooltip or edge-sensitive anchored popover was present in the representative first-load and primary-flow states; the main overlay is a modal consent surface."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative visual review",
      "evidence": "Active section labels, score controls, article hierarchy, and subscription plan toggle provide clear directional and current-state cues.",
      "pathIds": [
        "home",
        "scores",
        "article",
        "subscribe"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/article-mobile.png",
        "evidence/subscribe-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots on first load",
      "evidence": "Consent overlays obscure roughly one third of multiple mobile first viewports.",
      "pathIds": [
        "home",
        "standings",
        "article",
        "subscribe"
      ],
      "findingIds": [
        "F03"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/standings-mobile.png",
        "evidence/article-mobile.png",
        "evidence/subscribe-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "pass",
      "confidence": "high",
      "method": "DOM semantics probe and screenshots",
      "evidence": "The consent implementation exposes DIALOG and role=dialog/aria-modal surfaces with visible close/settings controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-audit-probe.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Mobile first-viewport review",
      "evidence": "Promotional banner, global nav and score rail delay the lead content on narrow home view.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F04"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "360×800 layout metrics",
      "evidence": "All five tested content templates reported scrollWidth=clientWidth=360, viewport meta present, and zero horizontal overflow.",
      "pathIds": [
        "home",
        "scores",
        "standings",
        "stats",
        "article"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/scores-layout-mobile.json",
        "evidence/standings-layout-mobile.json",
        "evidence/stats-layout-mobile.json",
        "evidence/article-layout-mobile.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "Rendered CSS inspection and mobile screenshots",
      "evidence": "Rendered CSS contained @container/container-type usage and components visibly reorganized into narrow cards/tables.",
      "pathIds": [
        "home",
        "scores",
        "stats"
      ],
      "artifacts": [
        "evidence/css-feature-counts.txt",
        "evidence/scores-mobile.png",
        "evidence/stats-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Focus computed-style probe plus Lighthouse target-size audit",
      "evidence": "Visible keyboard focus is present, but Lighthouse target-size failed on the homepage.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F05"
      ],
      "artifacts": [
        "evidence/home-contrast-focus.json",
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "First-viewport task review",
      "evidence": "Scores/news purpose is clear, but first-visit consent obscures the next useful content/action on primary mobile templates.",
      "pathIds": [
        "home",
        "article",
        "subscribe"
      ],
      "findingIds": [
        "F03"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-mobile.png",
        "evidence/subscribe-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative journey walkthrough without transaction side effects",
      "evidence": "Scores expose preview/tickets/story actions, the article content renders, and subscription pricing/BUY NOW/cancellation terms are visible without dead ends before purchase.",
      "pathIds": [
        "scores",
        "article",
        "subscribe"
      ],
      "artifacts": [
        "evidence/scores-mobile.png",
        "evidence/article-mobile.png",
        "evidence/subscribe-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Invalid-route screenshot and DOM probe",
      "evidence": "The deliberate invalid route renders a clear 404 heading, retry guidance and Customer Support link rather than a blank shell.",
      "pathIds": [
        "error-state"
      ],
      "artifacts": [
        "evidence/404-mobile.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse mobile audits and DevTools trace summary",
      "evidence": "Lighthouse home LCP 32.1s/FCP 6.7s/TBT 1.73s and article LCP 21.8s; trace LCP 17.6s.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F06"
      ],
      "artifacts": [
        "evidence/home-lighthouse.json",
        "evidence/article-lighthouse.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Buffered layout-shift observers at 360×800",
      "evidence": "Observed CLS remained below 0.1 on all five templates: home 0.077, article 0.040, stats 0.019, standings 0.017, scores 0.001.",
      "pathIds": [
        "home",
        "scores",
        "standings",
        "stats",
        "article"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/article-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Trace summary and long-task observer",
      "evidence": "Trace found seven long tasks and 649ms TBT; layout observer caught a 1,516ms homepage task.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary confirmed against rendered DOM resource structure",
      "evidence": "505 requests/15.24MB with multiple parser-inserted VeryHigh styles and large script/image chains.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F08"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "HAR resource totals plus Lighthouse diagnostics",
      "evidence": "128 scripts transferred 7.13MB and Lighthouse reported unused JS/CSS opportunities.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F08"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility node audits",
      "evidence": "Lighthouse found invalid ARIA, unnamed links/images, label-name mismatch and article images without alt.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F09"
      ],
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse contrast audit with node-level ratios",
      "evidence": "Measured failures include 3.54:1 score records, 2.87:1 signup text and 4.01:1 consent links.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F10"
      ],
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Heading/landmark probe and Lighthouse structural audits",
      "evidence": "Homepage has no h1; article heading/list audits failed; tab panels have prohibited ARIA.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F11"
      ],
      "artifacts": [
        "evidence/home-audit-probe.json",
        "evidence/article-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Visual text review plus mobile layout metrics",
      "evidence": "Representative mobile screenshots show readable line lengths, unclipped headlines and clear data alignment; no horizontal overflow was measured.",
      "pathIds": [
        "home",
        "scores",
        "article"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/scores-mobile.png",
        "evidence/article-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse viewport/target audits plus layout metrics",
      "evidence": "Article restricts user scaling and homepage has undersized targets; mobile layout itself reflows without horizontal overflow.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F12"
      ],
      "artifacts": [
        "evidence/article-lighthouse.json",
        "evidence/home-lighthouse.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse console event audit",
      "evidence": "Console contains login, CORS, MIME, invalid-date and React hydration errors.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F13"
      ],
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM document probe, image primitive and Lighthouse asset audit",
      "evidence": "Doctype/UTF-8 are valid, but 31 images lack dimensions, 70 are oversized and aspect-ratio audit failed.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F14"
      ],
      "artifacts": [
        "evidence/home-audit-probe.json",
        "evidence/home-images.json",
        "evidence/home-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices diagnostics",
      "evidence": "Deprecated unload/Topics/Shared Storage APIs, BFCache blockers and inspector issues were reported.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F15"
      ],
      "artifacts": [
        "evidence/home-lighthouse-failures.json",
        "evidence/article-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Raw HTML/rendered DOM discoverability comparison",
      "evidence": "All discoverability captures reported title and meta description present in raw HTML; home metadata is descriptive.",
      "pathIds": [
        "home",
        "scores",
        "standings",
        "stats",
        "article"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse SEO/viewport audits plus robots and DOM probes",
      "evidence": "Links are real hrefs and robots permits audited routes, but article viewport prevents normal scaling and Lighthouse found non-descriptive link text.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F12"
      ],
      "artifacts": [
        "evidence/article-lighthouse.json",
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "HTTP/raw HTML/DOM metadata and robots/sitemap inspection",
      "evidence": "Audited routes returned 200, canonical metadata exists, robots permits them, sitemap declarations are published, and en/es hreflang is present.",
      "pathIds": [
        "home",
        "article",
        "es-home"
      ],
      "artifacts": [
        "evidence/home-recon.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml",
        "evidence/es-home-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered metadata probe and Lighthouse SEO review",
      "evidence": "The editorial article has Open Graph metadata but no JSON-LD Article/NewsArticle block.",
      "pathIds": [
        "article"
      ],
      "findingIds": [
        "F16"
      ],
      "artifacts": [
        "evidence/article-lighthouse.json",
        "evidence/home-audit-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers and cookie primitives",
      "evidence": "HTTPS/HSTS/nosniff/frame protection are present, but CSP and Permissions-Policy are absent and 52 cookies were flagged insecure.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F17"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Tracker, HAR, cookie and first-load visual evidence",
      "evidence": "80 third-party origins, 17 known tracker hosts, 495 third-party requests and 15.01MB third-party transfer occurred during undecided consent.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "First-load observation and login entry screenshot",
      "evidence": "No permission prompt fired on load, but the login entry offers email continuation without a passkey option.",
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F19"
      ],
      "artifacts": [
        "evidence/login-mobile.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Security header inspection",
      "evidence": "HSTS and X-Frame-Options exist, but CSP/frame-ancestors via CSP and Permissions-Policy are absent; Referrer-Policy is only no-referrer-when-downgrade.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F17"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability raw-vs-rendered comparison and crawler screenshots",
      "evidence": "All five raw responses contain meaningful content and are not JS shells; no-JS coverage ranged 46–80%, including article text and standings/scores data.",
      "pathIds": [
        "home",
        "scores",
        "standings",
        "stats",
        "article"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/scores-discoverability.json",
        "evidence/standings-discoverability.json",
        "evidence/stats-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshots and console diagnostics",
      "evidence": "The consent overlay blocks content and runtime logs include hydration/date/login failures, reducing robustness.",
      "pathIds": [
        "home",
        "article"
      ],
      "findingIds": [
        "F03",
        "F13"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/article-lighthouse-failures.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "MLB.com is a live scores/news/streaming service whose core value depends on current network data; no project intent declares the website itself an offline installable app, and a separate official app is promoted.",
      "reason": "MLB.com is a live scores/news/streaming service whose core value depends on current network data; no project intent declares the website itself an offline installable app, and a separate official app is promoted."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Invalid-route visual and DOM probe",
      "evidence": "A deliberate 404 route provides a visible error, retry guidance and Customer Support recovery link.",
      "pathIds": [
        "error-state"
      ],
      "artifacts": [
        "evidence/404-mobile.png",
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Localized DOM/CSS probe and screenshot",
      "evidence": "Spanish lang and hreflang are correct, but CSS inspection found 429 physical-direction rules and only 4 logical-property rules.",
      "pathIds": [
        "es-home"
      ],
      "findingIds": [
        "F20"
      ],
      "artifacts": [
        "evidence/es-home-probe.json",
        "evidence/es-home-mobile.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Localized rendered-content probe",
      "evidence": "The Spanish route localizes navigation and content, preserves explicit date/time labels, and exposes en/es alternates.",
      "pathIds": [
        "es-home"
      ],
      "artifacts": [
        "evidence/es-home-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "high",
      "method": "Localized rendered-content and subscription state probe",
      "evidence": "Game times are explicitly labeled ET rather than presented as ambiguous local times; source data includes named venue time-zone identifiers.",
      "pathIds": [
        "es-home",
        "subscribe"
      ],
      "artifacts": [
        "evidence/es-home-probe.json",
        "evidence/subscribe-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Consent screenshots plus tracker/cookie evidence",
      "evidence": "The first-layer consent panel presents Accept & Continue and settings but no equally direct reject action, while tracker traffic/cookies already occur.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-trackers.json",
        "evidence/home-cookies.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "DOM form inspection and invalid-submit probe",
      "evidence": "Submitting the empty newsletter form produced no invalid field and no visible/announced form error.",
      "pathIds": [
        "article"
      ],
      "findingIds": [
        "F21"
      ],
      "artifacts": [
        "evidence/article-forms.json",
        "evidence/article-form-invalid.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Article form DOM inspection",
      "evidence": "Newsletter email controls have an accessible aria-label but no autocomplete token and are not marked required.",
      "pathIds": [
        "article"
      ],
      "findingIds": [
        "F21"
      ],
      "artifacts": [
        "evidence/article-forms.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Subscription surface visual and text walkthrough without purchase",
      "evidence": "Subscription page clearly shows $94.99/season and $59.99/year, renewal dates, blackout terms, BUY NOW actions and online/email cancellation terms.",
      "pathIds": [
        "subscribe"
      ],
      "artifacts": [
        "evidence/subscribe-mobile.png",
        "evidence/subscribe-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Image primitive and HAR resource totals",
      "evidence": "70/100 homepage images are oversized and image transfer totals 6.92MB, despite all inspected formats being modern.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F22"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR and tracker primitives",
      "evidence": "505 requests, 128 scripts and extensive pre-consent analytics/ad work are disproportionate to first-view content.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18",
        "F08"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, tracker and DOM media probe",
      "evidence": "495 third-party requests and 15.01MB third-party transfer dominate the load; one video is autoplaying muted on home.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/home-audit-probe.json"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No declared intent indicates MLB.com currently wants to expose transactional WebMCP/agentic tools; public content remains available as SSR HTML, so this emerging capability is treated as an opportunity rather than a failure.",
      "reason": "No declared intent indicates MLB.com currently wants to expose transactional WebMCP/agentic tools; public content remains available as SSR HTML, so this emerging capability is treated as an opportunity rather than a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "No user task in the audited news, scores, stats, subscription or localized surfaces requires on-device language-model or summarizer inference; absence is not a quality failure.",
      "reason": "No user task in the audited news, scores, stats, subscription or localized surfaces requires on-device language-model or summarizer inference; absence is not a quality failure."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline and post-interaction heap summary comparison",
      "evidence": "After 10 menu open/close cycles, GC-normalized heap changed from 159.7MB/2,578,233 nodes to 163.7MB/2,587,441 nodes; top constructors remained broadly stable, with no clear unbounded interaction leak in this bounded run.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post-menu10.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "high",
      "method": "Single-state heap summary and constructor distribution",
      "evidence": "GC-normalized baseline is 159.7MB self size with 2.58M nodes, disproportionate for a content homepage.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F23"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Before/after heap constructor comparison",
      "evidence": "No Detached* constructor entered the top retained constructor list after repeated menu interaction; Promise/Map/Set populations remained near baseline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-heap-baseline.json",
        "evidence/home-heap-post-menu10.json"
      ]
    }
  ],
  "agent": "pi",
  "runId": "2026-07-21T17-39-00-996Z"
}
