{
  "url": "https://www.xnxx.tv",
  "auditedAt": "2026-07-18T01:09:12.308Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit. The requested host redirects to https://www.xnxx.com/, which is the effective audited origin.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA with jQuery/RequireJS",
    "notes": "Public adult-media catalog with an age-assurance overlay, listings, video detail, account forms, and localized variants."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "discoverability",
    "har",
    "trace",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "lighthouse",
    "heap-summary",
    "curl robots/sitemap"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "performance",
    "forms",
    "security",
    "privacy",
    "html",
    "size-aware-styling",
    "optimize-image-priority",
    "deliver-optimized-decorative-images",
    "adapt-scrollbar-to-contrast-preferences",
    "faster-spa-view-transitions",
    "scroll-position-aware-elements"
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Desktop light and emulated-dark screenshots are byte-identical (658,756-byte captures), computed colorScheme is normal, and no preference media rules were found.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "No active animations were present under prefers-reduced-motion: reduce, so there was no non-essential motion to suppress.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Emulated prefers-contrast: more retained a strong 3px yellow focus outline and legible high-contrast text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "DOM/CSS inspection found no view-transition usage; representative MPA navigation swaps instantly.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "No parallax, scrollytelling, or scroll-linked animation was present on the representative templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "reason": "No parallax, scrollytelling, or scroll-linked animation was present on the representative templates."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "No swipe, pull, carousel, or gesture-driven control was present in the audited paths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "reason": "No swipe, pull, carousel, or gesture-driven control was present in the audited paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Screenshots show long category/listing pages, while CSS inspection found no scroll-state query or progress affordance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "No tooltip, popover, or floating menu requiring edge-aware anchoring was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "reason": "No tooltip, popover, or floating menu requiring edge-aware anchoring was observed."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Search pagination exposes a clearly highlighted current page and descriptive numbered destinations.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-desktop.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Desktop and mobile screenshots show a large centered overlay covering primary content before interaction on all representative templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Overlay probe found a DIV with no role, aria-modal, accessible label, inert background, or initial focus; the DOM contains zero dialog elements.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/overlay-a11y.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "After accounting for the required age gate, listing templates devote most of the viewport to content cards rather than decorative frame chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-desktop.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Home, search, and detail layout probes at 360x800 reported 0 px horizontal overflow with a viewport meta tag.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Platform probe found zero container rules across a card-heavy layout reused at different widths.",
      "pathIds": [
        "search"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Programmatic focus produced a visible 3px yellow outline, and mobile controls are visibly large enough to target.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-focus.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "The first viewport identifies free videos, exposes search, and presents explicit age-entry actions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Listing links resolve to a detail template whose video reached readyState 4; the synthetic play call alone was browser-blocked because it was not a trusted gesture.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/detail-flow-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "The tested missing route displays a specific not-found message and a clear Back to the home page recovery link.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse measured FCP 4.3 s, LCP 7.3 s, and performance 0.65, although the direct trace under a different run measured LCP 1.32 s.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "CLS was 0 on home/detail and 0.0032 on search, all within the good range.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Trace found one 51.55 ms long task and only 1.55 ms TBT; Lighthouse TBT was 120 ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "HAR identified a VeryHigh-priority parser stylesheet and three parser scripts without async/defer; Lighthouse estimated 2.63 s render-blocking savings and 5,039 KiB cache savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse estimated 123 KiB unused CSS, 386 KiB unused JavaScript, and 52 KiB legacy JavaScript; HAR shows a 393 KiB xnxx.js plus jQuery and RequireJS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse failed button-name and link-name; the image audit found 98 of 100 images without alt text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse reported no contrast failure and screenshots show high-contrast white/yellow text on dark blue surfaces.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Recon found no h1 on home, while the overlay has no dialog role, label, inert siblings, or initial focus. Visible focus itself was strong (3px yellow auto outline).",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Desktop and mobile screenshots show readable wrapping without clipping; narrow layouts have no overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse failed meta-viewport because user-scalable=no or an equivalent maximum-scale restriction was observed in its audited response; narrow layouts otherwise had zero overflow and detail video exposed 23 subtitle tracks.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse errors-in-console table contained zero items.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Image audit found all 100 images missing width/height and srcset, 12 oversized, and all in legacy JPG/PNG formats; Lighthouse also failed unsized-images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse best-practices scored 0.96, console was clean, and account probe found no on-load permission request code.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Home, search, detail, and 404 templates expose descriptive titles; home/detail include meta descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Search probe found real href links with descriptive text; viewport metadata is present and robots.txt allows public content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Home and search probes did not return a rel=canonical URL, although robots.txt and sitemap.xml were valid and indexing was allowed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "The detail page exposes VideoObject JSON-LD and matching Open Graph title, URL, image, type, and duration.",
      "pathIds": [
        "detail"
      ],
      "artifacts": [
        "evidence/detail-flow-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Header probe found no HSTS or X-Content-Type-Options and a CSP allowing unsafe-inline and unsafe-eval.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Tracker probe found no known tracker domains and secrets scan found no exposed credentials; observed third parties were first-party CDN/redirect infrastructure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Account probe found no WebAuthn/passkey surface; sign-in email/password fields had empty autocomplete values. No permission request code was detected on load.",
      "pathIds": [
        "account"
      ],
      "artifacts": [
        "evidence/account-probe.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Headers include X-Frame-Options but omit Permissions-Policy; Referrer-Policy is the permissive no-referrer-when-downgrade default.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Raw HTML was 130 KB, not a JS shell, and preserved title/description plus 29% of rendered vocabulary without JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Representative home, listing, detail, and modal surfaces stayed within narrow viewports without clipping or overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/detail-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "The site links a web app manifest and exposes service-worker capability, appropriate for its app-like media experience.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "A representative invalid URL produced a useful not-found message and recovery link rather than a blank shell.",
      "pathIds": [
        "error-state"
      ],
      "artifacts": [
        "evidence/404-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "The document declares lang=en and exposes language selection; no bidi failure was visible in representative layouts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Audited core pages do not present locale-sensitive dates, currencies, or numeric input flows.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ],
      "reason": "Audited core pages do not present locale-sensitive dates, currencies, or numeric input flows."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "No scheduling, event, or time-zone-sensitive task exists in the audited media browsing flow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ],
      "reason": "No scheduling, event, or time-zone-sensitive task exists in the audited media browsing flow."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "The age gate states its purpose, terms link, category choices, and parental-control route plainly without confirmshaming.",
      "pathIds": [
        "account"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Account fields have visible labels and the tested 404 state uses neutral, actionable recovery language.",
      "pathIds": [
        "account"
      ],
      "artifacts": [
        "evidence/account-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Account probe found empty autocomplete on email/login and password fields, while only reset-password fields used new-password.",
      "pathIds": [
        "account"
      ],
      "artifacts": [
        "evidence/account-probe.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Account form exposes explicit terms and marketing checkboxes; no forced continuity was observed in the inspected signup surface.",
      "pathIds": [
        "account"
      ],
      "artifacts": [
        "evidence/account-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "All 100 audited images lacked srcset, all used JPG/PNG, 12 were oversized, and 89 below-fold images were not lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Trace showed only 1.55 ms total blocking time and tracker capture found no chatty known analytics.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Lighthouse transferred 5,630 KiB in its cold run; HAR transferred 1.22 MiB in a separate run, including 536 KiB script and 453 KiB images before age-gate acceptance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "This media browsing site exposes no declared agent-facing task surface; emerging WebMCP capability is not assumed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ],
      "reason": "This media browsing site exposes no declared agent-facing task surface; emerging WebMCP capability is not assumed."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "No summarisation or language-model feature is part of the representative browsing/playback task.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json"
      ],
      "reason": "No summarisation or language-model feature is part of the representative browsing/playback task."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "After ten repeated full-page scroll cycles, retained heap grew only 25,044 bytes and 346 nodes from an 18.83 MB baseline.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Baseline retained heap was 18.83 MB with 266,483 nodes, proportionate to a thumbnail-heavy listing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Representative screenshot, rendered DOM/CSS inspection, and targeted objective probe selected for this check.",
      "evidence": "Neither heap summary listed Detached constructors; repeated scrolling produced only a 0.13% retained-size delta.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02",
        "F03"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F17",
        "F16"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All checks were judged not applicable to this site and representative task."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Entry/catalog template plus age-assurance gate; covers first impression, navigation, preferences, network, accessibility, security, and performance.",
      "url": "https://www.xnxx.tv",
      "conditions": [
        "desktop 1365x900",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search/listing archetype representing paginated thumbnail results and route discovery.",
      "url": "https://www.xnxx.com/search/amateur",
      "conditions": [
        "desktop 1365x900",
        "mobile 360x800",
        "repeated scroll x10"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative video-detail and playback-readiness surface, including structured metadata and captions.",
      "url": "https://www.xnxx.com/video-3exv310/amateur_milf_fucks_and_squirts",
      "conditions": [
        "desktop 1365x900",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "account",
      "description": "Account sign-in/sign-up archetype for authentication, consent, labels, and autofill.",
      "url": "https://www.xnxx.com/account/",
      "conditions": [
        "rendered DOM probe"
      ],
      "result": "issues"
    },
    {
      "id": "error-state",
      "description": "Representative invalid route for failure messaging and recovery.",
      "url": "https://www.xnxx.com/this-route-should-not-exist-web-uplift-404",
      "conditions": [
        "desktop 1365x900"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "confidence": "high",
      "summary": "The fixed dark palette does not declare or respond to the user color-scheme preference.",
      "evidence": "Desktop light and emulated-dark screenshots are byte-identical (658,756-byte captures), computed colorScheme is normal, and no preference media rules were found.",
      "suggestedFix": "Declare color-scheme and use prefers-color-scheme or light-dark() for a preference-driven palette.",
      "effort": "small",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dark.png",
        "evidence/recon.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F02",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "confidence": "high",
      "summary": "A blocking age gate obscures every entry, listing, detail, and error page on load.",
      "evidence": "Desktop and mobile screenshots show a large centered overlay covering primary content before interaction on all representative templates.",
      "suggestedFix": "Keep age assurance proportionate, but reduce obstruction and preserve a clear, accessible route to the underlying task.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-desktop.png",
        "evidence/detail-mobile.png",
        "evidence/404.png"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F03",
      "severity": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "confidence": "high",
      "summary": "The blocking age gate is an ad-hoc div rather than a semantic modal dialog.",
      "evidence": "Overlay probe found a DIV with no role, aria-modal, accessible label, inert background, or initial focus; the DOM contains zero dialog elements.",
      "suggestedFix": "Implement the gate as a modal <dialog>, label it, move focus into it, inert the background, and restore focus on close.",
      "effort": "medium",
      "artifacts": [
        "evidence/overlay-a11y.json",
        "evidence/home-dom.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F04",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "faster-spa-view-transitions",
      "guidanceCategory": "performance",
      "confidence": "high",
      "summary": "Route and state changes provide no transition continuity.",
      "evidence": "DOM/CSS inspection found no view-transition usage; representative MPA navigation swaps instantly.",
      "suggestedFix": "Use cross-document View Transitions for same-origin listing-to-detail navigation, with reduced-motion handling.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/search-dom.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F05",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-position-aware-elements",
      "guidanceCategory": "user-experience",
      "confidence": "high",
      "summary": "Long listing chrome does not communicate scroll position or react to scroll state.",
      "evidence": "Screenshots show long category/listing pages, while CSS inspection found no scroll-state query or progress affordance.",
      "suggestedFix": "Add a lightweight scroll-state-aware header treatment or progress affordance where it helps orientation.",
      "effort": "small",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search-desktop.png",
        "evidence/platform-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F06",
      "severity": "low",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "confidence": "high",
      "summary": "Responsive behavior is viewport-wide only, with no component container adaptation.",
      "evidence": "Platform probe found zero container rules across a card-heavy layout reused at different widths.",
      "suggestedFix": "Adopt container queries for reusable thumbnail cards and controls rather than relying only on viewport breakpoints.",
      "effort": "medium",
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/home-mobile.png",
        "evidence/home-desktop.png"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F07",
      "severity": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "confidence": "high",
      "summary": "Cold-load LCP is slow.",
      "evidence": "Lighthouse measured FCP 4.3 s, LCP 7.3 s, and performance 0.65, although the direct trace under a different run measured LCP 1.32 s.",
      "suggestedFix": "Prioritize the LCP resource, remove redirect latency, and shorten blocking dependency chains; verify under throttled repeat runs.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F08",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "confidence": "high",
      "summary": "Render-blocking and cache inefficiencies delay content delivery.",
      "evidence": "HAR identified a VeryHigh-priority parser stylesheet and three parser scripts without async/defer; Lighthouse estimated 2.63 s render-blocking savings and 5,039 KiB cache savings.",
      "suggestedFix": "Inline only critical CSS, defer non-critical scripts, and apply durable immutable caching to versioned assets.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/lighthouse-summary.json",
        "evidence/home.har"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F09",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "confidence": "high",
      "summary": "The page ships substantial unused and legacy code.",
      "evidence": "Lighthouse estimated 123 KiB unused CSS, 386 KiB unused JavaScript, and 52 KiB legacy JavaScript; HAR shows a 393 KiB xnxx.js plus jQuery and RequireJS.",
      "suggestedFix": "Split by route and interaction, remove duplicate legacy dependencies, and load optional features conditionally.",
      "effort": "large",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F10",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "summary": "Interactive controls and nearly all content images lack accessible names.",
      "evidence": "Lighthouse failed button-name and link-name; the image audit found 98 of 100 images without alt text.",
      "suggestedFix": "Give icon controls discernible names and thumbnail links meaningful accessible names; use empty alt only for truly decorative images.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/images.json",
        "evidence/overlay-a11y.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F11",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "summary": "The document has weak heading/dialog structure and the modal background remains exposed to assistive technology.",
      "evidence": "Recon found no h1 on home, while the overlay has no dialog role, label, inert siblings, or initial focus. Visible focus itself was strong (3px yellow auto outline).",
      "suggestedFix": "Add one descriptive h1 per template and implement proper modal focus/inert semantics while retaining the visible focus style.",
      "effort": "medium",
      "artifacts": [
        "evidence/recon.json",
        "evidence/overlay-a11y.json",
        "evidence/preferences-focus.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F12",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "confidence": "high",
      "summary": "The viewport configuration restricts user scaling.",
      "evidence": "Lighthouse failed meta-viewport because user-scalable=no or an equivalent maximum-scale restriction was observed in its audited response; narrow layouts otherwise had zero overflow and detail video exposed 23 subtitle tracks.",
      "suggestedFix": "Remove user-scalable=no and restrictive maximum-scale values, then retest zoom/reflow and target sizing.",
      "effort": "small",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile-layout.json",
        "evidence/detail-flow-probe.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F13",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "confidence": "high",
      "summary": "Image markup is unsized and non-responsive.",
      "evidence": "Image audit found all 100 images missing width/height and srcset, 12 oversized, and all in legacy JPG/PNG formats; Lighthouse also failed unsized-images.",
      "suggestedFix": "Set intrinsic width/height or aspect-ratio and provide responsive srcset/sizes with modern formats.",
      "effort": "medium",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F14",
      "severity": "low",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "confidence": "high",
      "summary": "Canonical signals are absent on inspected home/search surfaces.",
      "evidence": "Home and search probes did not return a rel=canonical URL, although robots.txt and sitemap.xml were valid and indexing was allowed.",
      "suggestedFix": "Emit self-referencing canonicals for indexable templates and keep sitemap URLs aligned.",
      "effort": "small",
      "artifacts": [
        "evidence/recon.json",
        "evidence/search-probe.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F15",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "confidence": "high",
      "summary": "Transport is HTTPS but important security headers are missing or weakened.",
      "evidence": "Header probe found no HSTS or X-Content-Type-Options and a CSP allowing unsafe-inline and unsafe-eval.",
      "suggestedFix": "Deploy HSTS and nosniff, remove unsafe-eval, and migrate inline code to nonces/hashes under a tighter CSP.",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F16",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "confidence": "high",
      "summary": "Browser-enforced privacy and permission policies are incomplete.",
      "evidence": "Headers include X-Frame-Options but omit Permissions-Policy; Referrer-Policy is the permissive no-referrer-when-downgrade default.",
      "suggestedFix": "Add a least-privilege Permissions-Policy and use strict-origin-when-cross-origin or stricter referrer handling.",
      "effort": "small",
      "artifacts": [
        "evidence/headers.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F17",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "confidence": "high",
      "summary": "Account authentication is password-only and omits autofill semantics.",
      "evidence": "Account probe found no WebAuthn/passkey surface; sign-in email/password fields had empty autocomplete values. No permission request code was detected on load.",
      "suggestedFix": "Add autocomplete=username/current-password immediately and offer passkeys for phishing-resistant sign-in.",
      "effort": "medium",
      "artifacts": [
        "evidence/account-probe.json"
      ],
      "pathId": "account",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F18",
      "severity": "medium",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "confidence": "high",
      "summary": "Sign-in and registration inputs omit autocomplete tokens.",
      "evidence": "Account probe found empty autocomplete on email/login and password fields, while only reset-password fields used new-password.",
      "suggestedFix": "Use email, username, current-password, new-password, and other appropriate tokens on every account form.",
      "effort": "small",
      "artifacts": [
        "evidence/account-probe.json"
      ],
      "pathId": "account",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F19",
      "severity": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "confidence": "high",
      "summary": "The thumbnail-heavy listing serves no responsive or modern image variants.",
      "evidence": "All 100 audited images lacked srcset, all used JPG/PNG, 12 were oversized, and 89 below-fold images were not lazy-loaded.",
      "suggestedFix": "Generate AVIF/WebP variants and srcset/sizes, set dimensions, and lazy-load below-fold thumbnails.",
      "effort": "medium",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    },
    {
      "id": "F20",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "confidence": "high",
      "summary": "Initial page weight is high before the user chooses content.",
      "evidence": "Lighthouse transferred 5,630 KiB in its cold run; HAR transferred 1.22 MiB in a separate run, including 536 KiB script and 453 KiB images before age-gate acceptance.",
      "suggestedFix": "Defer below-fold thumbnails and non-essential media/scripts until after the gate or near viewport, with durable caching.",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json"
      ],
      "pathId": "home",
      "url": "https://www.xnxx.tv"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Implement the gate as a modal <dialog>, label it, move focus into it, inert the background, and restore focus on close.",
      "priority": 1,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Give icon controls discernible names and thumbnail links meaningful accessible names; use empty alt only for truly decorative images.",
      "priority": 2,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Deploy HSTS and nosniff, remove unsafe-eval, and migrate inline code to nonces/hashes under a tighter CSP.",
      "priority": 3,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Prioritize the LCP resource, remove redirect latency, and shorten blocking dependency chains; verify under throttled repeat runs.",
      "priority": 4,
      "findingIds": [
        "F07"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Remove user-scalable=no and restrictive maximum-scale values, then retest zoom/reflow and target sizing.",
      "priority": 5,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Generate AVIF/WebP variants and srcset/sizes, set dimensions, and lazy-load below-fold thumbnails.",
      "priority": 6,
      "findingIds": [
        "F19"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Keep age assurance proportionate, but reduce obstruction and preserve a clear, accessible route to the underlying task.",
      "priority": 7,
      "findingIds": [
        "F02"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Add autocomplete=username/current-password immediately and offer passkeys for phishing-resistant sign-in.",
      "priority": 8,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Inline only critical CSS, defer non-critical scripts, and apply durable immutable caching to versioned assets.",
      "priority": 9,
      "findingIds": [
        "F08"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Split by route and interaction, remove duplicate legacy dependencies, and load optional features conditionally.",
      "priority": 10,
      "findingIds": [
        "F09"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Add one descriptive h1 per template and implement proper modal focus/inert semantics while retaining the visible focus style.",
      "priority": 11,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Set intrinsic width/height or aspect-ratio and provide responsive srcset/sizes with modern formats.",
      "priority": 12,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Add a least-privilege Permissions-Policy and use strict-origin-when-cross-origin or stricter referrer handling.",
      "priority": 13,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T14",
      "title": "Use email, username, current-password, new-password, and other appropriate tokens on every account form.",
      "priority": 14,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T15",
      "title": "Defer below-fold thumbnails and non-essential media/scripts until after the gate or near viewport, with durable caching.",
      "priority": 15,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T16",
      "title": "Declare color-scheme and use prefers-color-scheme or light-dark() for a preference-driven palette.",
      "priority": 16,
      "findingIds": [
        "F01"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T17",
      "title": "Use cross-document View Transitions for same-origin listing-to-detail navigation, with reduced-motion handling.",
      "priority": 17,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "faster-spa-view-transitions",
      "status": "open"
    },
    {
      "id": "T18",
      "title": "Add a lightweight scroll-state-aware header treatment or progress affordance where it helps orientation.",
      "priority": 18,
      "findingIds": [
        "F05"
      ],
      "guidanceId": "scroll-position-aware-elements",
      "status": "open"
    },
    {
      "id": "T19",
      "title": "Adopt container queries for reusable thumbnail cards and controls rather than relying only on viewport breakpoints.",
      "priority": 19,
      "findingIds": [
        "F06"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T20",
      "title": "Emit self-referencing canonicals for indexable templates and keep sitemap URLs aligned.",
      "priority": 20,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Audit evidence: home-desktop.png",
      "findingIds": [
        "F01",
        "F02",
        "F05",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Audit evidence: home-mobile.png",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Audit evidence: home-dark.png",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Audit evidence: home-dom.json",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "Audit evidence: recon.json",
      "findingIds": [
        "F01",
        "F11",
        "F14"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Audit evidence: home-mobile-layout.json",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability",
      "caption": "Audit evidence: discoverability",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Audit evidence: discoverability-rendered.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "Audit evidence: discoverability-crawler.png",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Audit evidence: home.har",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-summary.json",
      "caption": "Audit evidence: home-summary.json",
      "findingIds": [
        "F08",
        "F09",
        "F19",
        "F20"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "Audit evidence: home-trace.json",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Audit evidence: home-trace-summary.json",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Audit evidence: headers.json",
      "findingIds": [
        "F15",
        "F16"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Audit evidence: cookies.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Audit evidence: trackers.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Audit evidence: secrets.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Audit evidence: images.json",
      "findingIds": [
        "F10",
        "F13",
        "F19"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Audit evidence: lighthouse.json",
      "findingIds": []
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Audit evidence: lighthouse-summary.json",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F10",
        "F12",
        "F13",
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search-desktop.png",
      "caption": "Audit evidence: search-desktop.png",
      "findingIds": [
        "F02",
        "F05"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search-mobile.png",
      "caption": "Audit evidence: search-mobile.png",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "Audit evidence: search-dom.json",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/search-mobile-layout.json",
      "caption": "Audit evidence: search-mobile-layout.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/search-probe.json",
      "caption": "Audit evidence: search-probe.json",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-desktop.png",
      "caption": "Audit evidence: detail-desktop.png",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "Audit evidence: detail-mobile.png",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "Audit evidence: detail-dom.json",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/detail-mobile-layout.json",
      "caption": "Audit evidence: detail-mobile-layout.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/detail-flow-probe.json",
      "caption": "Audit evidence: detail-flow-probe.json",
      "findingIds": [
        "F12"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404.png",
      "caption": "Audit evidence: 404.png",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "Audit evidence: 404-probe.json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "Audit evidence: robots.txt",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "Audit evidence: sitemap.xml",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/overlay-a11y.json",
      "caption": "Audit evidence: overlay-a11y.json",
      "findingIds": [
        "F03",
        "F10",
        "F11"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "Audit evidence: platform-probe.json",
      "findingIds": [
        "F05",
        "F06"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-focus.json",
      "caption": "Audit evidence: preferences-focus.json",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "other",
      "path": "evidence/account-probe.json",
      "caption": "Audit evidence: account-probe.json",
      "findingIds": [
        "F17",
        "F18"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Audit evidence: heap-baseline.json",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post.json",
      "caption": "Audit evidence: heap-post.json",
      "findingIds": []
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-18T01-09-12-308Z"
}
