{
  "url": "https://xhamster46.desi",
  "auditedAt": "2026-07-23T22:35:55.973Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete representative-template audit. Video playback, logged-in account management, checkout/premium payment, creator upload, and live-chat journeys were not covered because they require external services, credentials, payment, or content playback; one representative public listing per template was used.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered application with client hydration",
    "notes": "Public adult-media discovery site with a first-load consent interstitial, age-verification banner, responsive variants, multilingual subdomains, and account signup."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "discoverability",
    "heap-summary",
    "lighthouse"
  ],
  "guidanceConsulted": [
    "accessibility",
    "accessible-error-announcement",
    "dark-mode",
    "fluid-scaling",
    "forms",
    "html",
    "improve-text-layout-and-legibility",
    "light-dismiss-a-dialog",
    "optimize-image-priority",
    "performance",
    "privacy",
    "same-document-transitions",
    "scroll-position-aware-elements",
    "security",
    "stabilize-reactive-state",
    "translator",
    "visually-stable-font-fallbacks",
    "webmcp"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-dom.json",
      "caption": "404 dom json",
      "findingIds": [
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404.png",
      "caption": "404 png",
      "findingIds": [
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/categories-dom.json",
      "caption": "categories dom json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/categories.png",
      "caption": "categories png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/category-dom.json",
      "caption": "category dom json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/category.png",
      "caption": "category png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies json",
      "findingIds": [
        "F23",
        "F26"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler png",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered png",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability json",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers json",
      "findingIds": [
        "F23",
        "F26"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline json",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll-valid.json",
      "caption": "heap post scroll valid json",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "heap post scroll json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast png",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop png",
      "findingIds": [
        "F05",
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-dom.json",
      "caption": "home dom json",
      "findingIds": [
        "F12",
        "F19",
        "F22",
        "F25",
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "home light png",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout json",
      "findingIds": [
        "F08",
        "F17",
        "F18",
        "F20"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile png",
      "findingIds": [
        "F08",
        "F17",
        "F18",
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe json",
      "findingIds": [
        "F12",
        "F19",
        "F22",
        "F25",
        "F27"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary json",
      "findingIds": [
        "F12",
        "F13",
        "F24",
        "F31",
        "F32"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary json",
      "findingIds": [
        "F10",
        "F11",
        "F31"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace json",
      "findingIds": [
        "F10",
        "F11",
        "F31"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home har",
      "findingIds": [
        "F12",
        "F13",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images json",
      "findingIds": [
        "F14",
        "F19",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/interaction-probe.json",
      "caption": "interaction probe json",
      "findingIds": [
        "F04",
        "F06",
        "F09",
        "F16"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home json",
      "findingIds": [
        "F09",
        "F10",
        "F13",
        "F14",
        "F15",
        "F16",
        "F17",
        "F18",
        "F20",
        "F21"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-summary.json",
      "caption": "lighthouse summary json",
      "findingIds": [
        "F03",
        "F09",
        "F10",
        "F13",
        "F14",
        "F15",
        "F16",
        "F17",
        "F18",
        "F20",
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion.json",
      "caption": "reduced motion json",
      "findingIds": [
        "F02",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.json",
      "caption": "robots json",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/search-dom.json",
      "caption": "search dom json",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/search.png",
      "caption": "search png",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets json",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/signup-dom.json",
      "caption": "signup dom json",
      "findingIds": [
        "F05",
        "F07",
        "F25",
        "F28",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-form-probe.json",
      "caption": "signup form probe json",
      "findingIds": [
        "F05",
        "F07",
        "F25",
        "F28",
        "F29"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup.png",
      "caption": "signup png",
      "findingIds": [
        "F05",
        "F07",
        "F25",
        "F28",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.json",
      "caption": "sitemap json",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers json",
      "findingIds": [
        "F24",
        "F32"
      ]
    }
  ],
  "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": "Compare default and prefers-color-scheme: light screenshots.",
      "evidence": "The light-scheme capture remains the same dark surface as the default page; no user-scheme retint is visible.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-light.png"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Inspect document.getAnimations() under reduced-motion emulation.",
      "evidence": "Eight 2-second shimmer animations remain running while prefers-reduced-motion: reduce matches.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility contrast audit and high-contrast screenshot.",
      "evidence": "Lighthouse found 13 contrast failures, including the age banner at 2.15:1 and metadata at 3.29:1.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Inspect loaded stylesheets for view-transition usage.",
      "evidence": "CSS inspection found zero view-transition rules on route-heavy MPA surfaces.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "medium",
      "method": "CSS inspection plus performance trace.",
      "evidence": "Trace showed no scroll animation workload and CSS/DOM inspection found no scroll-timeline implementation or main-thread scroll effect requiring replacement.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM and screenshot recon across representative paths.",
      "evidence": "No gesture-driven carousel, swipe-to-remove, pull-to-refresh, or comparable physical interaction is present on the representative surfaces.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "reason": "The audited browse, taxonomy, search, signup, and error surfaces do not expose a gesture-specific interaction."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop/mobile screenshots and DOM inspection.",
      "evidence": "The persistent top navigation and sidebar preserve location and major destinations throughout the long listing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Overlay and popover DOM probe.",
      "evidence": "No edge-sensitive tooltip, menu, or anchored overlay was exposed in the representative core paths.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "reason": "No anchored overlay use case was present in the audited paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "Screenshot and heading/navigation DOM probe.",
      "evidence": "H1/H2 hierarchy, selected navigation state, and prominent search field provide visible next-step cues.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "First-load screenshots on homepage and signup.",
      "evidence": "A large cookie interstitial blocks the primary content and account form on first load; the age banner adds a second interruption on mobile.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM semantic overlay probe.",
      "evidence": "The consent overlay is not represented by native <dialog>, [popover], or role=dialog; probes found zero semantic dialog/popover primitives.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Visual review of first viewports.",
      "evidence": "On desktop the sidebar, two-level header, age-verification banner, and consent overlay leave little primary content visible; signup is almost completely obscured.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Layout primitive and 360x800 screenshot.",
      "evidence": "At a 360px visual viewport, layout reported scrollWidth 1024px and 664px horizontal overflow; the screenshot shows clipped desktop chrome.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "pass",
      "confidence": "medium",
      "method": "Lighthouse mobile rendering and viewport DOM inspection.",
      "evidence": "Lighthouse mobile rendered a dedicated two-column mobile listing and the DOM viewport meta is width=device-width; components do adapt under a mobile user-agent.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus style probe and Lighthouse target-size audit.",
      "evidence": "Focused search controls expose no outline or box shadow, and Lighthouse found two insufficient target-size/spacing cases.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "First viewport screenshot and heading/link probe.",
      "evidence": "The title, Trending Free Porn Videos H1, search field, categories, and listing cards clearly communicate the discovery purpose and next actions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "medium",
      "method": "Manual route traversal with screenshots and DOM snapshots.",
      "evidence": "Browse via homepage, category index, category listing, search-query surface, and signup email reveal all loaded without an auth wall; content cards and navigation remained available.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/categories-dom.json",
        "evidence/category-dom.json",
        "evidence/search-dom.json",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "medium",
      "method": "404, search, and signup route inspection.",
      "evidence": "A missing URL produced a dedicated Page not found surface rather than a blank shell, while search and signup exposed recognisable states.",
      "pathIds": [
        "404",
        "search",
        "signup"
      ],
      "artifacts": [
        "evidence/404.png",
        "evidence/404-dom.json",
        "evidence/categories-dom.json",
        "evidence/category-dom.json",
        "evidence/search-dom.json",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse plus CDP trace summary.",
      "evidence": "Lighthouse lab LCP was 3810ms (performance 0.86), above the 2.5s good threshold; CLS was 0 and TBT was 0 in that run.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Layout observer and Lighthouse CLS.",
      "evidence": "Both layout and Lighthouse measured CLS 0 with no observed layout-shift entries.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "CDP performance trace summary.",
      "evidence": "The trace recorded two long tasks, longest 161.93ms, with 126.24ms total blocking time.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary corroborated by DOM resource inspection.",
      "evidence": "The load issued 146 requests and transferred 1.70MB; 10 parser-inserted render-blocking candidates were identified and the largest script was 400KB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse unused-code audits and HAR summary.",
      "evidence": "Lighthouse estimated 26,976 bytes unused JavaScript and 57,478 bytes unused CSS; HAR counted 63 scripts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility and image audits.",
      "evidence": "Lighthouse found an unnamed button, and the image audit found one image without alt text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse color-contrast audit.",
      "evidence": "Lighthouse found 13 low-contrast nodes, including 1.75:1 secondary age-banner text and 3.29:1 view-count text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Focus probe and Lighthouse structural audits.",
      "evidence": "Search input/button focus has no visible outline; Lighthouse also found a malformed list and nine visible-label/accessibility-name mismatches.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse node-level contrast evidence and screenshots.",
      "evidence": "Repeated 12px metadata uses #707070 on #202020 at 3.29:1, and banner text falls as low as 1.75:1, impairing reading comfort.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse viewport/target audits plus narrow layout.",
      "evidence": "Lighthouse reports a restrictive mobile viewport and two target-size failures; independent 360px layout evidence shows 664px overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse errors-in-console audit.",
      "evidence": "Lighthouse recorded no browser console errors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM and image audit.",
      "evidence": "The document has doctype and charset, but 29 of 36 images lack explicit width/height dimensions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audit.",
      "evidence": "Lighthouse best-practices scored 1.0 with no console, deprecation, prompt-on-load, or inspector hygiene failure reported.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability and DOM probes.",
      "evidence": "Raw and rendered HTML both retain a descriptive title, one H1, and meta description.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Discoverability, Lighthouse SEO, and narrow layout.",
      "evidence": "Links and raw content are crawlable, but the 360px layout overflows by 664px, so the combined mobile-friendly outcome fails.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "robots.txt, sitemap route, DOM, and Lighthouse SEO inspection.",
      "evidence": "robots.txt is valid and canonical/hreflang pass Lighthouse, but /sitemap.xml returns a 404 page, leaving no sitemap at the conventional location.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/robots.json",
        "evidence/sitemap.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered DOM metadata inspection.",
      "evidence": "The home DOM has no JSON-LD, Open Graph title/description/image, or Twitter card metadata.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Security headers primitive.",
      "evidence": "HTTPS/HSTS and frame protection are present, but CSP is limited to frame-ancestors, HSTS max-age is only 86400, and nosniff and Referrer-Policy headers are missing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "HAR and tracker-origin audits.",
      "evidence": "117 of 146 requests and 1.59MB of 1.70MB transferred bytes went to third-party origins, including Google Accounts and tsyndicate; 11 third-party origins were observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "medium",
      "method": "Signup DOM/form inspection and script/API probe.",
      "evidence": "No permission prompt fired on load, but the inspected signup flow exposes password/social auth and no passkey/WebAuthn affordance.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Cookie and security-header audits.",
      "evidence": "Three of four cookies lack Secure and two use SameSite=None; nosniff and Referrer-Policy are absent and CSP does not constrain script sources.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "No-JS discoverability comparison.",
      "evidence": "Raw HTML is 390,743 bytes, not a JS shell, and preserves 89% of rendered content words plus title/H1/description.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Route traversal, overlay probe, and Lighthouse console audit.",
      "evidence": "Representative routes and the consent/signup state rendered without runtime console errors; no unstable edge-positioned overlay was exposed.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/categories-dom.json",
        "evidence/category-dom.json",
        "evidence/search-dom.json",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Manifest/service-worker recon and site-purpose judgement.",
      "evidence": "The primary product is network-streamed media; offline task completion is not a meaningful expectation for the audited public browsing journey.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "reason": "Streaming and live discovery require network access; offline/installable behaviour is contextual and not part of the observed core task."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "404 screenshot and DOM snapshot.",
      "evidence": "A deliberately missing route rendered a dedicated Page not found experience with the normal site shell rather than crashing or presenting an empty document.",
      "pathIds": [
        "404"
      ],
      "artifacts": [
        "evidence/404.png",
        "evidence/404-dom.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM comparison of normal and error routes plus logical-property probe.",
      "evidence": "Main pages declare lang=en and CSS inspection found 19 logical-property rules, but the Page not found document has no html lang value.",
      "pathIds": [
        "home",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/404.png",
        "evidence/404-dom.json"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "Link/hreflang DOM and Lighthouse inspection.",
      "evidence": "The navigation exposes many locale-specific domains and valid hreflang signals; locale selection is explicit and server-rendered.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Content and DOM recon across representative paths.",
      "evidence": "No date, event, schedule, recurrence, or time-zone-sensitive data appears in the representative public browse/signup/error surfaces.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "reason": "No time-zone-sensitive feature was present in scope."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "medium",
      "method": "Consent and signup screenshots/form text.",
      "evidence": "Cookie Accept and Reject controls have equal size/prominence, and signup explicitly discloses public-data use, terms, and privacy policy.",
      "pathIds": [
        "home",
        "signup"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "medium",
      "method": "Active signup form reveal and empty-submit probe.",
      "evidence": "Revealed signup inputs are not marked required and expose no aria-invalid state; an empty submission attempt navigated the inspected target before an inline recoverable error could be observed.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Signup input attribute probe.",
      "evidence": "Both email fields declare autocomplete=off; only the password field uses autocomplete=new-password.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "medium",
      "method": "Signup route text and screenshot.",
      "evidence": "The signup surface clearly states age-verification implications, public-data handling, Terms of Use, and Privacy Policy before account creation.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Image audit.",
      "evidence": "14 of 36 images are oversized, 29 lack dimensions, 14 use legacy formats, and 8 below-fold images are not lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Reduced-motion animation probe, trace, and HAR.",
      "evidence": "The page starts eight continuously running shimmer animations even under reduced motion and loads 63 scripts on the initial listing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR and tracker audits.",
      "evidence": "Third parties account for 117 requests and 1.59MB transferred; the initial page totals 146 requests before a user starts media playback.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/source API recon and site-intent judgement.",
      "evidence": "No agent-facing or local-AI task is declared or apparent for the public media discovery pages.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "reason": "The site exposes ordinary human browsing/forms and no agentic or on-device inference use case; this contextual principle is out of scope."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "DOM/source API recon and site-intent judgement.",
      "evidence": "No agent-facing or local-AI task is declared or apparent for the public media discovery pages.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "search",
        "signup",
        "404"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "reason": "The site exposes ordinary human browsing/forms and no agentic or on-device inference use case; this contextual principle is out of scope."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline and post-interaction heap-summary comparison.",
      "evidence": "After ten full-page scroll cycles, heap self-size rose 2.26% (36.45MB to 37.27MB) and nodes 2.40% (682,892 to 699,268), consistent with bounded lazy content rather than clear unbounded retention.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll-valid.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap-summary totals compared with page purpose.",
      "evidence": "Baseline heap self-size was 36.45MB for a media-rich page; the post-scroll state remained 37.27MB without disproportionate growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll-valid.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Before/after heap constructor summaries and interaction comparison.",
      "evidence": "No Detached* constructor appeared in either top-constructor summary, and repeated scrolling produced only modest bounded growth; no listener/timer accumulation signal was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll-valid.json"
      ]
    }
  ],
  "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": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F14",
        "F15",
        "F16",
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24",
        "F25",
        "F26"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F30",
        "F31",
        "F32"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "The site exposes ordinary human browsing/forms and no agentic or on-device inference use case; this contextual principle is out of scope. The site exposes ordinary human browsing/forms and no agentic or on-device inference use case; this contextual principle is out of scope."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary video-discovery listing; represents global navigation, consent, recommendations, and first-load behaviour.",
      "url": "https://xhamster46.desi/",
      "conditions": [
        "desktop",
        "360x800 viewport",
        "prefers-color-scheme: light",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "categories",
      "description": "Category index; represents taxonomy and listing navigation.",
      "url": "https://xhamster46.desi/categories",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "British category page; represents a category-specific result listing.",
      "url": "https://xhamster46.desi/categories/british",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search-query surface; represents the primary find-content journey.",
      "url": "https://xhamster46.desi/?q=test",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Signup page and email form reveal; represents account creation, consent disclosure, and form assistance.",
      "url": "https://xhamster46.desi/signup?source=menuSignup",
      "conditions": [
        "desktop",
        "cookie rejection",
        "email signup reveal"
      ],
      "result": "issues"
    },
    {
      "id": "404",
      "description": "Deliberate missing route; represents HTTP/error recovery.",
      "url": "https://xhamster46.desi/definitely-not-a-real-route-audit-404",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "severity": "low",
      "confidence": "high",
      "summary": "Light preference is ignored",
      "evidence": "The light-scheme capture remains the same dark surface as the default page; no user-scheme retint is visible.",
      "artifacts": [
        "evidence/home-light.png"
      ],
      "suggestedFix": "Add color-scheme support and theme tokens that respond to prefers-color-scheme; retain a manual override.",
      "effort": "small"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Loading shimmer ignores reduced motion",
      "evidence": "Eight 2-second shimmer animations remain running while prefers-reduced-motion: reduce matches.",
      "artifacts": [
        "evidence/reduced-motion.json"
      ],
      "suggestedFix": "Disable or replace repeating shimmer animation under prefers-reduced-motion: reduce.",
      "effort": "small"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Contrast preference and baseline contrast are insufficient",
      "evidence": "Lighthouse found 13 contrast failures, including the age banner at 2.15:1 and metadata at 3.29:1.",
      "artifacts": [
        "evidence/home-contrast.png",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Increase text/control contrast and add tested prefers-contrast/forced-colors treatment.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "severity": "low",
      "confidence": "medium",
      "summary": "Route changes do not preserve visual continuity",
      "evidence": "CSS inspection found zero view-transition rules on route-heavy MPA surfaces.",
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "suggestedFix": "Use same-document or cross-document View Transitions for compatible route/list-detail changes with reduced-motion fallback.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "medium",
      "confidence": "high",
      "summary": "First-load interstitial obscures core content",
      "evidence": "A large cookie interstitial blocks the primary content and account form on first load; the age banner adds a second interruption on mobile.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "suggestedFix": "Minimise the consent surface, preserve necessary legal choice, and avoid stacking it with the age banner.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent overlay lacks dialog semantics",
      "evidence": "The consent overlay is not represented by native <dialog>, [popover], or role=dialog; probes found zero semantic dialog/popover primitives.",
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "suggestedFix": "Implement the modal with <dialog>, an accessible name, focus management, Escape handling, and explicit non-coercive actions.",
      "effort": "small"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Navigation and overlays crowd out content",
      "evidence": "On desktop the sidebar, two-level header, age-verification banner, and consent overlay leave little primary content visible; signup is almost completely obscured.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "suggestedFix": "Collapse secondary navigation at constrained heights and avoid simultaneous banners/overlays.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "Narrow viewport overflows by 664px",
      "evidence": "At a 360px visual viewport, layout reported scrollWidth 1024px and 664px horizontal overflow; the screenshot shows clipped desktop chrome.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Make layout sizing fluid, remove 1024px minimum assumptions, and test 320–412px viewports without relying on user-agent switching.",
      "effort": "large"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Keyboard focus and touch targets are inadequate",
      "evidence": "Focused search controls expose no outline or box shadow, and Lighthouse found two insufficient target-size/spacing cases.",
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Provide visible :focus-visible rings and at least 24px targets with spacing, preferably 44px for primary controls.",
      "effort": "medium"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Lab LCP is 3.81 seconds",
      "evidence": "Lighthouse lab LCP was 3810ms (performance 0.86), above the 2.5s good threshold; CLS was 0 and TBT was 0 in that run.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "suggestedFix": "Prioritise the LCP resource, reduce initial script/style work, and measure field LCP/INP/CLS.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Long tasks block the main thread",
      "evidence": "The trace recorded two long tasks, longest 161.93ms, with 126.24ms total blocking time.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json"
      ],
      "suggestedFix": "Split the 162ms task, defer non-critical work, and schedule background work at lower priority.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Initial delivery is request-heavy and script-heavy",
      "evidence": "The load issued 146 requests and transferred 1.70MB; 10 parser-inserted render-blocking candidates were identified and the largest script was 400KB.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Reduce parser-critical resources, bundle/request overhead, and the 400KB index script; retain only truly critical preloads.",
      "effort": "large"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Unused CSS/JS ships on first load",
      "evidence": "Lighthouse estimated 26,976 bytes unused JavaScript and 57,478 bytes unused CSS; HAR counted 63 scripts.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Route-split features and remove unused initial CSS/JS identified by coverage.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Some controls and images lack accessible names",
      "evidence": "Lighthouse found an unnamed button, and the image audit found one image without alt text.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/images.json"
      ],
      "suggestedFix": "Give every interactive control a programmatic name and every meaningful image appropriate alt text.",
      "effort": "small"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text fails WCAG contrast",
      "evidence": "Lighthouse found 13 low-contrast nodes, including 1.75:1 secondary age-banner text and 3.29:1 view-count text.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Raise banner, metadata, and button contrast to at least WCAG AA ratios across states.",
      "effort": "small"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Focus and list semantics are broken",
      "evidence": "Search input/button focus has no visible outline; Lighthouse also found a malformed list and nine visible-label/accessibility-name mismatches.",
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Restore visible keyboard focus, valid list children, and accessible names that match visible labels.",
      "effort": "medium"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Small low-contrast metadata is hard to read",
      "evidence": "Repeated 12px metadata uses #707070 on #202020 at 3.29:1, and banner text falls as low as 1.75:1, impairing reading comfort.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Increase metadata size/contrast and maintain comfortable line-height and wrapping.",
      "effort": "small"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "Zoom, reflow, and target sizing fail mobile accessibility",
      "evidence": "Lighthouse reports a restrictive mobile viewport and two target-size failures; independent 360px layout evidence shows 664px overflow.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Allow user zoom, remove horizontal overflow, and increase/space small targets.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Most images omit intrinsic dimensions",
      "evidence": "The document has doctype and charset, but 29 of 36 images lack explicit width/height dimensions.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Set width/height or aspect-ratio on thumbnails so layout can reserve space before image load.",
      "effort": "medium"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "Crawlable content is not reliably mobile-friendly",
      "evidence": "Links and raw content are crawlable, but the 360px layout overflows by 664px, so the combined mobile-friendly outcome fails.",
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Fix narrow reflow/overflow while preserving server-rendered anchors and metadata.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "Conventional sitemap URL returns 404",
      "evidence": "robots.txt is valid and canonical/hreflang pass Lighthouse, but /sitemap.xml returns a 404 page, leaving no sitemap at the conventional location.",
      "artifacts": [
        "evidence/robots.json",
        "evidence/sitemap.json",
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-summary.json"
      ],
      "suggestedFix": "Publish and reference a sitemap index or document the alternate sitemap location in robots.txt.",
      "effort": "small"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Structured and social metadata are absent",
      "evidence": "The home DOM has no JSON-LD, Open Graph title/description/image, or Twitter card metadata.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Add content-accurate JSON-LD and Open Graph/Twitter metadata for key templates.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Security header policy is incomplete",
      "evidence": "HTTPS/HSTS and frame protection are present, but CSP is limited to frame-ancestors, HSTS max-age is only 86400, and nosniff and Referrer-Policy headers are missing.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Deploy a script-restricting CSP, nosniff, Referrer-Policy, and a long-lived HSTS policy after rollout validation.",
      "effort": "medium"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Most initial traffic goes to third parties",
      "evidence": "117 of 146 requests and 1.59MB of 1.70MB transferred bytes went to third-party origins, including Google Accounts and tsyndicate; 11 third-party origins were observed.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Audit each third party, eliminate nonessential requests, gate optional integrations on consent, and proxy/self-host where appropriate.",
      "effort": "large"
    },
    {
      "id": "F25",
      "pathId": "signup",
      "url": "https://xhamster46.desi/signup?source=menuSignup",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "severity": "low",
      "confidence": "medium",
      "summary": "Signup has no passkey path",
      "evidence": "No permission prompt fired on load, but the inspected signup flow exposes password/social auth and no passkey/WebAuthn affordance.",
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Offer passkeys/WebAuthn alongside existing methods and introduce them only in the authentication context.",
      "effort": "large"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Cookies and browser policies are weak",
      "evidence": "Three of four cookies lack Secure and two use SameSite=None; nosniff and Referrer-Policy are absent and CSP does not constrain script sources.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Mark all HTTPS cookies Secure, avoid SameSite=None unless required, and strengthen CSP/referrer/nosniff policies.",
      "effort": "medium"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "severity": "medium",
      "confidence": "high",
      "summary": "The 404 document omits language metadata",
      "evidence": "Main pages declare lang=en and CSS inspection found 19 logical-property rules, but the Page not found document has no html lang value.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/404.png",
        "evidence/404-dom.json"
      ],
      "suggestedFix": "Set html lang (and dir where needed) on every template, including errors.",
      "effort": "small"
    },
    {
      "id": "F28",
      "pathId": "signup",
      "url": "https://xhamster46.desi/signup?source=menuSignup",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "accessible-error-announcement",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Signup lacks semantic required/error states",
      "evidence": "Revealed signup inputs are not marked required and expose no aria-invalid state; an empty submission attempt navigated the inspected target before an inline recoverable error could be observed.",
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "suggestedFix": "Mark required inputs, validate after interaction, keep users in context, and announce errors with aria-live/aria-invalid.",
      "effort": "medium"
    },
    {
      "id": "F29",
      "pathId": "signup",
      "url": "https://xhamster46.desi/signup?source=menuSignup",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Email autofill is disabled",
      "evidence": "Both email fields declare autocomplete=off; only the password field uses autocomplete=new-password.",
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-dom.json",
        "evidence/signup-form-probe.json"
      ],
      "suggestedFix": "Use autocomplete=email/username and preserve autocomplete=new-password; do not disable useful autofill.",
      "effort": "small"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "severity": "medium",
      "confidence": "high",
      "summary": "Image delivery wastes bytes and layout work",
      "evidence": "14 of 36 images are oversized, 29 lack dimensions, 14 use legacy formats, and 8 below-fold images are not lazy-loaded.",
      "artifacts": [
        "evidence/images.json"
      ],
      "suggestedFix": "Serve right-sized modern responsive images, lazy-load below-fold media, and reserve dimensions.",
      "effort": "medium"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Continuous shimmer and initial scripts waste work",
      "evidence": "The page starts eight continuously running shimmer animations even under reduced motion and loads 63 scripts on the initial listing.",
      "artifacts": [
        "evidence/reduced-motion.json",
        "evidence/home-trace-summary.json",
        "evidence/home-trace.json",
        "evidence/home-summary.json",
        "evidence/home.har"
      ],
      "suggestedFix": "Stop nonessential animation under reduced motion/when hidden and defer background/non-visible work.",
      "effort": "medium"
    },
    {
      "id": "F32",
      "pathId": "home",
      "url": "https://xhamster46.desi/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party request budget is excessive",
      "evidence": "Third parties account for 117 requests and 1.59MB transferred; the initial page totals 146 requests before a user starts media playback.",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Set and enforce request/byte budgets, especially for third-party scripts and pre-play media.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Fix narrow layout, reflow, zoom, and controls",
      "priority": 1,
      "findingIds": [
        "F08",
        "F09",
        "F18",
        "F20"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Repair accessible names, contrast, semantics, and focus",
      "priority": 2,
      "findingIds": [
        "F05",
        "F06",
        "F07",
        "F14",
        "F15",
        "F16",
        "F17",
        "F18"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Cut initial script/request and third-party cost",
      "priority": 3,
      "findingIds": [
        "F10",
        "F11",
        "F12",
        "F13",
        "F24",
        "F30",
        "F31",
        "F32"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Strengthen headers and cookie defaults",
      "priority": 4,
      "findingIds": [
        "F23",
        "F25",
        "F26"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Improve metadata, sitemap, and error-template language",
      "priority": 5,
      "findingIds": [
        "F20",
        "F21",
        "F22",
        "F27"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Respect theme and motion preferences",
      "priority": 6,
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Make signup validation and autofill humane",
      "priority": 7,
      "findingIds": [
        "F28",
        "F29"
      ],
      "guidanceId": "forms",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-23T22-35-55-973Z"
}
