{
  "url": "https://www.primevideo.com",
  "auditedAt": "2026-07-22T14:49:53.688Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete public, unauthenticated audit across landing, listing, live schedule, sign-in, and error archetypes. Credentialed playback, purchase, cancellation, and account management were not exercised.",
  "page": {
    "appType": "hybrid",
    "framework": "React-like with server-rendered core content",
    "notes": "Root redirects to a UK non-Prime landing. Public pages are server-rendered and progressively enhanced; account authentication is hosted on amazon.co.uk."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "raw HTTP/robots/sitemap"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "forms",
    "performance",
    "html",
    "security",
    "stabilize-reactive-state",
    "translator",
    "declarative-button-actions",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Landing at 1365x768",
      "condition": "desktop",
      "findingIds": [
        "F01",
        "F02",
        "F04",
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Landing at requested 360x800",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F01",
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Landing under dark preference",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "Landing under increased contrast",
      "condition": "prefers-contrast: more",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/movie-desktop.png",
      "caption": "Movies listing with consent overlay",
      "condition": "desktop",
      "findingIds": [
        "F01",
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/livetv-desktop.png",
      "caption": "Live TV listing with consent overlay",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-desktop.png",
      "caption": "Redirected sign-in surface",
      "condition": "desktop",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-invalid.png",
      "caption": "Sign-in after empty Continue activation",
      "condition": "empty invalid submission",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "Nonexistent route recovery state",
      "condition": "404 route",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered landing DOM",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/movie-dom.json",
      "caption": "Rendered movie DOM",
      "findingIds": [
        "F05",
        "F15"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/livetv-dom.json",
      "caption": "Rendered live-TV DOM",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/signup-dom.json",
      "caption": "Rendered sign-in DOM",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-layout.json",
      "caption": "Desktop layout and CLS",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-layout-mobile.json",
      "caption": "Mobile layout and viewport metrics",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/movie-layout-mobile.json",
      "caption": "Movie mobile metrics",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/livetv-layout-mobile.json",
      "caption": "Live-TV mobile metrics",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/signup-layout-mobile.json",
      "caption": "Sign-in mobile metrics",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools load trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Compact trace timings/TBT",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Network archive",
      "findingIds": [
        "F07",
        "F11",
        "F17"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact HAR resource/third-party analysis",
      "findingIds": [
        "F07",
        "F11",
        "F17"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "Raw/rendered crawlability comparison",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "Rendered browser view",
      "condition": "JavaScript enabled",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "Crawler view",
      "condition": "JavaScript disabled",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "Lighthouse performance/a11y/best-practices/SEO",
      "findingIds": [
        "F06",
        "F07",
        "F08",
        "F09"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "Security headers",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "Cookie flags",
      "findingIds": [
        "F10"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "Third-party origins",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "Client secret scan",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Image element audit",
      "findingIds": [
        "F09",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "DOM/preferences/metadata/focus probe",
      "findingIds": [
        "F02",
        "F04",
        "F08",
        "F12",
        "F13",
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-motion-reduce.json",
      "caption": "Reduced-motion animation probe",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/movie-heap-baseline.heapsnapshot",
      "caption": "Baseline heap summary",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/movie-heap-post.heapsnapshot",
      "caption": "Heap after ten listing traversals",
      "findingIds": [
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt response",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap.xml 404 response",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/not-found-probe.json",
      "caption": "404 recovery DOM probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/signup-probe.json",
      "caption": "Sign-in field and capability probe",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/raw-home.html",
      "caption": "Raw server HTML",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "Pinned MWG catalog listing",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "Retrieved MWG guides",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance-searches.jsonl",
      "caption": "MWG semantic searches",
      "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": "Preference-emulated screenshot comparison and CSS/DOM search",
      "evidence": "Dark-emulated and default captures are identical and no preference rules were found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "getAnimations under prefers-reduced-motion:reduce",
      "evidence": "Reduced-motion emulation was active and the page exposed no running animations or auto-advance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-motion-reduce.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "prefers-contrast screenshot and CSS search",
      "evidence": "The contrast capture is identical and no contrast/forced-colors handling was found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered CSS/DOM inspection and animation probe",
      "evidence": "No View Transition CSS or active transition was detected across route archetypes.",
      "pathIds": [
        "movie"
      ],
      "artifacts": [
        "evidence/movie-dom.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "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 behavior was present on the representative public surfaces.",
      "reason": "No parallax, scrollytelling, or scroll-linked reveal behavior was present on the representative public surfaces."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "medium",
      "method": "Rendered DOM/CSS inspection and visual review",
      "evidence": "Movie/live-TV rails expose native horizontal scrolling patterns with scroll-snap/overscroll declarations rather than visible custom drag chrome.",
      "pathIds": [
        "movie",
        "livetv"
      ],
      "artifacts": [
        "evidence/movie-dom.json",
        "evidence/livetv-dom.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Scrolled-route DOM/CSS inspection",
      "evidence": "Long listing routes retain static chrome; no scroll-state query or progress/shrinking behavior was detected.",
      "pathIds": [
        "movie"
      ],
      "artifacts": [
        "evidence/movie-dom.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "medium",
      "method": "Overlay DOM inspection",
      "evidence": "Visible menus/consent UI use custom containers; no popover, anchor-name, position-anchor, or position-try primitive was found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative route screenshots and 404 walkthrough",
      "evidence": "Active Movies/Live TV tabs are strongly highlighted and the error page provides a single descriptive route home.",
      "pathIds": [
        "movie",
        "livetv",
        "not-found"
      ],
      "artifacts": [
        "evidence/movie-desktop.png",
        "evidence/livetv-desktop.png",
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Load screenshots across archetypes",
      "evidence": "Cookie overlay blocks most primary content before interaction.",
      "pathIds": [
        "home",
        "movie",
        "livetv"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/movie-desktop.png",
        "evidence/livetv-desktop.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM role/primitive probe",
      "evidence": "Blocking overlay has no dialog/popover primitive or dialog semantics.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop/mobile visual review excluding the separately reported consent interruption",
      "evidence": "Outside the consent notice, navigation is compact and content imagery dominates the landing and listing surfaces.",
      "pathIds": [
        "home",
        "movie"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/movie-desktop.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 layout metrics and screenshot",
      "evidence": "Browser uses a 980px layout viewport at 360px because viewport meta is absent.",
      "pathIds": [
        "home",
        "movie",
        "livetv",
        "signup"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Rendered CSS search across component archetypes",
      "evidence": "No @container/container-type rules were found.",
      "pathIds": [
        "home",
        "movie",
        "livetv"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/movie-dom.json",
        "evidence/livetv-dom.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "Focus computed-style probe and Lighthouse target/keyboard audits",
      "evidence": "Programmatic focus produced a visible 5px auto outline; Lighthouse found no target-size or keyboard failures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "First-viewport visual hierarchy review",
      "evidence": "The H1 says Watch on Amazon.co.uk and the primary button states Go to Amazon.co.uk to watch.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "Public conversion-flow walkthrough",
      "evidence": "The public CTA reaches the localized Amazon path and Join Prime reaches a labelled sign-in form with an explicit Create your Amazon account branch; credentialed purchase was outside public audit scope.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Invalid route walkthrough",
      "evidence": "A nonexistent route renders a specific error message and descriptive Go to Prime Video home recovery link.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse mobile throttling plus CDP trace",
      "evidence": "Lighthouse LCP is 15.7s and performance 0.55, despite an unthrottled LCP of 1.68s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Layout-shift observer on desktop/mobile",
      "evidence": "CLS was 0.0065 desktop and 0.00014 mobile with no meaningful jump.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-layout.json",
        "evidence/home-layout-mobile.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Trace long-task/TBT analysis",
      "evidence": "CDP trace found zero long tasks and 0ms TBT; Lighthouse TBT was 120ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR initiator/priority review confirmed by Lighthouse",
      "evidence": "Parser-inserted high-priority chains and 6.46s render-blocking estimate delay content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse code-coverage diagnostics and HAR",
      "evidence": "601KiB unused JS, 103KiB unused CSS and 94KiB legacy JS were reported.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility plus DOM/image primitive",
      "evidence": "Blocking overlay lacks dialog semantics and image evidence reports three missing alt values.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F02",
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse contrast audit and visual review",
      "evidence": "Lighthouse color-contrast audit passed and essential text/control boundaries remain visually distinct.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse landmark audit and focus probe",
      "evidence": "No main landmark exists, although tested focus styling is visible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop/mobile screenshots",
      "evidence": "Body and heading text use clear alignment and spacing without clipping in the rendered captures.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Viewport/360px layout metrics and Lighthouse audits",
      "evidence": "Missing viewport meta forces scaled desktop rendering and undermines predictable mobile reflow.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/signup-layout-mobile.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse Runtime/console audit",
      "evidence": "errors-in-console passed with zero items.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM, image primitive, and Lighthouse best-practices",
      "evidence": "Doctype/charset pass, but visible logos are unsized and image delivery lacks responsive/modern formats.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices inspector and legacy-code audits",
      "evidence": "Inspector issues failed and Lighthouse identifies avoidable legacy JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Raw/rendered DOM and Lighthouse SEO",
      "evidence": "Descriptive title and meta description are present in raw HTML; Lighthouse audits pass.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Raw links/robots, Lighthouse SEO, and viewport probe",
      "evidence": "Links/robots are crawlable but the required mobile viewport meta is absent.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/raw-home.html",
        "evidence/robots.txt",
        "evidence/home-layout-mobile.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Canonical/lang/robots/sitemap inspection",
      "evidence": "UK content declares en_US canonical and sitemap.xml returns 404.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/sitemap.xml"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "medium",
      "method": "Metadata DOM probe",
      "evidence": "Open Graph exists but no JSON-LD entity metadata is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers/cookies/secrets primitives",
      "evidence": "HTTPS/HSTS/nosniff pass and no secrets were found, but CSP is missing and multiple cookies have weak flags.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-secrets.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "HAR and tracker inventory before consent",
      "evidence": "83 third-party-classified requests and several event/metrics origins load before consent choice.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "medium",
      "method": "Load behavior and sign-in DOM probe",
      "evidence": "No browser permission prompt appeared on load; sign-in exposes WebAuthn-capable autocomplete and navigator.credentials support.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Security response-header inspection",
      "evidence": "HSTS and X-Frame-Options pass, but CSP, Referrer-Policy and Permissions-Policy are absent.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Raw-HTML/rendered discoverability comparison",
      "evidence": "Raw HTML is 200, contains title/H1/description, and has 100% rendered token coverage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Representative menu/listing/overlay screenshots",
      "evidence": "Navigation and overlays rendered without edge clipping on desktop archetypes and active state remained coherent.",
      "pathIds": [
        "home",
        "movie",
        "livetv"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/movie-desktop.png",
        "evidence/livetv-desktop.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement",
      "evidence": "Prime Video playback and account/catalog operations are intrinsically online; an offline-installable experience was not judged necessary for this public streaming surface.",
      "reason": "Prime Video playback and account/catalog operations are intrinsically online; an offline-installable experience was not judged necessary for this public streaming surface."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Direct nonexistent-route test",
      "evidence": "The 404 state explains the failure and offers a descriptive route to Prime Video home.",
      "pathIds": [
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered lang/canonical/content comparison",
      "evidence": "UK-localized content declares en-us and an en_US canonical, so language/index signals do not match the served locale.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "issues",
      "confidence": "medium",
      "method": "Localized public-route visual/DOM comparison",
      "evidence": "The UK experience uses en-us language/indexing signals, making locale-aware formatting and discovery ambiguous.",
      "pathIds": [
        "home",
        "livetv"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/livetv-desktop.png"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "pass",
      "confidence": "low",
      "method": "Live-TV schedule and location messaging visual review",
      "evidence": "The live schedule displays a coherent local sequence and explicitly warns when catalog location differs; no contradictory time values were observed.",
      "pathIds": [
        "livetv"
      ],
      "artifacts": [
        "evidence/livetv-desktop.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "medium",
      "method": "Commercial CTA and consent visual review",
      "evidence": "Consent choices are equal, but Join Prime omits localized price and renewal commitment adjacent to the action.",
      "pathIds": [
        "home",
        "movie"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/movie-desktop.png"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Empty sign-in submission screenshot",
      "evidence": "Activating Continue with an empty value produced no visible error or recovery message.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-invalid.png"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "medium",
      "method": "Sign-in field DOM inspection",
      "evidence": "The email/mobile field is labelled but uses autocomplete=\"webauthn\" alone rather than a username webauthn token, and empty submission lacks assistance.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-probe.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "medium",
      "method": "Join/subscription flow walkthrough",
      "evidence": "Pricing and renewal commitment are not visible before the action redirects to sign-in.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup-desktop.png"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "HAR byte analysis and image primitive",
      "evidence": "6.20MB transfer includes a 3.72MB JPEG and no modern image formats in audited img elements.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR request inventory and Lighthouse coverage",
      "evidence": "104 requests include multiple metrics/event calls while 601KiB JS and 103KiB CSS are unused.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F11",
        "F07"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR third-party/resource budget analysis",
      "evidence": "Third-party-classified delivery is 6.03MB, with 29 font requests and a multi-megabyte hero.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F17",
        "F11"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered source search and applicability judgement",
      "evidence": "No declared agent-facing transaction or WebMCP surface was found; this emerging capability was treated as an optional opportunity rather than a failure.",
      "reason": "No declared agent-facing transaction or WebMCP surface was found; this emerging capability was treated as an optional opportunity rather than a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Rendered source search and applicability judgement",
      "evidence": "No user-facing summarisation or language-model task was exposed on the audited public surfaces, so on-device inference is not applicable.",
      "reason": "No user-facing summarisation or language-model task was exposed on the audited public surfaces, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Baseline and post-interaction heap summaries after ten feed traversals",
      "evidence": "Retained self size rose 25.0MB and node count rose 385,386 after repeated traversal.",
      "pathIds": [
        "movie"
      ],
      "artifacts": [
        "evidence/movie-heap-baseline.heapsnapshot",
        "evidence/movie-heap-post.heapsnapshot"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "Heap totals proportionality review",
      "evidence": "Baseline already contains 1.14M nodes/70.5MB and post traversal 1.52M/95.5MB on a public listing.",
      "pathIds": [
        "movie"
      ],
      "artifacts": [
        "evidence/movie-heap-baseline.heapsnapshot",
        "evidence/movie-heap-post.heapsnapshot"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Constructor comparison across heap summaries",
      "evidence": "No Detached* constructor appears among the dominant constructor populations; observed growth is reported separately without asserting detached-node leakage.",
      "pathIds": [
        "movie"
      ],
      "artifacts": [
        "evidence/movie-heap-baseline.heapsnapshot",
        "evidence/movie-heap-post.heapsnapshot"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F05"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F09",
        "F08",
        "F03"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F07"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18",
        "F14"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F17",
        "F11",
        "F07"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared agent-facing transaction or WebMCP surface was found; this emerging capability was treated as an optional opportunity rather than a failure. No user-facing summarisation or language-model task was exposed on the audited public surfaces, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Root/UK non-Prime landing: entry, offer clarity, consent, global metadata/security/performance, desktop/mobile/preferences.",
      "url": "https://www.primevideo.com",
      "conditions": [
        "desktop 1365x768",
        "requested mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "JavaScript disabled crawler"
      ],
      "result": "issues"
    },
    {
      "id": "movie",
      "description": "Movies listing archetype: navigation state, media feed, consent, narrow layout, repeated scrolling/memory.",
      "url": "https://www.primevideo.com/movie",
      "conditions": [
        "desktop",
        "requested mobile 360x800",
        "ten bottom/top traversals"
      ],
      "result": "issues"
    },
    {
      "id": "livetv",
      "description": "Live TV schedule archetype: category navigation, schedule density, locale/time presentation, narrow layout.",
      "url": "https://www.primevideo.com/livetv",
      "conditions": [
        "desktop",
        "requested mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Primary public conversion/auth hand-off: sign-in form, labels/autocomplete, empty submission, mobile layout.",
      "url": "https://www.primevideo.com/signup",
      "conditions": [
        "desktop",
        "requested mobile 360x800",
        "empty Continue submission"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Network/HTTP failure recovery using a nonexistent public route.",
      "url": "https://www.primevideo.com/this-route-does-not-exist-web-uplift",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "high",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The cookie notice obscures most of the primary content on every public browse surface.",
      "evidence": "Desktop screenshots show a 398px-tall overlay covering the hero and listings; on the 360px capture it occupies the bottom quarter while the page is scaled down.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png",
        "evidence/movie-desktop.png"
      ],
      "suggestedFix": "Use a compact, non-blocking consent surface for optional cookies, retain equally prominent Accept and Decline actions, and reserve a modal only when interaction must truly stop.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The blocking cookie overlay is not exposed as a dialog primitive.",
      "evidence": "The DOM probe found no dialog element, role=dialog, or aria-modal while the visible overlay blocks and visually dominates the page.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Implement the blocking surface with <dialog>, an accessible name, controlled focus, Escape handling, and predictable focus restoration.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "severity": "high",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "Public and sign-in pages omit the viewport meta tag, so mobile browsers render a 980px layout and scale it down.",
      "evidence": "At a requested 360x800 viewport, layout evidence reports clientWidth 980, visual scale 0.367, and hasViewportMeta=false on home, movie, live TV, and sign-in.",
      "artifacts": [
        "evidence/home-layout-mobile.json",
        "evidence/movie-layout-mobile.json",
        "evidence/livetv-layout-mobile.json",
        "evidence/signup-layout-mobile.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Add <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> and verify reflow at 320-400 CSS px without disabling user zoom.",
      "effort": "small"
    },
    {
      "id": "F04",
      "severity": "medium",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The landing experience uses a fixed dark palette rather than adapting to color-scheme and contrast preferences.",
      "evidence": "Normal, prefers-color-scheme:dark, and prefers-contrast:more screenshots are pixel-identical; DOM/CSS searches found no prefers-color-scheme, prefers-contrast, or forced-colors rules.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png",
        "evidence/home-contrast.png",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Declare color-scheme and define preference-driven tokens with prefers-color-scheme plus forced-colors/prefers-contrast overrides for essential controls.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "severity": "medium",
      "confidence": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "pathId": "livetv",
      "url": "https://www.primevideo.com/livetv",
      "summary": "Responsive behavior is viewport-only; no container-query rules were found for reusable navigation, hero, or schedule components.",
      "evidence": "Rendered DOM/CSS evidence across home, movie, and live TV contains no @container or container-type declarations.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/movie-dom.json",
        "evidence/livetv-dom.json"
      ],
      "suggestedFix": "Give reusable cards, navigation groups, and schedule rows containment and adapt them with size container queries while retaining a viewport fallback.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "Cold, throttled loading is slow despite a fast unthrottled trace.",
      "evidence": "Lighthouse performance is 0.55 with FCP 10.2s, LCP 15.7s, and TTI 15.7s; the unthrottled trace corroborates low blocking work but not the network-constrained experience.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Profile the LCP request chain under mobile throttling, preload only the selected LCP asset, reduce redirects and render-blocking dependencies, and retest field-like conditions.",
      "effort": "large"
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "Large render-blocking chains and substantial unused code delay first render.",
      "evidence": "Lighthouse estimates 6.46s render-blocking savings, 601KiB unused JavaScript, 103KiB unused CSS, and 94KiB legacy JavaScript; HAR confirms parser-inserted very-high-priority stylesheets and high-priority scripts.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Split route and widget bundles, remove legacy/duplicate code, inline only critical CSS, defer non-critical scripts, and shorten the parser-blocking dependency chain.",
      "effort": "large"
    },
    {
      "id": "F08",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The page has no main landmark.",
      "evidence": "Lighthouse accessibility reports landmark-one-main as the sole failing accessibility audit, and the DOM probe found header, nav, and footer but no main element or role=main.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Wrap the unique page content in one <main> landmark and keep repeated navigation outside it.",
      "effort": "small"
    },
    {
      "id": "F09",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "Several image elements lack dimensions and responsive delivery; some rendered images have no alt text.",
      "evidence": "The images primitive reports 3/4 images without width/height, 2 oversized, no modern formats, and 3 without alt; Lighthouse independently flags the visible navigation and footer logos as unsized.",
      "artifacts": [
        "evidence/home-images.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Set intrinsic width/height, use responsive srcset/sizes and modern formats, and give meaningful images an alt value while keeping decorative images explicitly alt=\"\".",
      "effort": "small"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "Browser security policy and cookie defenses are incomplete.",
      "evidence": "Headers evidence shows no CSP, Referrer-Policy, or Permissions-Policy. Cookie evidence finds csm-hit and i18n-prefs without Secure and auth-like session-id/session-token values without HttpOnly, all SameSite=None.",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json"
      ],
      "suggestedFix": "Deploy a nonce/hash-based CSP, explicit Referrer-Policy and Permissions-Policy; mark all HTTPS cookies Secure, restrict SameSite, and make server-only session credentials HttpOnly.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "security",
      "guidanceCategory": "privacy",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The unauthenticated landing page has a broad telemetry and third-party request footprint before consent choice.",
      "evidence": "HAR records 83/104 requests and 6.03MB/6.20MB as third-party by origin classification; tracker evidence lists eight third-party origins including multiple analytics/event endpoints.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Gate optional telemetry until consent, consolidate and batch essential events, inventory each external origin, and remove calls without direct user value.",
      "effort": "large"
    },
    {
      "id": "F12",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "Locale and indexing signals conflict on the UK landing experience.",
      "evidence": "The rendered page says Amazon.co.uk and redirects UK users, but html lang is en-us and canonical points to /-/en_US/gp/video/offers; /sitemap.xml returned a branded 404.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/raw-home.html",
        "evidence/sitemap.xml"
      ],
      "suggestedFix": "Emit the actual locale in lang, point canonical to the equivalent UK locale URL, add reciprocal hreflang entries, and expose a valid sitemap URL in robots.txt.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "severity": "low",
      "confidence": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The public offer page has social tags but no structured entity metadata.",
      "evidence": "The DOM probe found three Open Graph tags and zero application/ld+json blocks on a public service/offer landing page.",
      "artifacts": [
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Add accurate JSON-LD for WebSite/Organization and applicable Offer or VideoObject entities, matching visible content and localized URLs.",
      "effort": "small"
    },
    {
      "id": "F14",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "pathId": "signup",
      "url": "https://www.primevideo.com/signup",
      "summary": "Submitting the empty sign-in form gives no visible validation or recovery message.",
      "evidence": "After activating Continue with the empty focused email field and waiting 1.5s, the screenshot remains unchanged with no visible error announcement.",
      "artifacts": [
        "evidence/signup-invalid.png",
        "evidence/signup-probe.json"
      ],
      "suggestedFix": "After interaction, identify the required value with visible, specific text, associate it with aria-describedby/aria-invalid, focus or announce the error, and preserve the entered value.",
      "effort": "small"
    },
    {
      "id": "F15",
      "severity": "low",
      "confidence": "medium",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "physics-based-easing",
      "guidanceCategory": "css",
      "pathId": "movie",
      "url": "https://www.primevideo.com/movie",
      "summary": "Route and major state changes have no detectable declarative transition treatment.",
      "evidence": "The probe reports no active animations and rendered CSS evidence contains no View Transition CSS; navigation changes are abrupt while active tabs merely swap style.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/movie-dom.json"
      ],
      "suggestedFix": "Use same-document or cross-document View Transitions for route and detail changes, with a reduced-motion fallback and motion tied to navigation direction.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "severity": "medium",
      "confidence": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "guidanceCategory": "performance",
      "pathId": "movie",
      "url": "https://www.primevideo.com/movie",
      "summary": "Repeated feed traversal retained substantially more heap and objects.",
      "evidence": "Heap summaries after ten bottom/top traversals grew from 70.5MB/1,139,190 nodes to 95.5MB/1,524,576 nodes, including Objects 73,053→191,008 and closures 55,828→83,413.",
      "artifacts": [
        "evidence/movie-heap-baseline.heapsnapshot",
        "evidence/movie-heap-post.heapsnapshot"
      ],
      "suggestedFix": "Run a baseline/target/final heap workflow with explicit GC, identify retainers for loaded cards/listeners, virtualize or evict offscreen feed data, and clean up subscriptions and timers.",
      "effort": "large"
    },
    {
      "id": "F17",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "performance",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The unauthenticated landing transfers disproportionate image and font payloads.",
      "evidence": "HAR totals 6.20MB: 3.74MB images and 1.02MB across 29 fonts; one 2880x1350 JPEG alone transfers 3.72MB. The image probe finds no modern formats or responsive source for the audited images.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-images.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Serve an AVIF/WebP responsive hero sized to the viewport, subset and consolidate fonts, lazy-load below-fold media, and enforce route-specific byte budgets.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "severity": "high",
      "confidence": "medium",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "declarative-button-actions",
      "guidanceCategory": "forms",
      "pathId": "home",
      "url": "https://www.primevideo.com",
      "summary": "The prominent Join Prime path does not disclose price or commitment before sending users into account authentication.",
      "evidence": "Home and movie screenshots show repeated Join Prime actions and subscription language without a visible price, renewal term, or trial commitment; /signup redirects directly to Amazon Sign-In.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/movie-desktop.png",
        "evidence/signup-desktop.png"
      ],
      "suggestedFix": "Place localized price, billing cadence, trial/renewal terms, and a clear cancellation route adjacent to every Join Prime action before authentication.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Restore real mobile reflow with a viewport declaration",
      "priority": 1,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Cut the critical path and unused route payload",
      "priority": 2,
      "findingIds": [
        "F06",
        "F07"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Harden security headers and session cookies",
      "priority": 3,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Optimize the hero, fonts, and third-party budget",
      "priority": 4,
      "findingIds": [
        "F11",
        "F17"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Make consent compact, semantic, and accessible",
      "priority": 5,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Disclose Prime price and renewal terms before authentication",
      "priority": 6,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "declarative-button-actions",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Investigate and bound retained feed memory",
      "priority": 7,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Add main landmark and correct image semantics/dimensions",
      "priority": 8,
      "findingIds": [
        "F08",
        "F09"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Align UK locale, canonical, hreflang, and sitemap signals",
      "priority": 9,
      "findingIds": [
        "F12",
        "F13"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Provide humane sign-in validation and autocomplete",
      "priority": 10,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Respect theme/contrast and add component responsiveness",
      "priority": 11,
      "findingIds": [
        "F04",
        "F05"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Add declarative navigation transitions",
      "priority": 12,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "physics-based-easing",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T14-49-53-688Z"
}
