{
  "url": "https://xhopen.com",
  "auditedAt": "2026-07-21T12:55:39.427Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete. The site intermittently returned bare 503 pages during direct navigation; successful DOM, runtime, network, heap, and Lighthouse captures were retained and the failure state is itself reported.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered application with hydrated client components",
    "notes": "Adult media catalog localized across many domains. Audited UK presentation, including age-verification and signup states."
  },
  "evidenceUsed": [
    "dom",
    "screenshot",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "secrets",
    "headers",
    "cookies",
    "trackers",
    "images",
    "heap-summary",
    "lighthouse",
    "curl/raw-html",
    "modern-web-guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "scrollytelling",
    "physics-based-easing",
    "shrinking-header-on-scroll",
    "anchor-positioning-tab-underline",
    "directional-navigation-transitions",
    "light-dismiss-a-dialog",
    "declarative-dialog-popover-control",
    "complex-shapes",
    "fluid-scaling",
    "size-aware-styling",
    "improve-text-layout-and-legibility",
    "forms",
    "accessible-error-announcement",
    "identify-inp-causes",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "move-dom-element-without-losing-state",
    "css",
    "html",
    "security",
    "privacy",
    "passkeys",
    "flicker-free-client-side-ab-testing",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-toast-notifications",
    "translator",
    "support-global-calendar-systems",
    "coordinate-global-events",
    "search-hidden-content",
    "autofill-address-form",
    "autofill-payment-form",
    "deliver-optimized-decorative-images",
    "deprioritize-background-fetches",
    "webmcp",
    "language-model",
    "manage-recurring-intervals"
  ],
  "artifacts": [
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered home DOM and CSS capture",
      "findingIds": [
        "F004",
        "F016",
        "F021"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "Semantic, metadata, focus, motion and platform probe",
      "findingIds": [
        "F003",
        "F007",
        "F013",
        "F016"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Mobile Lighthouse report",
      "findingIds": [
        "F002",
        "F007",
        "F009",
        "F010",
        "F011",
        "F012",
        "F013",
        "F014",
        "F015"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-failures.json",
      "caption": "Extracted Lighthouse failing audits",
      "findingIds": [
        "F002",
        "F007",
        "F009",
        "F010",
        "F011",
        "F012",
        "F013",
        "F014"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Home network capture",
      "findingIds": [
        "F010",
        "F018"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Compact home network signals",
      "findingIds": [
        "F010",
        "F011",
        "F018",
        "F022",
        "F023"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Trace timing and long-task summary",
      "findingIds": [
        "F009",
        "F023"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image audit",
      "findingIds": [
        "F015",
        "F022"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security header audit",
      "findingIds": [
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie audit",
      "findingIds": [
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party origin audit",
      "findingIds": [
        "F018",
        "F023"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client secret scan",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/static-css-signals.json",
      "caption": "Cross-template CSS feature signals",
      "findingIds": [
        "F001",
        "F003",
        "F004",
        "F005",
        "F006",
        "F021"
      ]
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion-probe.json",
      "caption": "Reduced-motion runtime probe",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-probe.json",
      "caption": "Signup-state probe",
      "findingIds": [
        "F005",
        "F019"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/signup-dom.json",
      "caption": "Signup rendered DOM",
      "findingIds": [
        "F019",
        "F020"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-email-invalid-probe.json",
      "caption": "Attempted signup interaction and intermittent 503 state",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-raw.html",
      "caption": "Raw server HTML",
      "findingIds": [
        "F020"
      ]
    },
    {
      "type": "other",
      "path": "evidence/shorts-probe.json",
      "caption": "Shorts age-gate probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "Manifest and service-worker registration probe",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline heap summary",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/heap-post-scroll.json",
      "caption": "Post-scroll heap summary",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Intermittent bare 503 response during direct navigation",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "Raw/server-rendered versus browser discoverability capture",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Browser-view capture returned an intermittent 503",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "Crawler-view capture",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots.txt",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/manifest.webmanifest",
      "caption": "Web app manifest",
      "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": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Evaluate under the host dark preference found the dark class and light text; inline bootstrap code explicitly reads prefers-color-scheme.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The reduced-motion probe matched prefers-reduced-motion: reduce but still found eight running 2-second shimmer animations; static CSS inspection found no reduced-motion rule.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion-probe.json",
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse measured age-verification text at 2.15:1 and 1.75:1, metadata at 3.29:1, and an inline link at only 1.28:1 against surrounding text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Rendered/source probes found no view-transition CSS or transition declarations on four representative templates, despite a navigation-heavy MPA.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "No scroll-linked animation was present on the representative templates, so there is no implementation to assess.",
      "reason": "No scroll-linked animation was present on the representative templates, so there is no implementation to assess."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "No custom swipe, pull, carousel, or other gesture-driven interaction was exposed in the audited states.",
      "reason": "No custom swipe, pull, carousel, or other gesture-driven interaction was exposed in the audited states."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The home template is a long listing, but source inspection found no scroll-state query, scroll timeline, progress affordance, or other scroll-aware chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "No tooltip or edge-attached popover requiring anchor positioning was present in the audited states.",
      "reason": "No tooltip or edge-attached popover requiring anchor positioning was present in the audited states."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The home template is a long listing, but source inspection found no scroll-state query, scroll timeline, progress affordance, or other scroll-aware chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The successfully rendered home DOM had no dialog/popover and exposed its H1 and listing immediately; age and cookie notices remained ancillary.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The signup probe found a div with role=dialog and aria-modal=true rather than a native dialog; no dialog, popover, or details primitives were present in captured templates.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The home probe exposed a main content landmark and “Trending Free Porn Videos” H1 with the content listing as the dominant structure.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Lighthouse rendered the mobile template at 412px without a horizontal-overflow audit failure; the effective viewport meta was present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Across home, ranking, shorts, and signup templates, static CSS evidence found no container-type or @container rules.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Programmatic focus showed no visible outline or shadow on the search input/button, and Lighthouse found an obscured/overlapping interactive target with 0px safe spacing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The first rendered state names the purpose “Trending Free Porn Videos” and exposes search, videos, categories, and content links.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Repeated direct navigations during screenshot and signup interaction attempts returned a plain 503 nginx page with no retry, back, or status guidance, while other attempts succeeded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-rendered.png",
        "evidence/signup-email-invalid-probe.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Repeated direct navigations during screenshot and signup interaction attempts returned a plain 503 nginx page with no retry, back, or status guidance, while other attempts succeeded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-rendered.png",
        "evidence/signup-email-invalid-probe.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse measured LCP at 3.1s and FCP at 2.4s; the root response alone took 846ms. A desktop trace was faster at 1.11s LCP, showing condition-sensitive performance.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Both layout observation and Lighthouse measured CLS 0 during load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The trace measured 105.6ms TBT with two long tasks, while mobile Lighthouse measured 0ms TBT; neither indicates sustained blocking.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse estimated 1,180ms savings from render-blocking CSS and 114KiB from longer cache lifetimes; HAR recorded 142 requests and 1.73MB transferred.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json",
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse estimated 26KiB unused JavaScript and 56KiB unused CSS; HAR recorded 62 script requests and about 997KB of script transfer.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse found an unnamed button, thumbnail names that omit visible duration text, and a list with invalid direct children.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse measured age-verification text at 2.15:1 and 1.75:1, metadata at 3.29:1, and an inline link at only 1.28:1 against surrounding text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The focus probe found no visible focus treatment on key search controls, and Lighthouse found invalid list structure and an inappropriate button role on a list item.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The DOM uses real headings/landmarks and Lighthouse did not flag text sizing or clipping; specific contrast failures are recorded separately.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse found user-scalable=no in the effective mobile viewport meta and a target with no safe clickable spacing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Lighthouse’s console-errors audit passed with no browser errors logged.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The images primitive found 29 of 36 images without both dimensions and 12 rendered at less than half their natural width; Lighthouse corroborated unsized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Lighthouse best-practices scored 1.0; probes found no permission prompt on load, a valid doctype, and no exposed secret.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Home, best, shorts/age, and signup DOM captures had descriptive titles; home had a substantive meta description.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Lighthouse found user-scalable=no in the effective mobile viewport meta and a target with no safe clickable spacing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The main response was HTTP 200, home declared a canonical URL, and robots.txt allowed the principal public surfaces.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The home probe found no JSON-LD and no Open Graph properties even though the page exposes a large media catalog.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Headers lacked X-Content-Type-Options and Referrer-Policy; CSP only declared frame-ancestors. Four of five cookies were flagged, including non-Secure settings, x_csrf_token, and g_state cookies.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "HAR recorded 116 third-party requests and 1.54MB third-party transfer across 11 origins, including ad/recommendation endpoints carrying a persistent stats UID and browsing context.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The signup route exposed Google, X, and email options; rendered/source probes found no enabled WebAuthn or passkey authentication path.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-dom.json"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Headers lacked X-Content-Type-Options and Referrer-Policy; CSP only declared frame-ancestors. Four of five cookies were flagged, including non-Secure settings, x_csrf_token, and g_state cookies.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The signup document noscript fallback says “JavaScript is required for this website” rather than preserving the account flow, despite substantial server-rendered content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-dom.json",
        "evidence/home-raw.html"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Repeated direct navigations during screenshot and signup interaction attempts returned a plain 503 nginx page with no retry, back, or status guidance, while other attempts succeeded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-rendered.png",
        "evidence/signup-email-invalid-probe.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The page links a manifest and has an active scoped service worker; its script contains cache, fetch, respondWith, and offline handling.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/pwa-probe.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "Repeated direct navigations during screenshot and signup interaction attempts returned a plain 503 nginx page with no retry, back, or status guidance, while other attempts succeeded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-rendered.png",
        "evidence/signup-email-invalid-probe.json"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The page links to roughly 40 locale hosts and sets lang=en, but omits dir and captured CSS uses almost no logical properties while relying on physical layout rules.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/static-css-signals.json"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "The audited public states did not render dates, currency, calendars, or locale-sensitive numbers requiring formatting.",
      "reason": "The audited public states did not render dates, currency, calendars, or locale-sensitive numbers requiring formatting."
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "The audited states expose no event, scheduling, or time-zone-sensitive workflow.",
      "reason": "The audited states expose no event, scheduling, or time-zone-sensitive workflow."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Signup clearly disclosed public-data use, Terms and Privacy links, age-verification context, and the cookie copy described both Accept and Reject outcomes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "The visible signup state used provider/action choices rather than editable fields, and the only other form was optional search with no required-field error state.",
      "reason": "The visible signup state used provider/action choices rather than editable fields, and the only other form was optional search with no required-field error state."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "No address, payment, sign-in, or sign-up data-entry fields were rendered in the audited signup state; provider buttons handled entry.",
      "reason": "No address, payment, sign-in, or sign-up data-entry fields were rendered in the audited signup state; provider buttons handled entry."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The signup state presented login, Google, X, and email paths and disclosed account-data and age-verification consequences before action.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/signup-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The images primitive found 12 oversized images, 16 legacy-format URLs, 3 images without srcset, and 8 below-fold images without lazy loading.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "The home load made 142 requests, transferred 1.73MB, ran 62 script requests, and sent 116 requests to third-party origins before user interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted primitive/probe and corroborating artifact review",
      "evidence": "HAR recorded 116 third-party requests and 1.54MB third-party transfer across 11 origins, including ad/recommendation endpoints carrying a persistent stats UID and browsing context. The home load made 142 requests, transferred 1.73MB, ran 62 script requests, and sent 116 requests to third-party origins before user interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F018",
        "F023"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "No developer intent for agent-facing capabilities is declared; for this emerging principle, absence is not a failure.",
      "reason": "No developer intent for agent-facing capabilities is declared; for this emerging principle, absence is not a failure."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement from representative DOM and task recon",
      "evidence": "No user task in the audited catalog, age gate, or signup states clearly benefits from on-device inference, and no intent is declared.",
      "reason": "No user task in the audited catalog, age gate, or signup states clearly benefits from on-device inference, and no intent is declared."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "After ten bottom/top scroll cycles, heap self-size was 818,380 bytes versus 755,016 at baseline (8.4%); no Detached constructor appeared. The bounded increase does not show unbounded retention.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "The baseline heap summary was modest for the media listing: 26,389 nodes and 755,016 self-size bytes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Targeted rendered-DOM/runtime probe corroborated by retained evidence",
      "evidence": "Neither baseline nor post-scroll heap summaries contained a Detached constructor; closure count rose modestly from 1,803 to 1,875 after the bounded interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001",
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F006",
        "F007"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F009",
        "F010",
        "F011"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F012",
        "F002",
        "F013",
        "F014"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F014",
        "F016"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F017",
        "F018",
        "F019"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F020",
        "F008"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F022",
        "F023",
        "F018"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No developer intent for agent-facing capabilities is declared; for this emerging principle, absence is not a failure. No user task in the audited catalog, age gate, or signup states clearly benefits from on-device inference, and no intent is declared."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary media-listing template; representative of public discovery and navigation.",
      "url": "https://xhopen.com/",
      "conditions": [
        "desktop",
        "mobile Lighthouse",
        "dark preference",
        "reduced motion",
        "network/performance",
        "repeated scroll"
      ],
      "result": "issues"
    },
    {
      "id": "ranking",
      "description": "Weekly ranking/listing archetype; sampled to compare a second content-list template.",
      "url": "https://xhopen.com/best/weekly",
      "conditions": [
        "rendered DOM"
      ],
      "result": "issues"
    },
    {
      "id": "shorts",
      "description": "Short-form video journey and UK age-verification gate.",
      "url": "https://xhopen.com/shorts",
      "conditions": [
        "mobile",
        "age verification"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Account creation and consent/legal disclosure flow.",
      "url": "https://xhopen.com/signup?source=menuSignup",
      "conditions": [
        "rendered DOM",
        "signup-state probe",
        "failure recovery"
      ],
      "result": "issues"
    },
    {
      "id": "scope-note",
      "description": "Not covered: authenticated history/watch-later, biometric verification completion, payment/subscription, individual explicit media playback, destructive account creation, and creator upload because they require credentials, identity, payment, or consequential user action.",
      "result": "skipped"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Motion continues when reduced motion is requested",
      "evidence": "The reduced-motion probe matched prefers-reduced-motion: reduce but still found eight running 2-second shimmer animations; static CSS inspection found no reduced-motion rule.",
      "artifacts": [
        "evidence/reduced-motion-probe.json",
        "evidence/static-css-signals.json"
      ],
      "suggestedFix": "Add a prefers-reduced-motion: reduce rule that removes non-essential shimmer/transition animation.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F002",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Important text and controls fail contrast requirements",
      "evidence": "Lighthouse measured age-verification text at 2.15:1 and 1.75:1, metadata at 3.29:1, and an inline link at only 1.28:1 against surrounding text.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Use tokens whose computed foreground/background contrast meets WCAG AA and underline inline links.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F003",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "medium",
      "summary": "Route and state changes do not use deliberate view transitions",
      "evidence": "Rendered/source probes found no view-transition CSS or transition declarations on four representative templates, despite a navigation-heavy MPA.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/static-css-signals.json"
      ],
      "suggestedFix": "Add cross-document view transitions for compatible page navigation, with a reduced-motion fallback.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F004",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "medium",
      "summary": "The long listing has no scroll-position guidance",
      "evidence": "The home template is a long listing, but source inspection found no scroll-state query, scroll timeline, progress affordance, or other scroll-aware chrome.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/static-css-signals.json"
      ],
      "suggestedFix": "Use scroll-state container queries or a lightweight progress/affordance treatment for long result lists.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F005",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "The signup modal is an ad-hoc dialog container",
      "evidence": "The signup probe found a div with role=dialog and aria-modal=true rather than a native dialog; no dialog, popover, or details primitives were present in captured templates.",
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/static-css-signals.json"
      ],
      "suggestedFix": "Use a native dialog for the modal flow and its built-in focus, escape, and close behavior.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F006",
      "severity": "low",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Reusable cards only adapt at viewport level",
      "evidence": "Across home, ranking, shorts, and signup templates, static CSS evidence found no container-type or @container rules.",
      "artifacts": [
        "evidence/static-css-signals.json"
      ],
      "suggestedFix": "Give reusable card/list components containment and container-query breakpoints where their parent width varies.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F007",
      "severity": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Keyboard focus and touch-target affordances are insufficient",
      "evidence": "Programmatic focus showed no visible outline or shadow on the search input/button, and Lighthouse found an obscured/overlapping interactive target with 0px safe spacing.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Add strong :focus-visible styles and ensure every target has at least 24px safe size/spacing, preferably 44px for primary touch controls.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F008",
      "severity": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "medium",
      "summary": "Intermittent failures end in a bare server error with no recovery",
      "evidence": "Repeated direct navigations during screenshot and signup interaction attempts returned a plain 503 nginx page with no retry, back, or status guidance, while other attempts succeeded.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-rendered.png",
        "evidence/signup-email-invalid-probe.json"
      ],
      "suggestedFix": "Serve a branded, accessible 503 state with retry/back controls and preserve the user journey across transient failures.",
      "effort": "medium",
      "pathId": "signup",
      "url": "https://xhopen.com/signup?source=menuSignup"
    },
    {
      "id": "F009",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Mobile LCP misses the good threshold",
      "evidence": "Lighthouse measured LCP at 3.1s and FCP at 2.4s; the root response alone took 846ms. A desktop trace was faster at 1.11s LCP, showing condition-sensitive performance.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Reduce document latency and critical-path work, then validate mobile LCP at or below 2.5s.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F010",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-preload-priority",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Critical delivery includes long render-blocking and weakly cached work",
      "evidence": "Lighthouse estimated 1,180ms savings from render-blocking CSS and 114KiB from longer cache lifetimes; HAR recorded 142 requests and 1.73MB transferred.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json",
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Inline/minimise critical CSS, defer non-critical styles/scripts, and lengthen immutable asset cache lifetimes.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F011",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "The page ships avoidable script and style work",
      "evidence": "Lighthouse estimated 26KiB unused JavaScript and 56KiB unused CSS; HAR recorded 62 script requests and about 997KB of script transfer.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Code-split by template and remove or defer unused and third-party bundles until user intent.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F012",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Controls and content structures have accessibility-tree defects",
      "evidence": "Lighthouse found an unnamed button, thumbnail names that omit visible duration text, and a list with invalid direct children.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Give every control a matching accessible name and restore valid list semantics without nested conflicting roles.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F013",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Focus and semantic structure are unreliable",
      "evidence": "The focus probe found no visible focus treatment on key search controls, and Lighthouse found invalid list structure and an inappropriate button role on a list item.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Use native interactive elements, valid list children, logical focus order, and visible :focus-visible treatment.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F014",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Mobile zoom is explicitly disabled and a target is obstructed",
      "evidence": "Lighthouse found user-scalable=no in the effective mobile viewport meta and a target with no safe clickable spacing.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/lighthouse-failures.json"
      ],
      "suggestedFix": "Remove user-scalable=no and maximum-scale restrictions; fix overlap and target spacing at narrow/zoomed layouts.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F015",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Many images lack intrinsic dimensions or are oversized",
      "evidence": "The images primitive found 29 of 36 images without both dimensions and 12 rendered at less than half their natural width; Lighthouse corroborated unsized images.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Emit width/height or aspect-ratio for every image and tighten srcset sizes to actual card widths.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F016",
      "severity": "low",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "The public rich-content listing lacks entity and share metadata",
      "evidence": "The home probe found no JSON-LD and no Open Graph properties even though the page exposes a large media catalog.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Add accurate WebSite/ItemList or VideoObject JSON-LD where appropriate and Open Graph preview metadata matching visible content.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F017",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Cookie and response defenses are incomplete",
      "evidence": "Headers lacked X-Content-Type-Options and Referrer-Policy; CSP only declared frame-ancestors. Four of five cookies were flagged, including non-Secure settings, x_csrf_token, and g_state cookies.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Mark all cookies Secure with the narrowest SameSite/HttpOnly policy and deploy a nonce/hash-based CSP plus nosniff and Referrer-Policy.",
      "effort": "small",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F018",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "The initial page has a broad third-party and analytics footprint",
      "evidence": "HAR recorded 116 third-party requests and 1.54MB third-party transfer across 11 origins, including ad/recommendation endpoints carrying a persistent stats UID and browsing context.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Gate non-essential ads/analytics on consent and intent, minimise identifiers, batch events, and defer third parties.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F019",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Account entry offers federated and email sign-up but no phishing-resistant passkey path",
      "evidence": "The signup route exposed Google, X, and email options; rendered/source probes found no enabled WebAuthn or passkey authentication path.",
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-dom.json"
      ],
      "suggestedFix": "Offer passkey registration and authentication alongside account recovery and federated options.",
      "effort": "medium",
      "pathId": "signup",
      "url": "https://xhopen.com/signup?source=menuSignup"
    },
    {
      "id": "F020",
      "severity": "high",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "flicker-free-client-side-ab-testing",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Core interaction explicitly requires JavaScript",
      "evidence": "The signup document noscript fallback says “JavaScript is required for this website” rather than preserving the account flow, despite substantial server-rendered content.",
      "artifacts": [
        "evidence/signup-dom.json",
        "evidence/home-raw.html"
      ],
      "suggestedFix": "Keep core navigation and account form actions functional as HTML, layering enhanced dialogs and validation on top.",
      "effort": "medium",
      "pathId": "signup",
      "url": "https://xhopen.com/signup?source=menuSignup"
    },
    {
      "id": "F021",
      "severity": "medium",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "The many localized variants are not built on robust bidi/logical layout foundations",
      "evidence": "The page links to roughly 40 locale hosts and sets lang=en, but omits dir and captured CSS uses almost no logical properties while relying on physical layout rules.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/static-css-signals.json"
      ],
      "suggestedFix": "Set lang and dir per locale and replace physical left/right sizing and spacing with logical properties.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F022",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Media assets are not consistently right-sized",
      "evidence": "The images primitive found 12 oversized images, 16 legacy-format URLs, 3 images without srcset, and 8 below-fold images without lazy loading.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Generate tighter responsive variants, use modern formats consistently, and lazy-load below-fold media.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    },
    {
      "id": "F023",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "modern-web-guidance",
      "confidence": "high",
      "summary": "Initial loading performs disproportionate script and third-party work",
      "evidence": "The home load made 142 requests, transferred 1.73MB, ran 62 script requests, and sent 116 requests to third-party origins before user interaction.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Defer recommendations, ads, analytics, and non-visible modules until consent, visibility, or interaction.",
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhopen.com/"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Cookie and response defenses are incomplete",
      "priority": 1,
      "findingIds": [
        "F017"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Controls and content structures have accessibility-tree defects",
      "priority": 2,
      "findingIds": [
        "F012"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Focus and semantic structure are unreliable",
      "priority": 3,
      "findingIds": [
        "F013"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Intermittent failures end in a bare server error with no recovery",
      "priority": 4,
      "findingIds": [
        "F008"
      ],
      "guidanceId": "persistent-toast-notifications",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Important text and controls fail contrast requirements",
      "priority": 5,
      "findingIds": [
        "F002"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Mobile zoom is explicitly disabled and a target is obstructed",
      "priority": 6,
      "findingIds": [
        "F014"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Keyboard focus and touch-target affordances are insufficient",
      "priority": 7,
      "findingIds": [
        "F007"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Core interaction explicitly requires JavaScript",
      "priority": 8,
      "findingIds": [
        "F020"
      ],
      "guidanceId": "flicker-free-client-side-ab-testing",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "The initial page has a broad third-party and analytics footprint",
      "priority": 9,
      "findingIds": [
        "F018"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Mobile LCP misses the good threshold",
      "priority": 10,
      "findingIds": [
        "F009"
      ],
      "guidanceId": "identify-inp-causes",
      "status": "open"
    },
    {
      "id": "T011",
      "title": "Critical delivery includes long render-blocking and weakly cached work",
      "priority": 11,
      "findingIds": [
        "F010"
      ],
      "guidanceId": "optimize-preload-priority",
      "status": "open"
    },
    {
      "id": "T012",
      "title": "Many images lack intrinsic dimensions or are oversized",
      "priority": 12,
      "findingIds": [
        "F015"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T013",
      "title": "Account entry offers federated and email sign-up but no phishing-resistant passkey path",
      "priority": 13,
      "findingIds": [
        "F019"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T014",
      "title": "The many localized variants are not built on robust bidi/logical layout foundations",
      "priority": 14,
      "findingIds": [
        "F021"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T015",
      "title": "Media assets are not consistently right-sized",
      "priority": 15,
      "findingIds": [
        "F022"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T016",
      "title": "Initial loading performs disproportionate script and third-party work",
      "priority": 16,
      "findingIds": [
        "F023"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T017",
      "title": "The page ships avoidable script and style work",
      "priority": 17,
      "findingIds": [
        "F011"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T018",
      "title": "Motion continues when reduced motion is requested",
      "priority": 18,
      "findingIds": [
        "F001"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T019",
      "title": "The signup modal is an ad-hoc dialog container",
      "priority": 19,
      "findingIds": [
        "F005"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T020",
      "title": "Reusable cards only adapt at viewport level",
      "priority": 20,
      "findingIds": [
        "F006"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T021",
      "title": "The public rich-content listing lacks entity and share metadata",
      "priority": 21,
      "findingIds": [
        "F016"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T022",
      "title": "Route and state changes do not use deliberate view transitions",
      "priority": 22,
      "findingIds": [
        "F003"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    },
    {
      "id": "T023",
      "title": "The long listing has no scroll-position guidance",
      "priority": 23,
      "findingIds": [
        "F004"
      ],
      "guidanceId": "shrinking-header-on-scroll",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 1500,
    "pathCount": 4,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-21T12-55-39-427Z"
}
