{
  "url": "https://xnhau.vc",
  "auditedAt": "2026-07-28T08:31:52.397Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of five representative paths. Gallery/member/upload templates were not separately exercised because gallery/listing templates were represented and upload/account actions are gated; destructive, registration, and media-playback actions were not performed.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA with jQuery/Fancybox-style scripts",
    "notes": "xnhau.vc redirects to xnhau.guru. Public adult-media catalogue with an app manifest, search, listing/detail routes, authentication, and heavy advertising."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "discoverability",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "images",
    "secrets",
    "lighthouse",
    "heap-summary"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "performance",
    "security",
    "privacy",
    "forms",
    "css",
    "html",
    "optimize-image-priority",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "autofill-sign-in-form",
    "validate-input-after-interaction",
    "accessible-error-announcement",
    "deprioritize-background-fetches",
    "efficient-background-processing"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Homepage at desktop width.",
      "condition": "viewport: 1440x1000",
      "findingIds": [
        "F39",
        "F40",
        "F41",
        "F42"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage initial mobile viewport.",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Mobile overflow, CLS, and long-task observations.",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered homepage DOM and styles.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/home-recon.json",
      "caption": "Homepage metadata, links, and headings probe.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability",
      "caption": "Raw HTML versus rendered content evidence.",
      "condition": "JavaScript on/off",
      "findingIds": [
        "F35",
        "F36",
        "F37"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Rendered browser view.",
      "condition": "JavaScript enabled",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "Crawler/no-JavaScript view.",
      "condition": "JavaScript disabled",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/listing-mobile.png",
      "caption": "Listing template mobile viewport.",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/listing-dom.json",
      "caption": "Listing DOM.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "Representative detail route mobile viewport.",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "Detail DOM.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/login-mobile.png",
      "caption": "Direct login fragment on mobile.",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/login-dom.json",
      "caption": "Login form DOM.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/login-accessibility.json",
      "caption": "Login labels, autocomplete, focus, and target geometry.",
      "condition": "keyboard focus",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "Unknown-route response.",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/404-dom.json",
      "caption": "Unknown-route DOM.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/preferences.json",
      "caption": "Dark/reduced-motion/contrast emulation probe.",
      "condition": "dark + reduced motion + higher contrast",
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ]
    },
    {
      "type": "other",
      "path": "evidence/light-preference.json",
      "caption": "Light preference emulation probe.",
      "condition": "prefers-color-scheme: light",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "Platform API, CSS, targets, media, links, and service worker probe.",
      "condition": "default",
      "findingIds": [
        "F04",
        "F11",
        "F12",
        "F28",
        "F29",
        "F30",
        "F38"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace",
      "caption": "Raw DevTools trace.",
      "condition": "initial load",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Trace timings and main-thread summary.",
      "condition": "initial load",
      "findingIds": [
        "F16",
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home-network",
      "caption": "HAR 1.2 network capture.",
      "condition": "initial load",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-network-summary.json",
      "caption": "Network weight, origin, and resource summary.",
      "condition": "initial load",
      "findingIds": [
        "F43",
        "F44",
        "F45"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse performance, accessibility, best-practices, SEO, and agentic report.",
      "condition": "mobile emulation",
      "findingIds": [
        "F20",
        "F21",
        "F22",
        "F23",
        "F24",
        "F25",
        "F26",
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security response-header audit.",
      "condition": "default",
      "findingIds": [
        "F31",
        "F32",
        "F33",
        "F34"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie audit.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Tracker/origin audit.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "Image dimensions, responsive delivery, lazy loading, and alt audit.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client-side secret scan.",
      "condition": "default",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline",
      "caption": "Baseline heap summary.",
      "condition": "after initial load",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll-valid",
      "caption": "Heap after ten full-page scroll cycles.",
      "condition": "repeated interaction",
      "findingIds": []
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The preference probe found rootClass=\"dark\" under both emulated light and dark, computed root color-scheme \"normal\", no prefers-color-scheme or prefers-contrast CSS, and three running animations under prefers-reduced-motion: reduce.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The preference probe found rootClass=\"dark\" under both emulated light and dark, computed root color-scheme \"normal\", no prefers-color-scheme or prefers-contrast CSS, and three running animations under prefers-reduced-motion: reduce.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The preference probe found rootClass=\"dark\" under both emulated light and dark, computed root color-scheme \"normal\", no prefers-color-scheme or prefers-contrast CSS, and three running animations under prefers-reduced-motion: reduce.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The CSS/API probe found zero view-transition rules across the loaded styles and representative MPA navigation changes pages abruptly.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon of representative paths and interaction inventory against the check precondition.",
      "evidence": "No scroll-linked animation, parallax, scrollytelling, carousel, or entry/exit reveal was present on the representative templates, so there is no scroll-linked implementation to assess.",
      "reason": "No scroll-linked animation, parallax, scrollytelling, carousel, or entry/exit reveal was present on the representative templates, so there is no scroll-linked implementation to assess.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon of representative paths and interaction inventory against the check precondition.",
      "evidence": "The representative surfaces expose links, search, forms, and media controls but no swipe, pull, drag, or comparable custom gesture interaction.",
      "reason": "The representative surfaces expose links, search, forms, and media controls but no swipe, pull, drag, or comparable custom gesture interaction.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The 14,057px mobile page uses static chrome and the CSS probe found no scroll-state/container, anchor positioning, scroll markers, or view-transition cues.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The 14,057px mobile page uses static chrome and the CSS probe found no scroll-state/container, anchor positioning, scroll markers, or view-transition cues.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The 14,057px mobile page uses static chrome and the CSS probe found no scroll-state/container, anchor positioning, scroll markers, or view-transition cues.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Mobile screenshots show warnings and stacked gambling ads consuming the initial viewport; the login surface is a custom AJAX/Fancybox fragment rather than a native dialog.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Mobile screenshots show warnings and stacked gambling ads consuming the initial viewport; the login surface is a custom AJAX/Fancybox fragment rather than a native dialog.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Mobile screenshots show warnings and stacked gambling ads consuming the initial viewport; the login surface is a custom AJAX/Fancybox fragment rather than a native dialog.",
      "pathIds": [
        "home",
        "listing",
        "detail"
      ],
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "At 360x800 the layout primitive reported scrollWidth=clientWidth=innerWidth=360 and horizontalOverflowPx=0 with a viewport meta tag.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The 360px layout has no horizontal overflow, but the CSS probe found zero container queries and Lighthouse failed target-size; many visible controls are below 44px.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "The 360px layout has no horizontal overflow, but the CSS probe found zero container queries and Lighthouse failed target-size; many visible controls are below 44px.",
      "pathIds": [
        "home",
        "listing",
        "detail",
        "login"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Home, listing, and detail mobile screenshots put warnings and stacked gambling ads before the media content; the unknown-route test returns a bare nginx 404 with no recovery link.",
      "pathIds": [
        "home",
        "detail",
        "not-found"
      ],
      "artifacts": [
        "evidence/detail-mobile.png"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Home, listing, and detail mobile screenshots put warnings and stacked gambling ads before the media content; the unknown-route test returns a bare nginx 404 with no recovery link.",
      "pathIds": [
        "home",
        "detail",
        "not-found"
      ],
      "artifacts": [
        "evidence/detail-mobile.png"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Home, listing, and detail mobile screenshots put warnings and stacked gambling ads before the media content; the unknown-route test returns a bare nginx 404 with no recovery link.",
      "pathIds": [
        "home",
        "detail",
        "not-found"
      ],
      "artifacts": [
        "evidence/detail-mobile.png"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "The trace found one 95.46ms long task and 45.46ms TBT; Lighthouse measured 10ms TBT, indicating limited blocking work.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse best practices scored 69 and reported console errors, DevTools inspector issues, and low-resolution images; the image probe found 20 missing dimensions and 12 oversized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse best practices scored 69 and reported console errors, DevTools inspector issues, and low-resolution images; the image probe found 20 missing dimensions and 12 oversized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Lighthouse best practices scored 69 and reported console errors, DevTools inspector issues, and low-resolution images; the image probe found 20 missing dimensions and 12 oversized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "Rendered and raw HTML both contain the descriptive title and meta description; discoverability confirmed both survive without JavaScript.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/discoverability"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Metadata and SSR are strong, but Lighthouse found non-crawlable anchors, 29 anchors have no href, the sitemap advertises xnhau.video while the canonical is xnhau.guru, and no JSON-LD was present.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Metadata and SSR are strong, but Lighthouse found non-crawlable anchors, 29 anchors have no href, the sitemap advertises xnhau.video while the canonical is xnhau.guru, and no JSON-LD was present.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Metadata and SSR are strong, but Lighthouse found non-crawlable anchors, 29 anchors have no href, the sitemap advertises xnhau.video while the canonical is xnhau.guru, and no JSON-LD was present.",
      "pathIds": [
        "home",
        "detail"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F34"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "Discoverability fetched HTTP 200 raw HTML with 99% content-word coverage, a raw H1/title/description, and no empty SPA mount.",
      "pathIds": [
        "home",
        "not-found"
      ],
      "artifacts": [
        "evidence/discoverability"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Raw HTML contains 99% of rendered content, but there is no service worker despite an app/manifest surface, custom overlay runtime is fragile, and the tested 404 is a bare nginx response without recovery.",
      "pathIds": [
        "home",
        "not-found"
      ],
      "artifacts": [
        "evidence/discoverability"
      ],
      "findingIds": [
        "F35"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Raw HTML contains 99% of rendered content, but there is no service worker despite an app/manifest surface, custom overlay runtime is fragile, and the tested 404 is a bare nginx response without recovery.",
      "pathIds": [
        "home",
        "not-found"
      ],
      "artifacts": [
        "evidence/discoverability"
      ],
      "findingIds": [
        "F36"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Raw HTML contains 99% of rendered content, but there is no service worker despite an app/manifest surface, custom overlay runtime is fragile, and the tested 404 is a bare nginx response without recovery.",
      "pathIds": [
        "home",
        "not-found"
      ],
      "artifacts": [
        "evidence/discoverability"
      ],
      "findingIds": [
        "F37"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "html lang=\"vi\" and Vietnamese relative dates are present, but dir is absent and loaded CSS contains 323 physical left/right declarations versus four logical-property declarations despite a language selector.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "findingIds": [
        "F38"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "The Vietnamese UI renders relative publication ages and localized labels consistently, and exposes a language selector for alternate locales.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon of representative paths and interaction inventory against the check precondition.",
      "evidence": "No scheduled events, appointments, recurring intervals, or absolute user-facing times were present on the representative paths; only relative publication ages were shown.",
      "reason": "No scheduled events, appointments, recurring intervals, or absolute user-facing times were present on the representative paths; only relative publication ages were shown.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F39"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F40"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F41"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "pathIds": [
        "home",
        "login"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F42"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HAR recorded 1.98MB on initial load, including 1.36MB across seven advertising media requests; eight muted videos autoplay and 57 below-fold images are not natively lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-network-summary.json"
      ],
      "findingIds": [
        "F43"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HAR recorded 1.98MB on initial load, including 1.36MB across seven advertising media requests; eight muted videos autoplay and 57 below-fold images are not natively lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-network-summary.json"
      ],
      "findingIds": [
        "F44"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Cross-path visual inspection plus objective CDP/Lighthouse probe mapped to this check.",
      "evidence": "HAR recorded 1.98MB on initial load, including 1.36MB across seven advertising media requests; eight muted videos autoplay and 57 below-fold images are not natively lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-network-summary.json"
      ],
      "findingIds": [
        "F45"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon of representative paths and interaction inventory against the check precondition.",
      "evidence": "No developer intent or agent-facing transaction surface was declared. This emerging capability is not expected for this public media catalogue.",
      "reason": "No developer intent or agent-facing transaction surface was declared. This emerging capability is not expected for this public media catalogue.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon of representative paths and interaction inventory against the check precondition.",
      "evidence": "No summarisation, generation, translation, or other inference task was part of the observed core journey, so on-device inference is not applicable.",
      "reason": "No summarisation, generation, translation, or other inference task was part of the observed core journey, so on-device inference is not applicable.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "After ten real full-page scroll-down/back cycles, heap size was 17.21MB versus 16.83MB baseline (~2.3%); arrays stayed effectively flat (6,170 to 6,169) and closures rose only 49.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll-valid"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "The content-heavy page retained 16.83MB baseline heap across 265,241 heap nodes, proportionate to its long media catalogue.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Objective browser evidence and model judgement against the mapped guidance/check outcome.",
      "evidence": "Neither heap summary listed any Detached* constructor among top constructors, and repeated scrolling produced no material array/closure population growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-post-scroll-valid"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11",
        "F12"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17",
        "F18",
        "F19"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20",
        "F21",
        "F22",
        "F23",
        "F24"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26",
        "F27"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F31",
        "F32",
        "F33",
        "F34"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F35",
        "F36",
        "F37"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F38"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F39",
        "F40",
        "F41",
        "F42"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F43",
        "F44",
        "F45"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No developer intent or agent-facing transaction surface was declared. This emerging capability is not expected for this public media catalogue. No summarisation, generation, translation, or other inference task was part of the observed core journey, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage/catalogue template and global navigation; tested because it is the entry and highest-density surface.",
      "url": "https://xnhau.vc",
      "conditions": [
        "desktop 1440x1000",
        "mobile 360x800",
        "light/dark preference",
        "reduced motion",
        "higher contrast",
        "no JavaScript crawler view",
        "keyboard/objective probes"
      ],
      "result": "issues"
    },
    {
      "id": "listing",
      "description": "Latest-clips listing archetype; represents category and paginated listing templates.",
      "url": "https://xnhau.guru/clip-sex-moi/",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative media-detail route; tests the primary content-consumption journey.",
      "url": "https://xnhau.guru/video/476399/babyyurin-84/",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Authentication/form archetype, including labels, focus, input assistance, and recovery links.",
      "url": "https://xnhau.guru/login/",
      "conditions": [
        "mobile 360x800",
        "keyboard focus probe",
        "empty-submit attempt"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Unknown-route recovery state, representing HTTP/navigation failure handling.",
      "url": "https://xnhau.guru/not-a-real-page-web-uplift/",
      "conditions": [
        "mobile 360x800"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-color-scheme: a usable dark mode exists and is driven by the user's preference (color-scheme / prefers-color-scheme / light-dark()), not hard-coded light only.",
      "evidence": "The preference probe found rootClass=\"dark\" under both emulated light and dark, computed root color-scheme \"normal\", no prefers-color-scheme or prefers-contrast CSS, and three running animations under prefers-reduced-motion: reduce.",
      "artifacts": [
        "evidence/preferences.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark, derive theme tokens from user preference, add forced-colors/contrast treatment, and stop non-essential animations under reduced motion.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-reduced-motion: non-essential animations and auto-advance are reduced or removed when the user asks for less motion.",
      "evidence": "The preference probe found rootClass=\"dark\" under both emulated light and dark, computed root color-scheme \"normal\", no prefers-color-scheme or prefers-contrast CSS, and three running animations under prefers-reduced-motion: reduce.",
      "artifacts": [
        "evidence/preferences.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark, derive theme tokens from user preference, add forced-colors/contrast treatment, and stop non-essential animations under reduced motion.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-contrast / forced-colors: controls, text and scrollbars remain visible under high-contrast preferences.",
      "evidence": "The preference probe found rootClass=\"dark\" under both emulated light and dark, computed root color-scheme \"normal\", no prefers-color-scheme or prefers-contrast CSS, and three running animations under prefers-reduced-motion: reduce.",
      "artifacts": [
        "evidence/preferences.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark, derive theme tokens from user preference, add forced-colors/contrast treatment, and stop non-essential animations under reduced motion.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "State and route changes use View Transitions (including same-document, cross-document and scroll-driven/staggered) rather than instant, jarring swaps.",
      "evidence": "The CSS/API probe found zero view-transition rules across the loaded styles and representative MPA navigation changes pages abruptly.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Progressively enhance meaningful route/state changes with View Transitions while preserving instant navigation as the fallback.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Sticky/affixed UI reacts to scroll state and position (e.g. the new scroll-state(scrolled) query, shrinking headers, progress indicators) so chrome responds to position instead of static or JS-driven toggling.",
      "evidence": "The 14,057px mobile page uses static chrome and the CSS probe found no scroll-state/container, anchor positioning, scroll markers, or view-transition cues.",
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Add useful scroll-position feedback and use platform positioning/attention cues only where they help users navigate the long catalogue.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "anchor-positioning-tab-underline",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Tooltips, popovers and menus use CSS anchor positioning (with fallback positions) so they stay attached and reposition correctly rather than being manually positioned.",
      "evidence": "The 14,057px mobile page uses static chrome and the CSS probe found no scroll-state/container, anchor positioning, scroll markers, or view-transition cues.",
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Add useful scroll-position feedback and use platform positioning/attention cues only where they help users navigate the long catalogue.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "directs-attention",
      "guidanceId": "directional-navigation-transitions",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Navigation and in-page jumps guide attention (highlight effects, scroll/carousel markers, directional transitions, drill-down and drawer navigation) so the user can follow where focus moved.",
      "evidence": "The 14,057px mobile page uses static chrome and the CSS probe found no scroll-state/container, anchor positioning, scroll markers, or view-transition cues.",
      "artifacts": [
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Add useful scroll-position feedback and use platform positioning/attention cues only where they help users navigate the long catalogue.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "No intrusive pop-ups, interstitials or banners that obscure content on load; overlays are dismissible and content-first.",
      "evidence": "Mobile screenshots show warnings and stacked gambling ads consuming the initial viewport; the login surface is a custom AJAX/Fancybox fragment rather than a native dialog.",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove or defer disruptive ad chrome, cap promotions, and rebuild transient/modal UI with popover or dialog and declarative dismissal.",
      "effort": "medium"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Overlays and rich controls use the right primitive: popover (with declarative light-dismiss) for transient UI, dialog for modal flows, details for disclosure, native-but-branded selects and pickers, rather than ad-hoc divs.",
      "evidence": "Mobile screenshots show warnings and stacked gambling ads consuming the initial viewport; the login surface is a custom AJAX/Fancybox fragment rather than a native dialog.",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove or defer disruptive ad chrome, cap promotions, and rebuild transient/modal UI with popover or dialog and declarative dismissal.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "complex-shapes",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Minimise non-content chrome and borders so the content is the focus, not the application frame; expressive/decorative visuals serve the content rather than crowd it.",
      "evidence": "Mobile screenshots show warnings and stacked gambling ads consuming the initial viewport; the login surface is a custom AJAX/Fancybox fragment rather than a native dialog.",
      "artifacts": [
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove or defer disruptive ad chrome, cap promotions, and rebuild transient/modal UI with popover or dialog and declarative dismissal.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Components adapt to their container with container queries (incl. anchored container queries) and content/state-based styling where reused at different sizes, not only global viewport breakpoints.",
      "evidence": "The 360px layout has no horizontal overflow, but the CSS probe found zero container queries and Lighthouse failed target-size; many visible controls are below 44px.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Use container queries for reused cards and increase all interactive target boxes/spacing to at least 44 CSS px with visible focus.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Touch targets are adequately sized and hover-only affordances have a non-hover fallback, and keyboard focus is visible, so the UI works for touch, pointer and keyboard alike.",
      "evidence": "The 360px layout has no horizontal overflow, but the CSS probe found zero container queries and Lighthouse failed target-size; many visible controls are below 44px.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Use container queries for reused cards and increase all interactive target boxes/spacing to at least 44 CSS px with visible focus.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-purpose-and-primary-action",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "The page communicates what it is for and exposes the primary next action without requiring users to hunt through decorative content, generic copy, or competing calls to action.",
      "evidence": "Home, listing, and detail mobile screenshots put warnings and stacked gambling ads before the media content; the unknown-route test returns a bare nginx 404 with no recovery link.",
      "artifacts": [
        "evidence/detail-mobile.png"
      ],
      "suggestedFix": "Put catalogue/detail content before promotions and replace dead-end error states with branded, actionable recovery.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "The representative primary flow can be completed end-to-end with predictable steps, no avoidable dead ends, no hidden required information, and no needless detours through modals, account walls, or upsells.",
      "evidence": "Home, listing, and detail mobile screenshots put warnings and stacked gambling ads before the media content; the unknown-route test returns a bare nginx 404 with no recovery link.",
      "artifacts": [
        "evidence/detail-mobile.png"
      ],
      "suggestedFix": "Put catalogue/detail content before promotions and replace dead-end error states with branded, actionable recovery.",
      "effort": "medium"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "support-core-task-success",
      "principleCheckId": "clear-system-state-and-recovery",
      "guidanceId": "accessible-error-announcement",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Loading, empty, success, error, offline, and partial-completion states are visible and actionable; users can retry, undo, cancel, go back, or continue without losing context.",
      "evidence": "Home, listing, and detail mobile screenshots put warnings and stacked gambling ads before the media content; the unknown-route test returns a bare nginx 404 with no recovery link.",
      "artifacts": [
        "evidence/detail-mobile.png"
      ],
      "suggestedFix": "Put catalogue/detail content before promotions and replace dead-end error states with branded, actionable recovery.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-inp-causes",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Core Web Vitals are in the good range: LCP is fast, interaction latency (INP) is low, and CLS is minimal; work is prioritised and deferred sensibly.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Reserve media dimensions, eliminate autoplay ad media from initial load, prioritize the LCP asset, defer scripts, and remove unused code.",
      "effort": "large"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "visual-stability",
      "guidanceId": "visually-stable-font-fallbacks",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "No cumulative layout shift from late content (images, banners, fonts) that arrives without reserved space.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Reserve media dimensions, eliminate autoplay ad media from initial load, prioritize the LCP asset, defer scripts, and remove unused code.",
      "effort": "large"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical resources are delivered efficiently: cache headers are useful, render-blocking chains are short, fonts do not block or shift text, HTTP delivery is modern, and network dependency trees do not delay the main content.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Reserve media dimensions, eliminate autoplay ad media from initial load, prioritize the LCP asset, defer scripts, and remove unused code.",
      "effort": "large"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "The page does not ship large unused or duplicated JavaScript/CSS, avoidable legacy bundles, or third-party code that dominates the load without user value.",
      "evidence": "Trace measured LCP 3.887s and mobile layout measured CLS 0.176; HAR recorded 1.98MB including 1.36MB of autoplay advertising media, while Lighthouse estimated 268KiB unused JS and 58KiB unused CSS.",
      "artifacts": [
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Reserve media dimensions, eliminate autoplay ad media from initial load, prioritize the LCP asset, defer scripts, and remove unused code.",
      "effort": "large"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Interactive elements have accessible names, correct roles, and form fields have labels; images have alt text where meaningful; canvas/expressive content is exposed to assistive technology.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix Lighthouse failures: accessible names/labels, contrast, iframe titles, main landmark, target sizing, and keyboard-visible focus.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and essential UI meet WCAG colour-contrast minimums against their background.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix Lighthouse failures: accessible names/labels, contrast, iframe titles, main landmark, target sizing, and keyboard-visible focus.",
      "effort": "large"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "move-dom-element-without-losing-state",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Heading and landmark structure is logical, focus order follows reading order, keyboard focus is always visible, and interactive state survives DOM moves.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix Lighthouse failures: accessible names/labels, contrast, iframe titles, main landmark, target sizing, and keyboard-visible focus.",
      "effort": "large"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Text is legible and inclusively rendered: comfortable line layout, precise alignment, stable rendering across mixed fonts, no clipping or cramped wrapping that harms comprehension.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix Lighthouse failures: accessible names/labels, contrast, iframe titles, main landmark, target sizing, and keyboard-visible focus.",
      "effort": "large"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "The experience remains usable when zoomed or reflowed, touch targets are large enough, media has captions or equivalents where needed, and the viewport does not prevent user scaling.",
      "evidence": "Lighthouse accessibility scored 77 and failed contrast, iframe title, labels, link names, target size, and main-landmark checks.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Fix Lighthouse failures: accessible names/labels, contrast, iframe titles, main landmark, target sizing, and keyboard-visible focus.",
      "effort": "large"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page loads without console errors or uncaught exceptions.",
      "evidence": "Lighthouse best practices scored 69 and reported console errors, DevTools inspector issues, and low-resolution images; the image probe found 20 missing dimensions and 12 oversized images.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Resolve console/Inspector errors and serve correctly sized, dimensioned responsive images.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "reduce-style-repetition",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Valid doctype and charset, images sized with correct aspect ratio, no deprecated APIs misused, and CSS/HTML are well structured and not needlessly repetitive. (HTTPS, CSP and permission hygiene are judged under be-private-and-secure, not here.)",
      "evidence": "Lighthouse best practices scored 69 and reported console errors, DevTools inspector issues, and low-resolution images; the image probe found 20 missing dimensions and 12 oversized images.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Resolve console/Inspector errors and serve correctly sized, dimensioned responsive images.",
      "effort": "medium"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page uses the platform cleanly: no deprecated APIs, no avoidable BFCache blockers, no broken source maps or inspector issues, no stale vulnerable libraries, no paste-prevention on inputs, and no notification/geolocation prompts on load.",
      "evidence": "Lighthouse best practices scored 69 and reported console errors, DevTools inspector issues, and low-resolution images; the image probe found 20 missing dimensions and 12 oversized images.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Resolve console/Inspector errors and serve correctly sized, dimensioned responsive images.",
      "effort": "medium"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Links are crawlable (real href), there is a viewport meta tag, robots does not block indexing, and link text is descriptive.",
      "evidence": "Metadata and SSR are strong, but Lighthouse found non-crawlable anchors, 29 anchors have no href, the sitemap advertises xnhau.video while the canonical is xnhau.guru, and no JSON-LD was present.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Use real href anchors, align sitemap hosts with the canonical host, and add accurate structured metadata for media/entity pages.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Public pages expose the indexing signals search engines need: successful HTTP status, canonical URL when appropriate, hreflang for localized variants, robots/sitemap consistency, and no accidental noindex/noarchive policy.",
      "evidence": "Metadata and SSR are strong, but Lighthouse found non-crawlable anchors, 29 anchors have no href, the sitemap advertises xnhau.video while the canonical is xnhau.guru, and no JSON-LD was present.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Use real href anchors, align sitemap hosts with the canonical host, and add accurate structured metadata for media/entity pages.",
      "effort": "medium"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Where the page represents an article, product, organization, event, place or other rich entity, structured data and share-preview metadata accurately describe the visible content.",
      "evidence": "Metadata and SSR are strong, but Lighthouse found non-crawlable anchors, 29 anchors have no href, the sitemap advertises xnhau.video while the canonical is xnhau.guru, and no JSON-LD was present.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Use real href anchors, align sitemap hosts with the canonical host, and add accurate structured metadata for media/entity pages.",
      "effort": "medium"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Served over HTTPS with a sensible Content-Security-Policy and secure, SameSite cookies; no mixed content or obvious transport/header smells.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy a tested CSP plus Referrer-Policy and Permissions-Policy, minimize analytics, and add autocomplete/passkey-capable authentication.",
      "effort": "medium"
    },
    {
      "id": "F32",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "No over-collection of user data, no leaky third parties, and analytics/background data collection is minimised and batched rather than chatty or session-wide by default.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy a tested CSP plus Referrer-Policy and Permissions-Policy, minimize analytics, and add autocomplete/passkey-capable authentication.",
      "effort": "medium"
    },
    {
      "id": "F33",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Permission prompts are requested in context (not on load), and authentication uses modern, phishing-resistant methods (passkeys / WebAuthn) where relevant rather than passwords alone.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy a tested CSP plus Referrer-Policy and Permissions-Policy, minimize analytics, and add autocomplete/passkey-capable authentication.",
      "effort": "medium"
    },
    {
      "id": "F34",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced defenses are configured where appropriate: HSTS, clickjacking protection (frame-ancestors / X-Frame-Options), Trusted Types for XSS-sensitive apps, origin isolation, privacy-preserving third-party cookie posture, and sensible Referrer-Policy / Permissions-Policy.",
      "evidence": "HTTPS, HSTS, nosniff, SAMEORIGIN, and no exposed secrets were observed, but CSP, Referrer-Policy, and Permissions-Policy are absent; GA/Cloudflare analytics load and the sign-in form is password-only with no autocomplete tokens.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Deploy a tested CSP plus Referrer-Policy and Permissions-Policy, minimize analytics, and add autocomplete/passkey-capable authentication.",
      "effort": "medium"
    },
    {
      "id": "F35",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "resilient-context-menus-and-nested-dropdowns",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page behaves robustly at runtime: overlays and menus never get cut off, DOM state survives moves, background work and async dependencies are sequenced and conditional rather than fragile, and initial visibility state is detected correctly.",
      "evidence": "Raw HTML contains 99% of rendered content, but there is no service worker despite an app/manifest surface, custom overlay runtime is fragile, and the tested 404 is a bare nginx response without recovery.",
      "artifacts": [
        "evidence/discoverability"
      ],
      "suggestedFix": "Add an offline fallback/service worker if the installable app is intentional, make overlays robust, and provide useful 404/network recovery.",
      "effort": "large"
    },
    {
      "id": "F36",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-resilient",
      "principleCheckId": "offline-and-installable",
      "guidanceId": "conditional-async-dependencies",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Where the site is an app, it is installable (web app manifest) and offers an offline fallback and works on flaky networks. (Contextual: a brochure or intrinsically-online site may reasonably not need this.)",
      "evidence": "Raw HTML contains 99% of rendered content, but there is no service worker despite an app/manifest surface, custom overlay runtime is fragile, and the tested 404 is a bare nginx response without recovery.",
      "artifacts": [
        "evidence/discoverability"
      ],
      "suggestedFix": "Add an offline fallback/service worker if the installable app is intentional, make overlays robust, and provide useful 404/network recovery.",
      "effort": "large"
    },
    {
      "id": "F37",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "persistent-toast-notifications",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "HTTP errors, network failures, timeouts and stale data states are handled intentionally: users see useful recovery options rather than blank screens, infinite spinners, broken shells, or misleading success states.",
      "evidence": "Raw HTML contains 99% of rendered content, but there is no service worker despite an app/manifest surface, custom overlay runtime is fragile, and the tested 404 is a bare nginx response without recovery.",
      "artifacts": [
        "evidence/discoverability"
      ],
      "suggestedFix": "Add an offline fallback/service worker if the installable app is intentional, make overlays robust, and provide useful 404/network recovery.",
      "effort": "large"
    },
    {
      "id": "F38",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "Correct lang and dir attributes, logical CSS properties (inline/block) rather than physical left/right, and translation-ready markup so the layout and reading order survive other languages and writing modes.",
      "evidence": "html lang=\"vi\" and Vietnamese relative dates are present, but dir is absent and loaded CSS contains 323 physical left/right declarations versus four logical-property declarations despite a language selector.",
      "artifacts": [
        "evidence/platform-probe.json"
      ],
      "suggestedFix": "Set dir and replace physical left/right CSS with logical inline/block properties; verify each language route.",
      "effort": "medium"
    },
    {
      "id": "F39",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "No deceptive design: no confirmshaming, forced continuity, disguised ads, or nagging consent walls; honest defaults; clear pricing and consent; easy reversal/cancel; predictable, declaratively-wired actions; and no hidden-text tricks (hidden content stays deep-linkable and indexable rather than used to deceive).",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Remove dominant gambling promotions/dark-pattern pressure and implement humane, accessible form validation with real account links.",
      "effort": "medium"
    },
    {
      "id": "F40",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "forms",
      "guidanceCategory": "forms",
      "severity": "high",
      "confidence": "high",
      "summary": "Forms prevent and recover from mistakes humanely: validate after interaction (not prematurely), give clear required-field feedback, announce errors accessibly, and signal invalid fields visibly rather than blaming the user.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Remove dominant gambling promotions/dark-pattern pressure and implement humane, accessible form validation with real account links.",
      "effort": "medium"
    },
    {
      "id": "F41",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-address-form",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Input is assisted, not obstructed: correct autocomplete tokens so address, payment, sign-in and sign-up fields autofill, and inputs are highlighted/sized to help the user rather than trip them up.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Remove dominant gambling promotions/dark-pattern pressure and implement humane, accessible form validation with real account links.",
      "effort": "medium"
    },
    {
      "id": "F42",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "autofill-payment-form",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Checkout, subscription, consent, authentication and account-management flows are clear, reversible, and proportionate: pricing and commitments are visible, cancellation is findable, sensitive actions re-authenticate when appropriate, and users are not tricked into continuity.",
      "evidence": "Screenshots show dominant gambling promotions and an overlapping closable ad; login fields lack required/autocomplete metadata and error containers lack live-region semantics, while account links use data-href rather than real href.",
      "artifacts": [
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Remove dominant gambling promotions/dark-pattern pressure and implement humane, accessible form validation with real account links.",
      "effort": "medium"
    },
    {
      "id": "F43",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Images and decorative assets are optimised and served at appropriate resolutions; decorative pseudo-element imagery and heavy decorative images are resolution-optimised rather than oversized.",
      "evidence": "HAR recorded 1.98MB on initial load, including 1.36MB across seven advertising media requests; eight muted videos autoplay and 57 below-fold images are not natively lazy-loaded.",
      "artifacts": [
        "evidence/home-network-summary.json"
      ],
      "suggestedFix": "Do not autoplay or preload advertising videos; lazy-load below-fold media, right-size assets, and enforce a proportional media/third-party budget.",
      "effort": "medium"
    },
    {
      "id": "F44",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Background work and fetching are not wasteful: background processing is efficient and de-prioritised, and the lightest technique that achieves the result is preferred over heavy or redundant work.",
      "evidence": "HAR recorded 1.98MB on initial load, including 1.36MB across seven advertising media requests; eight muted videos autoplay and 57 below-fold images are not natively lazy-loaded.",
      "artifacts": [
        "evidence/home-network-summary.json"
      ],
      "suggestedFix": "Do not autoplay or preload advertising videos; lazy-load below-fold media, right-size assets, and enforce a proportional media/third-party budget.",
      "effort": "medium"
    },
    {
      "id": "F45",
      "pathId": "home",
      "url": "https://xnhau.vc",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deliver-optimized-decorative-images",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party scripts, fonts, video, audio, animation and heavy media are proportionate to the user value they provide; autoplay or background media is avoided unless essential and resource use is cached or deferred where possible.",
      "evidence": "HAR recorded 1.98MB on initial load, including 1.36MB across seven advertising media requests; eight muted videos autoplay and 57 below-fold images are not natively lazy-loaded.",
      "artifacts": [
        "evidence/home-network-summary.json"
      ],
      "suggestedFix": "Do not autoplay or preload advertising videos; lazy-load below-fold media, right-size assets, and enforce a proportional media/third-party budget.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Put content before ads and stop autoplay promotion media",
      "priority": 1,
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F13",
        "F14",
        "F15",
        "F43",
        "F44",
        "F45"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Fix accessibility names, labels, contrast, landmarks, and target sizes",
      "priority": 2,
      "findingIds": [
        "F11",
        "F12",
        "F20",
        "F21",
        "F22",
        "F23",
        "F24"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Stabilize and accelerate the first load",
      "priority": 3,
      "findingIds": [
        "F16",
        "F17",
        "F18",
        "F19",
        "F25",
        "F26",
        "F27"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Deploy browser security policies and minimize analytics",
      "priority": 4,
      "findingIds": [
        "F31",
        "F32",
        "F33",
        "F34"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Honor color, contrast, and motion preferences",
      "priority": 5,
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Make links, metadata, and sitemap signals crawlable and consistent",
      "priority": 6,
      "findingIds": [
        "F28",
        "F29",
        "F30"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Add useful 404/offline/runtime recovery",
      "priority": 7,
      "findingIds": [
        "F35",
        "F36",
        "F37"
      ],
      "guidanceId": "conditional-async-dependencies",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Make authentication humane and autofill/passkey-ready",
      "priority": 8,
      "findingIds": [
        "F39",
        "F40",
        "F41",
        "F42"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Use logical, locale-resilient layout CSS",
      "priority": 9,
      "findingIds": [
        "F38"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add navigation/state cues where they aid the long catalogue",
      "priority": 10,
      "findingIds": [
        "F04",
        "F05",
        "F06",
        "F07"
      ],
      "guidanceId": "same-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-28T08-19-51-737Z"
}
