{
  "url": "https://sp.oddspark.com/",
  "auditedAt": "2026-07-22T12:09:45.463Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of six representative public paths. Authenticated betting, deposit, cancellation and post-registration form submission were not covered because no account or financial transaction was used.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered multi-page application with legacy Java/JSP-style routes and mixed modern/legacy templates",
    "notes": "Japanese mobile-oriented wagering and race-information service. Representative set covers global home, sport landing, race list, article, registration entry and 404 recovery. Not covered: authenticated betting/deposit/account flows, destructive or financial actions, all sport variants and every campaign page because they either require credentials/risk real transactions or duplicate sampled templates."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "axe-core",
    "curl robots/sitemap",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "css",
    "fluid-scaling",
    "performance",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "security",
    "privacy",
    "html",
    "improve-text-layout-and-legibility",
    "defer-rendering-heavy-content"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "404 mobile.png",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe.json",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-crawler.png",
      "caption": "article discoverability crawler.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-discoverability-rendered.png",
      "caption": "article discoverability rendered.png",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/article-discoverability.json",
      "caption": "article discoverability.json",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/article-dom.json",
      "caption": "article dom.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/article-mobile.png",
      "caption": "article mobile.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/axe-home.json",
      "caption": "axe home.json",
      "findingIds": [
        "F02",
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/axe-register.json",
      "caption": "axe register.json",
      "findingIds": [
        "F02",
        "F11",
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance-cache.json",
      "caption": "guidance cache.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/accessibility.md",
      "caption": "guides/accessibility.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/css.md",
      "caption": "guides/css.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/dark-mode.md",
      "caption": "guides/dark mode.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/defer-rendering-heavy-content.md",
      "caption": "guides/defer rendering heavy content.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/fluid-scaling.md",
      "caption": "guides/fluid scaling.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/html.md",
      "caption": "guides/html.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/identify-heavy-scripts.md",
      "caption": "guides/identify heavy scripts.md",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/guides/improve-text-layout-and-legibility.md",
      "caption": "guides/improve text layout and legibility.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/optimize-image-priority.md",
      "caption": "guides/optimize image priority.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/performance.md",
      "caption": "guides/performance.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/privacy.md",
      "caption": "guides/privacy.md",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guides/security.md",
      "caption": "guides/security.md",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline.heapsnapshot",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-interaction.heapsnapshot",
      "caption": "heap post interaction.heapsnapshot",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.heapsnapshot",
      "caption": "heap post.heapsnapshot",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies.json",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark-reduced.png",
      "caption": "home dark reduced.png",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop.png",
      "findingIds": [
        "F04",
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered.png",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability.json",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom.json",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-forced-colors.png",
      "caption": "home forced colors.png",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers.json",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images.json",
      "findingIds": [
        "F04",
        "F08",
        "F09",
        "F11",
        "F25"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-desktop.json",
      "caption": "home layout desktop.json",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "home layout mobile.json",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets.json",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary.json",
      "findingIds": [
        "F09",
        "F20",
        "F25"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary.json",
      "findingIds": [
        "F07",
        "F10"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace.json",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers.json",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home.har",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/interaction-probe.json",
      "caption": "interaction probe.json",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/keiba-dom.json",
      "caption": "keiba dom.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/keiba-mobile.png",
      "caption": "keiba mobile.png",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/layout-0b6ace27.json",
      "caption": "layout 0b6ace27.json",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/layout-3cfe8d23.json",
      "caption": "layout 3cfe8d23.json",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/layout-deef2fc3.json",
      "caption": "layout deef2fc3.json",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/layout-ea8ef37c.json",
      "caption": "layout ea8ef37c.json",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/lighthouse-home-summary.json",
      "caption": "lighthouse home summary.json",
      "findingIds": [
        "F07",
        "F15"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home.json",
      "findingIds": [
        "F10",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/probe-article.json",
      "caption": "probe article.json",
      "findingIds": [
        "F14",
        "F16",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/probe-home.json",
      "caption": "probe home.json",
      "findingIds": [
        "F03",
        "F13",
        "F14",
        "F16",
        "F17",
        "F18",
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/probe-keiba.json",
      "caption": "probe keiba.json",
      "findingIds": [
        "F16",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/probe-race.json",
      "caption": "probe race.json",
      "findingIds": [
        "F18",
        "F23",
        "F24"
      ]
    },
    {
      "type": "other",
      "path": "evidence/probe-register.json",
      "caption": "probe register.json",
      "findingIds": [
        "F03",
        "F05",
        "F22"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/race-dom.json",
      "caption": "race dom.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/race-mobile.png",
      "caption": "race mobile.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon.json",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/register-click-state.json",
      "caption": "register click state.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/register-dark.png",
      "caption": "register dark.png",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/register-dom.json",
      "caption": "register dom.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/register-mobile.png",
      "caption": "register mobile.png",
      "findingIds": [
        "F05",
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/register-step2-probe.json",
      "caption": "register step2 probe.json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/register-step2.png",
      "caption": "register step2.png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers.txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/site-discovery.json",
      "caption": "site discovery.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap-headers.txt",
      "caption": "sitemap headers.txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap.xml",
      "findingIds": []
    }
  ],
  "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": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The dark/reduced-motion screenshot is visually identical to the light rendering, and the rendered CSS probe found no prefers-color-scheme or color-scheme declaration on the main templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Under prefers-reduced-motion: reduce the homepage reported no active animations at idle; no essential content depended on motion.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The CSS probe found no prefers-contrast or forced-colors treatment; axe found 18 color-contrast failures on the homepage and 3 on registration.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/home-forced-colors.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Across the homepage, listing, race, article and registration probes, no authored View Transition treatment was found and navigation is full-page/instant.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-register.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "No authored scroll-timeline or main-thread scroll animation was observed; layout remained usable during scrolling without animation-dependent content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "The campaign carousel CSS exposes scroll-snap behavior and touch-sized paging, while core tasks also have direct links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Long templates retain clear top navigation and provide a labelled back-to-top control; no content was hidden by scroll chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative public paths.",
      "evidence": "No authored tooltip, menu or popover overlay requiring anchor positioning was present on the sampled public templates; the chat UI is a third-party fixed iframe.",
      "reason": "No authored tooltip, menu or popover overlay requiring anchor positioning was present on the sampled public templates; the chat UI is a third-party fixed iframe."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Race cards consistently present race number, status and aligned result/details actions; registration presents two explicit next choices.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "No first-load modal or full-screen interstitial appeared across five representative templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "The sampled pages use native details elements for expandable section content and showed no custom first-party dialog overlay.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The homepage and horse-racing screenshots devote the first several viewports to registration and rotating campaign artwork before race/task information; 61 images and a 3,988px mobile page reinforce the density.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/keiba-mobile.png",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "All five representative mobile layouts reported 390px scrollWidth for a 390px viewport; desktop also had zero horizontal overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/layout-0b6ace27.json",
        "evidence/layout-3cfe8d23.json",
        "evidence/layout-deef2fc3.json",
        "evidence/layout-ea8ef37c.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "The registration template changes grids and button constraints at 768/1024px, and all sampled components fit the narrow viewport without clipping.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The active-element probe focused “口座振替をして会員登録” and computed outline: none with no box-shadow, while the homepage anchor retained a browser outline.",
      "pathIds": [
        "register"
      ],
      "artifacts": [
        "evidence/probe-register.json",
        "evidence/register-mobile.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Screenshots show clear sport tabs, live race status/actions, article title and two labelled registration choices.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Activating the primary registration choice revealed bank-registration options; race-list cards expose results, entries, odds and video directly.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The invalid-path probe showed a clear Japanese error but every recovery link targets http://m.oddspark.com rather than the current HTTPS site, and there is no h1.",
      "pathIds": [
        "notfound"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-mobile.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Lighthouse measured LCP 10,526ms (performance score 0.57); the independent trace measured LCP 10,346ms and FCP 7,338ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Layout observation measured CLS 0.111 mobile and 0.166 desktop; Lighthouse corroborated CLS 0.118. The image audit found 39 images without dimensions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-layout-desktop.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Lighthouse measured 327.5ms TBT, 2.91s main-thread work, 1.74s boot-up time and about 826KB potential unused JavaScript savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "HAR recorded 146 requests and 6.40MB transferred, including 4.21MB images and 2.04MB scripts. The image audit found 53 legacy-format images, 30 without srcset and 19 below-fold images not lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Lighthouse measured 327.5ms TBT, 2.91s main-thread work, 1.74s boot-up time and about 826KB potential unused JavaScript savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "axe found critical ARIA parent errors, invalid roles, four unnamed homepage links, an untitled chat iframe, and an unnamed registration link; the image probe also found 17 images without alt text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "axe identified 18 homepage and 3 registration contrast violations, including section headings, race status text and primary registration controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "axe found no main landmark and 48 homepage regions outside landmarks. Probes showed duplicate h1 elements and many empty h3 elements; registration also lacks a main landmark. The active-element probe focused “口座振替をして会員登録” and computed outline: none with no box-shadow, while the homepage anchor retained a browser outline.",
      "pathIds": [
        "home",
        "register"
      ],
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/probe-home.json",
        "evidence/probe-register.json",
        "evidence/register-mobile.png"
      ],
      "findingIds": [
        "F13",
        "F05"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Article and registration screenshots use readable Japanese text sizing, spacing and strong heading hierarchy in the narrow viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The homepage, section, race and article viewport meta use user-scalable=no and maximum-scale=1; axe rates the homepage and registration instance critical.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-article.json",
        "evidence/axe-home.json",
        "evidence/axe-register.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Lighthouse captured a Yahoo analytics fetch blocked by CORS plus ERR_FAILED during homepage load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Layout observation measured CLS 0.111 mobile and 0.166 desktop; Lighthouse corroborated CLS 0.118. The image audit found 39 images without dimensions. axe found critical ARIA parent errors, invalid roles, four unnamed homepage links, an untitled chat iframe, and an unnamed registration link; the image probe also found 17 images without alt text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-layout-desktop.json",
        "evidence/home-images.json",
        "evidence/axe-home.json",
        "evidence/axe-register.json"
      ],
      "findingIds": [
        "F08",
        "F11"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The homepage, section, race and article viewport meta use user-scalable=no and maximum-scale=1; axe rates the homepage and registration instance critical. The homepage probe found JavaScript URLs and Lighthouse crawlable-anchors failed; examples include menu, login, “all” and voting controls represented as javascript: links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-article.json",
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/recon.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F14",
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "Rendered probes found no meta description on the homepage, horse-racing landing, race list or service notice, despite useful titles and crawlable content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-keiba.json",
        "evidence/probe-article.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The homepage probe found JavaScript URLs and Lighthouse crawlable-anchors failed; examples include menu, login, “all” and voting controls represented as javascript: links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/lighthouse-home.json",
        "evidence/probe-home.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Sampled public pages return 200, declare canonical URLs, and robots.txt points to section-specific sitemap URLs; the registration page intentionally declares noindex.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The homepage, section, race and article probes found zero JSON-LD and no Open Graph tags; registration is the only sampled surface with partial OG metadata.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-race.json",
        "evidence/probe-article.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The headers primitive found no CSP, HSTS, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy or Permissions-Policy. HTTPS itself is present. The cookie audit found 20 cookies, 20 counted insecure; numerous analytics/identifier cookies lack Secure, use SameSite=None and persist for 390–400 days. Session cookies were HttpOnly but still SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "findingIds": [
        "F19",
        "F21"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The tracker capture observed 35 third-party origins and known Google Tag Manager, Facebook and DoubleClick trackers; HAR recorded 146 requests. No consent surface appeared in the captured first viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The public login/registration surfaces showed conventional login/registration controls but no WebAuthn/passkey capability or contextual credential flow.",
      "pathIds": [
        "register"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-register.json",
        "evidence/register-mobile.png"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The headers primitive found no CSP, HSTS, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy or Permissions-Policy. HTTPS itself is present. The cookie audit found 20 cookies, 20 counted insecure; numerous analytics/identifier cookies lack Secure, use SameSite=None and persist for 390–400 days. Session cookies were HttpOnly but still SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "findingIds": [
        "F19",
        "F21"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Discoverability captures showed 92% homepage and 100% article content present in raw HTML, with non-blank crawler screenshots.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/article-discoverability.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Native details and direct links preserve core section/race navigation; repeated menu activation did not break the page state.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "All probes found no manifest, no controlling service worker and no installability surface, although the site provides time-sensitive but reusable race/content pages.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-race.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The invalid-path probe showed a clear Japanese error but every recovery link targets http://m.oddspark.com rather than the current HTTPS site, and there is no h1.",
      "pathIds": [
        "notfound"
      ],
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-mobile.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The homepage and horse-racing landing probes returned an empty html lang; race, article and registration templates correctly use lang=ja.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-keiba.json",
        "evidence/probe-race.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Sampled race dates, currency and Japanese labels render in locally understandable Japanese formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Race dates and times are explicitly labelled in the Japanese event context and remained internally consistent in the sampled day listing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "The sampled registration entry presents equally legible “with bank transfer” and “without/after registration” choices and states membership costs without preselection.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative public paths.",
      "evidence": "No inline user-input form was exposed in the sampled registration entry state; there was no valid invalid-input submission to exercise.",
      "reason": "No inline user-input form was exposed in the sampled registration entry state; there was no valid invalid-input submission to exercise."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative public paths.",
      "evidence": "No text/payment/sign-in fields were exposed in the sampled public registration entry state, so autocomplete assistance was not applicable to this state.",
      "reason": "No text/payment/sign-in fields were exposed in the sampled public registration entry state, so autocomplete assistance was not applicable to this state."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "Registration entry clearly explains account funding options and offers a non-bank-transfer path; no purchase was made and no forced continuity appeared.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/probe-home.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The image audit found no modern-format images among 61 sampled, 53 legacy images, 30 missing responsive sources, 19 below-fold images loaded eagerly and 5 oversized assets; images transfer 4.21MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The tracker capture observed 35 third-party origins and known Google Tag Manager, Facebook and DoubleClick trackers; HAR recorded 146 requests. No consent surface appeared in the captured first viewport.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Active visual, DOM, layout, network, Lighthouse or axe evidence as referenced.",
      "evidence": "The tracker capture observed 35 third-party origins and known Google Tag Manager, Facebook and DoubleClick trackers; HAR recorded 146 requests. No consent surface appeared in the captured first viewport. The image audit found no modern-format images among 61 sampled, 53 legacy images, 30 missing responsive sources, 19 below-fold images loaded eagerly and 5 oversized assets; images transfer 4.21MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F20",
        "F25"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative public paths.",
      "evidence": "This regulated gambling site exposes high-impact financial actions and declares no safe agent-facing capability; absence of WebMCP tools is judged appropriate.",
      "reason": "This regulated gambling site exposes high-impact financial actions and declares no safe agent-facing capability; absence of WebMCP tools is judged appropriate."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement across representative public paths.",
      "evidence": "No summarisation or language-assistance feature is part of the sampled core betting/content journeys, so on-device inference is not applicable.",
      "reason": "No summarisation or language-assistance feature is part of the sampled core betting/content journeys, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "After 20 repeated menu activations, heap self-size was 40.62MB versus a 39.41MB baseline (about 3% growth) and the page remained functional; no unbounded growth was established.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-interaction.heapsnapshot",
        "evidence/interaction-probe.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "The homepage heap summary reported 39.41MB baseline self-size for an image- and third-party-heavy page; large but bounded in the captured state.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-interaction.heapsnapshot",
        "evidence/interaction-probe.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative screenshot, DOM/CSS inspection and active probe.",
      "evidence": "After repeated menu toggles DOM remained at 1,435 elements and heap growth was modest; no accumulating interaction failure or detached-node signal was observed in the available summaries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-interaction.heapsnapshot",
        "evidence/interaction-probe.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08",
        "F10",
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12",
        "F13",
        "F05",
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F08",
        "F11",
        "F14",
        "F17"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F21",
        "F20",
        "F22"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F23",
        "F06"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F25",
        "F20"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "This regulated gambling site exposes high-impact financial actions and declares no safe agent-facing capability; absence of WebMCP tools is judged appropriate."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary betting/navigation hub; represents global chrome, campaigns, live status and main calls to action.",
      "url": "https://sp.oddspark.com/",
      "conditions": [
        "390x844",
        "1280x800",
        "dark mode",
        "reduced motion",
        "forced colors",
        "keyboard focus",
        "JavaScript disabled"
      ],
      "result": "issues"
    },
    {
      "id": "keiba",
      "description": "Horse-racing section landing page; represents a sport listing/index template.",
      "url": "https://sp.oddspark.com/keiba/",
      "conditions": [
        "390x844"
      ],
      "result": "issues"
    },
    {
      "id": "race",
      "description": "Daily race list; represents transactional race information and repeated action controls.",
      "url": "https://sp.oddspark.com/keiba/SpRaceList.do?joCd=42&kaisaiBi=20260722&gamenId=S001&gamenKoumokuId=iconKeibaRaceList",
      "conditions": [
        "390x844"
      ],
      "result": "issues"
    },
    {
      "id": "article",
      "description": "Service notice article; represents public editorial/content detail pages and no-JS delivery.",
      "url": "https://sp.oddspark.com/info/2026/07/paypay-7.html",
      "conditions": [
        "390x844",
        "JavaScript disabled"
      ],
      "result": "issues"
    },
    {
      "id": "register",
      "description": "New-member registration entry; represents the primary account acquisition journey. The first choice was activated and revealed bank-registration options.",
      "url": "https://sp.oddspark.com/user/new/RegTop.do?src=51&top_sp",
      "conditions": [
        "390x844",
        "dark mode",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "notfound",
      "description": "Deliberately invalid URL; exercises HTTP failure messaging and recovery links.",
      "url": "https://sp.oddspark.com/this-does-not-exist-web-uplift",
      "conditions": [
        "390x844"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "summary": "The interface does not adapt to the user’s dark color-scheme preference.",
      "evidence": "The dark/reduced-motion screenshot is visually identical to the light rendering, and the rendered CSS probe found no prefers-color-scheme or color-scheme declaration on the main templates.",
      "suggestedFix": "Declare color-scheme and define tested dark surface, text, border and image treatments with prefers-color-scheme or light-dark().",
      "artifacts": [
        "evidence/home-dark-reduced.png",
        "evidence/home-dom.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F02",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Contrast preferences are not explicitly supported and baseline contrast already fails.",
      "evidence": "The CSS probe found no prefers-contrast or forced-colors treatment; axe found 18 color-contrast failures on the homepage and 3 on registration.",
      "suggestedFix": "Fix WCAG contrast failures first, then preserve system colors/outlines and test controls under forced-colors and prefers-contrast.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/home-forced-colors.png"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F03",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "css",
      "guidanceCategory": "css",
      "summary": "Major route and state changes are abrupt.",
      "evidence": "Across the homepage, listing, race, article and registration probes, no authored View Transition treatment was found and navigation is full-page/instant.",
      "suggestedFix": "Add restrained same-document or cross-document view transitions for meaningful route/state continuity, with reduced-motion fallbacks.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-register.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "medium"
    },
    {
      "id": "F04",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "summary": "Promotional chrome overwhelms task content on the primary entry pages.",
      "evidence": "The homepage and horse-racing screenshots devote the first several viewports to registration and rotating campaign artwork before race/task information; 61 images and a 3,988px mobile page reinforce the density.",
      "suggestedFix": "Reduce and prioritise campaigns, expose the current race/task state earlier, and defer below-fold campaign rendering.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/keiba-mobile.png",
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F05",
      "severity": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "A primary registration button has no visible keyboard focus indicator.",
      "evidence": "The active-element probe focused “口座振替をして会員登録” and computed outline: none with no box-shadow, while the homepage anchor retained a browser outline.",
      "suggestedFix": "Add a high-contrast :focus-visible indicator to every custom button/link and verify the full registration path by keyboard.",
      "artifacts": [
        "evidence/probe-register.json",
        "evidence/register-mobile.png"
      ],
      "pathId": "register",
      "url": "https://sp.oddspark.com/user/new/RegTop.do?src=51&top_sp",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F06",
      "severity": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "The 404 recovery page sends users to insecure legacy URLs.",
      "evidence": "The invalid-path probe showed a clear Japanese error but every recovery link targets http://m.oddspark.com rather than the current HTTPS site, and there is no h1.",
      "suggestedFix": "Return a proper 404 page in the current responsive shell with HTTPS recovery links, a heading, search/home actions and preserved navigation.",
      "artifacts": [
        "evidence/404-probe.json",
        "evidence/404-mobile.png"
      ],
      "pathId": "notfound",
      "url": "https://sp.oddspark.com/this-does-not-exist-web-uplift",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F07",
      "severity": "critical",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "The homepage’s Largest Contentful Paint is far outside the good range.",
      "evidence": "Lighthouse measured LCP 10,526ms (performance score 0.57); the independent trace measured LCP 10,346ms and FCP 7,338ms.",
      "suggestedFix": "Identify the LCP element, make it discoverable in initial HTML, prioritise only that asset, reduce server/critical-chain delay and retest under mobile throttling.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F08",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "The homepage shifts visibly during load.",
      "evidence": "Layout observation measured CLS 0.111 mobile and 0.166 desktop; Lighthouse corroborated CLS 0.118. The image audit found 39 images without dimensions.",
      "suggestedFix": "Reserve intrinsic image/banner space with width/height or aspect-ratio and prevent late campaign/widget insertion from moving existing content.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-layout-desktop.json",
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F09",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "The homepage ships an excessive, poorly optimised resource payload.",
      "evidence": "HAR recorded 146 requests and 6.40MB transferred, including 4.21MB images and 2.04MB scripts. The image audit found 53 legacy-format images, 30 without srcset and 19 below-fold images not lazy-loaded.",
      "suggestedFix": "Use responsive AVIF/WebP sources, lazy-load below-fold campaigns, set dimensions, consolidate requests and preserve eager/high-priority loading only for the LCP image.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F10",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "summary": "Script execution and unused code add avoidable main-thread cost.",
      "evidence": "Lighthouse measured 327.5ms TBT, 2.91s main-thread work, 1.74s boot-up time and about 826KB potential unused JavaScript savings.",
      "suggestedFix": "Remove unused tags/libraries, load non-critical dependencies conditionally, and break or schedule remaining long work.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F11",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Key controls and embedded content lack valid accessible names/roles.",
      "evidence": "axe found critical ARIA parent errors, invalid roles, four unnamed homepage links, an untitled chat iframe, and an unnamed registration link; the image probe also found 17 images without alt text.",
      "suggestedFix": "Use native elements/valid ARIA ownership, add meaningful link and iframe names, and provide purposeful alt text or empty alt for decoration.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/home-images.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F12",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Text and controls fail minimum color contrast.",
      "evidence": "axe identified 18 homepage and 3 registration contrast violations, including section headings, race status text and primary registration controls.",
      "suggestedFix": "Adjust foreground/background tokens to meet WCAG AA in every state and verify both default and forced-colors modes.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F13",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "summary": "Landmark and heading structure is inconsistent across templates.",
      "evidence": "axe found no main landmark and 48 homepage regions outside landmarks. Probes showed duplicate h1 elements and many empty h3 elements; registration also lacks a main landmark.",
      "suggestedFix": "Introduce header/nav/main/footer landmarks, one descriptive h1 per page and a logical non-empty heading hierarchy.",
      "artifacts": [
        "evidence/axe-home.json",
        "evidence/axe-register.json",
        "evidence/probe-home.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F14",
      "severity": "critical",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "summary": "Every representative template disables user zoom.",
      "evidence": "The homepage, section, race and article viewport meta use user-scalable=no and maximum-scale=1; axe rates the homepage and registration instance critical.",
      "suggestedFix": "Remove user-scalable=no and restrictive maximum-scale/minimum-scale values, then verify 200% and 400% zoom/reflow.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-article.json",
        "evidence/axe-home.json",
        "evidence/axe-register.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "trivial",
      "confidence": "high"
    },
    {
      "id": "F15",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "A third-party analytics request produces console errors.",
      "evidence": "Lighthouse captured a Yahoo analytics fetch blocked by CORS plus ERR_FAILED during homepage load.",
      "suggestedFix": "Remove or correct the failing tag/request and configure third-party telemetry so failures do not pollute runtime diagnostics.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F16",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Public pages omit meta descriptions.",
      "evidence": "Rendered probes found no meta description on the homepage, horse-racing landing, race list or service notice, despite useful titles and crawlable content.",
      "suggestedFix": "Add concise, page-specific meta descriptions to each public template.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-keiba.json",
        "evidence/probe-article.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "small",
      "confidence": "high"
    },
    {
      "id": "F17",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Important controls use non-crawlable JavaScript links.",
      "evidence": "The homepage probe found JavaScript URLs and Lighthouse crawlable-anchors failed; examples include menu, login, “all” and voting controls represented as javascript: links.",
      "suggestedFix": "Use buttons for in-page actions and real href URLs for navigation, preserving progressive enhancement and crawler-visible destinations.",
      "artifacts": [
        "evidence/recon.json",
        "evidence/lighthouse-home.json",
        "evidence/probe-home.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F18",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Public content has no structured or social metadata.",
      "evidence": "The homepage, section, race and article probes found zero JSON-LD and no Open Graph tags; registration is the only sampled surface with partial OG metadata.",
      "suggestedFix": "Add accurate Organization/WebSite and page-specific structured data plus canonical Open Graph/Twitter fields for shareable public content.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-race.json",
        "evidence/probe-article.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F19",
      "severity": "critical",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "The main document lacks baseline defensive security headers.",
      "evidence": "The headers primitive found no CSP, HSTS, X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy or Permissions-Policy. HTTPS itself is present.",
      "suggestedFix": "Deploy CSP in report-only then enforced mode, HSTS, nosniff, frame-ancestors, a restrictive referrer policy and least-privilege permissions policy.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F20",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "summary": "The homepage has a disproportionate tracking and third-party footprint.",
      "evidence": "The tracker capture observed 35 third-party origins and known Google Tag Manager, Facebook and DoubleClick trackers; HAR recorded 146 requests. No consent surface appeared in the captured first viewport.",
      "suggestedFix": "Inventory and justify each third party, remove redundant trackers, defer optional analytics until consent/context, and minimise collected identifiers and retention.",
      "artifacts": [
        "evidence/home-trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F21",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "Most cookies are sent without Secure and with permissive SameSite settings.",
      "evidence": "The cookie audit found 20 cookies, 20 counted insecure; numerous analytics/identifier cookies lack Secure, use SameSite=None and persist for 390–400 days. Session cookies were HttpOnly but still SameSite=None.",
      "suggestedFix": "Mark all HTTPS cookies Secure, use Lax/Strict unless cross-site use is necessary, shorten identifier lifetimes and keep auth/session cookies HttpOnly.",
      "artifacts": [
        "evidence/home-cookies.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "medium",
      "confidence": "high"
    },
    {
      "id": "F22",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "summary": "The sampled account entry does not expose a modern authentication option.",
      "evidence": "The public login/registration surfaces showed conventional login/registration controls but no WebAuthn/passkey capability or contextual credential flow.",
      "suggestedFix": "Offer passkeys alongside existing methods, with user-initiated registration, authentication, recovery and management flows.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-register.json",
        "evidence/register-mobile.png"
      ],
      "pathId": "register",
      "url": "https://sp.oddspark.com/user/new/RegTop.do?src=51&top_sp",
      "effort": "large",
      "confidence": "medium"
    },
    {
      "id": "F23",
      "severity": "medium",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "summary": "Public race and service content has no offline/installable support.",
      "evidence": "All probes found no manifest, no controlling service worker and no installability surface, although the site provides time-sensitive but reusable race/content pages.",
      "suggestedFix": "Add a manifest and service worker with an offline shell/fallback and cache safe public content; keep transactional betting network-required with explicit offline messaging.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-race.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    },
    {
      "id": "F24",
      "severity": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "summary": "Core landing pages omit the document language.",
      "evidence": "The homepage and horse-racing landing probes returned an empty html lang; race, article and registration templates correctly use lang=ja.",
      "suggestedFix": "Set lang=ja consistently at the template root and retain correct language changes for embedded multilingual content.",
      "artifacts": [
        "evidence/probe-home.json",
        "evidence/probe-keiba.json",
        "evidence/probe-race.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "trivial",
      "confidence": "high"
    },
    {
      "id": "F25",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "summary": "Campaign imagery is not delivered sustainably.",
      "evidence": "The image audit found no modern-format images among 61 sampled, 53 legacy images, 30 missing responsive sources, 19 below-fold images loaded eagerly and 5 oversized assets; images transfer 4.21MB.",
      "suggestedFix": "Generate AVIF/WebP variants, use picture/srcset/sizes, lazy-load below-fold media and enforce a per-template image budget.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://sp.oddspark.com/",
      "effort": "large",
      "confidence": "high"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Restore zoom, keyboard focus and accessibility semantics",
      "priority": 1,
      "findingIds": [
        "F14",
        "F05",
        "F11",
        "F12",
        "F13"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut homepage LCP, payload and campaign cost",
      "priority": 2,
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10",
        "F25"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy defensive headers and secure cookie defaults",
      "priority": 3,
      "findingIds": [
        "F19",
        "F21"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Reduce and consent-gate the tracking stack",
      "priority": 4,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Rebuild the 404 recovery surface with HTTPS links",
      "priority": 5,
      "findingIds": [
        "F06"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Prioritise task content over promotional chrome",
      "priority": 6,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Add dark/high-contrast preference support",
      "priority": 7,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Repair discoverability metadata and crawlable controls",
      "priority": 8,
      "findingIds": [
        "F16",
        "F17",
        "F18"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Set lang consistently and remove console failures",
      "priority": 9,
      "findingIds": [
        "F15",
        "F24"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add resilient public-content offline support",
      "priority": 10,
      "findingIds": [
        "F23"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Offer passkeys for account authentication",
      "priority": 11,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Add restrained route/state transitions",
      "priority": 12,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "css",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 2700,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T12-09-45-463Z"
}
