{
  "url": "https://hi.xhamster46.desi",
  "auditedAt": "2026-07-22T19:08:00.600Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Atomic coverage complete across five representative paths; playback, payment, authenticated account settings, uploads, and post-signup submission were intentionally not exercised.",
  "page": {
    "appType": "hybrid",
    "framework": "SSR/hydrated application (framework not exposed)",
    "notes": "Public Hindi media catalogue with adaptive templates, PWA manifest/service worker, consent and age-verification surfaces."
  },
  "evidenceUsed": [
    "screenshot",
    "dom+css",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "lighthouse",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "Modern Web Guidance"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "fluid-scaling",
    "forms",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "defer-rendering-heavy-content",
    "security",
    "privacy",
    "autofill-sign-up-form",
    "improve-text-layout-and-legibility",
    "light-dismiss-a-dialog",
    "webmcp"
  ],
  "artifacts": [
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "Initial desktop viewport with consent interstitial",
      "condition": "desktop",
      "findingIds": [
        "F04",
        "F05",
        "F16",
        "F19"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "Homepage at 360x800 showing clipped fixed-width layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/category-mobile.png",
      "caption": "Category at 360x800",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-mobile.png",
      "caption": "Detail/player at 360x800",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F03",
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-mobile.png",
      "caption": "Signup entry at 360x800",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F06",
        "F17"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/404-mobile.png",
      "caption": "Responsive Hindi 404 recovery page",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "Homepage under dark preference",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-rejected.png",
      "caption": "Homepage after rejecting cookies",
      "condition": "consent rejected",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "Raw versus rendered discoverability result",
      "condition": "JavaScript on/off",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "Rendered browser view",
      "condition": "JavaScript enabled",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "Crawler/no-JS view",
      "condition": "JavaScript disabled",
      "findingIds": [
        "F04",
        "F18"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "Rendered homepage DOM and CSS",
      "condition": "desktop",
      "findingIds": [
        "F03",
        "F11"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/signup-dom.json",
      "caption": "Rendered signup DOM",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "Mobile overflow and long-task observations",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F06",
        "F12"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-layout.json",
      "caption": "Desktop layout shift and overflow observations",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "DevTools performance trace",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "Trace timing and TBT summary",
      "condition": "desktop",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "Initial-load network archive",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "Network totals, third parties, and render-blocking signals",
      "condition": "desktop",
      "findingIds": [
        "F07",
        "F16",
        "F19"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "Lighthouse performance/accessibility/best-practices/SEO audit",
      "condition": "mobile emulation",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-summary.json",
      "caption": "Compact Lighthouse summary",
      "condition": "mobile emulation",
      "findingIds": [
        "F07",
        "F09",
        "F10",
        "F11",
        "F12"
      ]
    },
    {
      "type": "other",
      "path": "evidence/script-attributes.json",
      "caption": "Live script async/defer attributes used to confirm HAR candidates",
      "condition": "desktop",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "Image element audit",
      "condition": "desktop",
      "findingIds": [
        "F08"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "Security header audit",
      "condition": "desktop",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "Cookie flag audit",
      "condition": "desktop",
      "findingIds": [
        "F15"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "Third-party/tracker origin audit",
      "condition": "desktop",
      "findingIds": [
        "F16",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "Client-side secret scan",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/page-probe.json",
      "caption": "Semantics, focus, targets, metadata and PWA probe",
      "condition": "desktop",
      "findingIds": [
        "F05",
        "F09",
        "F10",
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "Dark/reduced-motion computed-state probe",
      "condition": "preference emulation",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "Routes, metadata, robots and sitemap recon",
      "condition": "desktop",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-probe.json",
      "caption": "Signup choices/disclosures probe",
      "condition": "desktop",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/resilience-probe.json",
      "caption": "Manifest, service worker, and 404 probe",
      "condition": "desktop",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "Baseline heap summary",
      "condition": "after load",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "Heap after ten feed traversal cycles",
      "condition": "repeated interaction",
      "findingIds": [
        "F20"
      ]
    },
    {
      "type": "other",
      "path": "coverage-manifest.json",
      "caption": "Atomic check manifest and evidence plan",
      "condition": "planning",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/guidance/retrieved.md",
      "caption": "Retrieved Modern Web Guidance used to set the audit bar",
      "condition": "catalog 0.0.172",
      "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": "a screenshot or computed background under an emulated prefers-color-scheme: dark condition will reveal whether surfaces re-tint; the page CSS / a color-scheme declaration is corroborating evidence. The model chooses the method.",
      "evidence": "Evidence linked to F01: Under emulated dark preference the page stays on its fixed dark theme, while computed `color-scheme` is `normal`; the dark and default screenshots are effectively identical.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F01"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "a transition video, or an in-page probe of getAnimations()/computed animation under an emulated prefers-reduced-motion: reduce condition, can show whether motion stops. The model chooses.",
      "evidence": "Evidence linked to F02: The reduced-motion probe reports eight running `shimmer-56cf2` animations at 2,000 ms while `prefers-reduced-motion: reduce` is active.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F02"
      ],
      "artifacts": [
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot under emulated prefers-contrast: more / forced-colors, or an axe/contrast probe, can show whether controls and text survive. The model chooses.",
      "evidence": "Evidence linked to F11: Lighthouse reports 13 color-contrast failures and one link-in-text-block failure; no prefers-contrast handling was found in the captured CSS.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F11"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "a transition video of a route/state change shows whether it animates; the page source / ::view-transition usage corroborates. The model chooses.",
      "evidence": "Evidence linked to F03: Rendered DOM/CSS contains no view-transition usage although the site has many cross-document navigation paths; detail/category changes are abrupt.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F03"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/detail-mobile.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "high",
      "method": "source/CSS inspection for animation-timeline: scroll()/view(); a long-task / scroll-handler probe can flag the main-thread anti-pattern. The model chooses.",
      "evidence": "DOM/CSS inspection finds no main-thread scrollytelling effect; trace records only two load long tasks and ordinary scrolling remains native.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "CSS inspection for scroll-snap / overscroll-behavior / physics-based easing vs custom pointermove listeners. The model chooses.",
      "evidence": "No swipe, drag-to-dismiss, carousel, or other physics-based gesture is part of the inspected core browsing journey.",
      "pathIds": [
        "home"
      ],
      "reason": "No swipe, drag-to-dismiss, carousel, or other physics-based gesture is part of the inspected core browsing journey."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "a transition video of scrolling, or CSS inspection for scroll-state container queries. The model chooses.",
      "evidence": "Screenshots show persistent header/sidebar navigation and selected-section styling as content scrolls.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "pass",
      "confidence": "medium",
      "method": "CSS inspection for anchor-name / position-anchor / position-try on overlays; a screenshot of an open overlay near a viewport edge can show drift. The model chooses.",
      "evidence": "Navigation controls remain visually attached to their triggers in desktop and narrow captures; no drifting overlay was observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "CSS inspection for ::highlight / scroll-marker; a transition video can show whether attention is cued after navigation. The model chooses.",
      "evidence": "Red active-tab underlines, headings, and card hierarchy consistently direct attention to the current section.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot on load, or a DOM probe for full-viewport overlays present before interaction. The model chooses.",
      "evidence": "Evidence linked to F04: Desktop capture shows a large consent surface covering the content and controls before interaction; it is also present in the crawler/no-JS view.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F04"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/source inspection for popover / <dialog> / <details> vs custom overlay divs with manual dismiss handling. The model chooses.",
      "evidence": "Evidence linked to F05: A visible modal dominates the initial screenshot, but the DOM probe finds no `<dialog>`, `[role=dialog]`, or `[aria-modal=true]` on the homepage.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F05"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot plus layout metrics can show the proportion of the viewport given to chrome vs content. The model chooses.",
      "evidence": "Evidence linked to F04: Desktop capture shows a large consent surface covering the content and controls before interaction; it is also present in the crawler/no-JS view.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F04"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "layout metrics (scrollWidth vs innerWidth) and a screenshot at an emulated narrow mobile viewport reveal overflow. The model chooses.",
      "evidence": "Evidence linked to F06: Mobile layout reports 1,030 px content width against a 360 px visual viewport, 670 px horizontal overflow. Homepage, category, detail, and signup captures all clip primary content offscreen.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F06"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/category-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/signup-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "CSS inspection for @container / container-type; a computed-style probe of the same component in a wide vs narrow container shows whether it adapts. The model chooses.",
      "evidence": "Evidence linked to F06: Mobile layout reports 1,030 px content width against a 360 px visual viewport, 670 px horizontal overflow. Homepage, category, detail, and signup captures all clip primary content offscreen.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F06"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/category-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/signup-mobile.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "a focus probe (focus an element, read the computed outline) or an axe target-size check; a screenshot of a focused control corroborates. The model chooses.",
      "evidence": "Evidence linked to F09: Computed focus styles for search/login buttons report no outline, 53 visible controls are under 24 px in one dimension, and Lighthouse fails target-size.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F09"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "screenshot the first viewport and key scrolled states; inspect heading structure, nav labels, button text, and visual hierarchy; a task walkthrough can show whether the next action is obvious. The model chooses.",
      "evidence": "Homepage H1 and media grid clearly identify the discovery task; search and category navigation are prominent.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "run the flow manually with screenshots/DOM snapshots at each step; compare expected vs actual path length; inspect form requirements, navigation continuity, and blockers. The model chooses.",
      "evidence": "The audited home -> detail path reaches a video detail/verification surface; signup reaches clearly labelled provider/email choices.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "exercise network delay/failure, invalid input, empty data and success states; screenshot the state messaging and recovery controls; inspect whether browser history and focus remain sensible. The model chooses.",
      "evidence": "The 404 route returns HTTP 404 and renders a Hindi “page not found” explanation, support suggestion, and popular-video recovery links.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse reports LCP/CLS/TBT directly and the model may run it; layout metrics + a layout-shift observer + a long-task observer (the evidence primitives) give the same signal first-party. The model chooses.",
      "evidence": "Evidence linked to F07: Lighthouse reports 4.5 s LCP. HAR records 140 requests and 1.80 MB transferred, including 62 scripts/1.06 MB; Lighthouse estimates 1,130 ms render-blocking savings and trace records 145 ms TBT.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/script-attributes.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "the layout primitive's CLS observer captures shifts; a transition video of the first seconds shows content jumping. The model chooses.",
      "evidence": "Layout observer measured CLS 0.0014 on desktop and 0 on mobile during the capture window.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "the layout primitive records long tasks; a heap summary shows the object population; Lighthouse reports TBT. The model chooses.",
      "evidence": "Evidence linked to F07: Lighthouse reports 4.5 s LCP. HAR records 140 requests and 1.80 MB transferred, including 62 scripts/1.06 MB; Lighthouse estimates 1,130 ms render-blocking savings and trace records 145 ms TBT.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/script-attributes.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary can reveal cache headers, redirects, render-blocking candidates, weight offenders and dependency shape; a trace/Lighthouse insight report can corroborate LCP discovery, render-blocking, font-display and document latency. The model chooses.",
      "evidence": "Evidence linked to F07, F08: Lighthouse reports 4.5 s LCP. HAR records 140 requests and 1.80 MB transferred, including 62 scripts/1.06 MB; Lighthouse estimates 1,130 ms render-blocking savings and trace records 145 ms TBT. Image audit finds 29/36 images without width/height, 14 oversized, 14 legacy-format results, and eight below-fold images not lazy loaded.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07",
        "F08"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/script-attributes.json",
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/trace/code-coverage style evidence can flag unused JS/CSS, duplicated JavaScript and legacy code; a HAR summary shows third-party byte cost and request count. The model chooses.",
      "evidence": "Evidence linked to F07: Lighthouse reports 4.5 s LCP. HAR records 140 requests and 1.80 MB transferred, including 62 scripts/1.06 MB; Lighthouse estimates 1,130 ms render-blocking savings and trace records 145 ms TBT.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/script-attributes.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "axe-core (injectable via the evaluate primitive) or Lighthouse's a11y audits enumerate these; a DOM probe of the accessibility-relevant attributes is a first-party alternative. The model chooses.",
      "evidence": "Evidence linked to F10: Lighthouse fails button-name, label/content-name mismatch, list structure, and accessibility-tree audits; the probe also finds an unlabeled category filter input.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F10"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "axe contrast rules, a Lighthouse contrast audit, or an in-page probe computing contrast ratios from computed colours. The model chooses.",
      "evidence": "Evidence linked to F11: Lighthouse reports 13 color-contrast failures and one link-in-text-block failure; no prefers-contrast handling was found in the captured CSS.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F11"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "axe/Lighthouse structural audits; a focus-walk probe (tab through, read activeElement + computed outline) is a first-party alternative. The model chooses.",
      "evidence": "Evidence linked to F09, F10: Computed focus styles for search/login buttons report no outline, 53 visible controls are under 24 px in one dimension, and Lighthouse fails target-size. Lighthouse fails button-name, label/content-name mismatch, list structure, and accessibility-tree audits; the probe also finds an unlabeled category filter input.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F09",
        "F10"
      ],
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/lighthouse-summary.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "a screenshot of body and heading text, plus CSS inspection for text-wrap / text alignment / font fallback handling. The model chooses.",
      "evidence": "Screenshots show readable high-size headings/body copy with clear spacing on the correctly reflowing 404 surface.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse/axe target-size, meta-viewport and media-caption audits are useful signals; screenshots at narrow and zoomed conditions plus DOM/media inspection can corroborate. The model chooses.",
      "evidence": "Evidence linked to F12: Lighthouse fails the meta-viewport zoom audit and target-size; independent 360 px captures show severe clipping instead of reflow.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F12"
      ],
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile-layout.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "capture Runtime/Log CDP events, or a probe that reads collected errors; Lighthouse reports this too. The model chooses.",
      "evidence": "Lighthouse console-errors audit passed with zero items.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM/source probe for doctype/charset/img dimensions; CSS inspection for repetition; Lighthouse best-practices audits cover the rest. The model chooses.",
      "evidence": "Evidence linked to F08: Image audit finds 29/36 images without width/height, 14 oversized, 14 legacy-format results, and eight below-fold images not lazy loaded.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F08"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices audits and DevTools inspector/deprecation signals can surface these; DOM/source probes can verify paste handlers and prompt timing. The model chooses.",
      "evidence": "Lighthouse best-practices score is 1.0; no permission prompt, deprecated interaction, or console error was observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe reads <title> and meta[name=description]; Lighthouse SEO audits cover the same ground. The model chooses.",
      "evidence": "Rendered and raw HTML contain a Hindi title, H1, and descriptive meta description.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "a DOM probe for anchor hrefs, viewport meta, and robots; Lighthouse SEO audits corroborate. The model chooses.",
      "evidence": "Evidence linked to F06: Mobile layout reports 1,030 px content width against a 360 px visual viewport, 670 px horizontal overflow. Homepage, category, detail, and signup captures all clip primary content offscreen.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F06"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/category-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/signup-mobile.png"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response status and headers, <link rel=canonical>, hreflang links, robots meta, robots.txt and sitemap.xml; Lighthouse SEO audits cover several of these. The model chooses.",
      "evidence": "Evidence linked to F13: robots.txt is available, but `/sitemap.xml` returns 404; the canonical points to a different hostname (`hi.xhamster.desi`) than the audited host.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F13"
      ],
      "artifacts": [
        "evidence/recon.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "inspect JSON-LD/microdata and social preview tags against visible content; Lighthouse has a manual structured-data audit, and ad-hoc probes can parse schema.org blocks. The model chooses.",
      "evidence": "Evidence linked to F14: The rendered probe finds zero JSON-LD blocks and zero Open Graph tags despite a content-heavy media catalogue.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F14"
      ],
      "artifacts": [
        "evidence/page-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers / page protocol via an evaluate probe or the network layer; Lighthouse best-practices flags HTTPS and CSP issues. The model chooses.",
      "evidence": "Evidence linked to F15: Headers lack `X-Content-Type-Options` and `Referrer-Policy`; CSP is only `frame-ancestors`; two first-party cookies are not Secure and `settings` uses SameSite=None.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F15"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "inspect network requests and third-party origins; a probe of analytics/beacon calls. The model chooses.",
      "evidence": "Evidence linked to F16: Tracker/network captures observe 14 third-party origins and 117 third-party requests transferring 1.69 MB on initial load, while the consent interstitial is still awaiting a choice.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F16"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "a probe for permission requests fired on load; source inspection for passkey / WebAuthn / navigator.credentials usage in auth flows. The model chooses.",
      "evidence": "Evidence linked to F17: The signup surface exposes Google, X, and email choices, while the inspected DOM has no WebAuthn/passkey affordance. No permission prompt fired on load.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F17"
      ],
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-mobile.png"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "inspect response headers and browser security state; Lighthouse/DevTools security audits can corroborate HSTS, clickjacking, Trusted Types, origin isolation and third-party cookie findings. The model chooses.",
      "evidence": "Evidence linked to F15: Headers lack `X-Content-Type-Options` and `Referrer-Policy`; CSP is only `frame-ancestors`; two first-party cookies are not Secure and `settings` uses SameSite=None.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F15"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "load with scripting disabled or compare a no-JS fetch of the HTML against the rendered page; check for Baseline-aware fallbacks in source. The model chooses.",
      "evidence": "Evidence linked to F18: Discoverability finds 63% rendered-word coverage without JavaScript; the crawler capture adds a prominent JavaScript-required warning and still shows the consent surface.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "exercise menus near viewport edges with a screenshot; a probe of async/visibility behaviour. The model chooses.",
      "evidence": "Consent, navigation, account dialog, and 404 state all render without console/runtime failure.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "high",
      "method": "a probe for a service worker registration and a web app manifest; test behaviour offline. The model chooses.",
      "evidence": "A valid manifest (name, start URL, icons, display) and active service worker registration were observed.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "simulate failed fetches/offline mode or inspect representative 404/500 routes; screenshots and DOM snapshots of error/loading/empty states show whether recovery is possible. The model chooses.",
      "evidence": "A real unknown URL returns 404 and a clear, linked recovery page rather than a blank/error shell.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "a DOM probe for <html lang>/dir and CSS inspection for logical vs physical properties. The model chooses.",
      "evidence": "The document declares lang=\"hi\" and renders Hindi navigation/content; no bidi-sensitive RTL claim is made.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "source inspection for Intl.* usage vs hand-rolled formatting; a probe of rendered dates/numbers under a different locale. The model chooses.",
      "evidence": "The Hindi host localises titles, navigation, legal copy, and UI labels and exposes alternate locale hosts.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for time-zone-aware date handling vs naive local Date math. The model chooses.",
      "evidence": "No date, event scheduling, or time-zone-sensitive value appears in the representative public paths.",
      "pathIds": [
        "home"
      ],
      "reason": "No date, event scheduling, or time-zone-sensitive value appears in the representative public paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "a screenshot of consent/upsell/cancel flows; source inspection for declarative button actions vs misleading controls. The model chooses.",
      "evidence": "Evidence linked to F19: The page asks users to accept/reject cookies, yet HAR/trackers record substantial third-party traffic before either choice; this makes the stated control less effective.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F19"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "not-applicable",
      "confidence": "high",
      "method": "exercise a form, submit invalid input, and observe timing and clarity of errors via a screenshot or a :user-invalid / aria-invalid probe. The model chooses.",
      "evidence": "No editable personal-data form was exposed before choosing an identity provider/email route, and no data was submitted during this non-invasive audit.",
      "pathIds": [
        "home"
      ],
      "reason": "No editable personal-data form was exposed before choosing an identity provider/email route, and no data was submitted during this non-invasive audit."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source/DOM inspection for autocomplete attributes on form fields; a probe of autofill affordances. The model chooses.",
      "evidence": "No address, payment, credential, or profile fields were exposed in the inspected first sign-up step.",
      "pathIds": [
        "home"
      ],
      "reason": "No address, payment, credential, or profile fields were exposed in the inspected first sign-up step."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "walkthrough checkout/subscription/auth/account flows when present; screenshot pricing, confirmation, cancellation and reauthentication states; inspect passkey/autocomplete support for sign-in and payment. The model chooses.",
      "evidence": "The signup dialog identifies provider/email choices and discloses age verification, terms, privacy, and public-data implications before submission.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "inspect transferred image bytes vs displayed size; source inspection for modern formats and resolution handling. The model chooses.",
      "evidence": "Evidence linked to F08: Image audit finds 29/36 images without width/height, 14 oversized, 14 legacy-format results, and eight below-fold images not lazy loaded.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F08"
      ],
      "artifacts": [
        "evidence/home-images.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "a long-task / network probe for background fetches and processing while idle or backgrounded. The model chooses.",
      "evidence": "Trace found two bounded load tasks and no continuing idle long-task activity in the observed window.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "a HAR summary shows third-party bytes, font/media weight and caching; screenshots/video reveal autoplay and decorative media; trace/layout evidence shows whether media/animation keeps work running. The model chooses.",
      "evidence": "Evidence linked to F16: Tracker/network captures observe 14 third-party origins and 117 third-party requests transferring 1.69 MB on initial load, while the consent interstitial is still awaiting a choice.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F16"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for WebMCP / agentic-tool registration and agent-readable affordances. The model chooses.",
      "evidence": "The public media catalogue exposes no declared agent-facing task or transactional capability; WebMCP is therefore contextual and not required for this audit scope.",
      "pathIds": [
        "home"
      ],
      "reason": "The public media catalogue exposes no declared agent-facing task or transactional capability; WebMCP is therefore contextual and not required for this audit scope."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "source inspection for built-in AI (language model / summariser) usage. The model chooses.",
      "evidence": "No summarisation, translation, generation, or other inference feature is part of the inspected site purpose.",
      "pathIds": [
        "home"
      ],
      "reason": "No summarisation, translation, generation, or other inference feature is part of the inspected site purpose."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "high",
      "method": "compare heap snapshots for retained growth - a baseline, then one taken after repeating the interaction with `--interact` about 10x (the memory-tracer methodology: baseline -> repeat -> post -> compare). Performance.getMetrics (JSHeapUsedSize, Nodes) across the same before/after window is corroboration. If Chrome DevTools MCP is available, follow its memory-leak-debugging skill: capture baseline, target, and final snapshots, then use memlab or the provided comparison workflow rather than reading raw .heapsnapshot files directly. The package-native `heap` primitive remains the default path. This check is only meaningful where the page has a real interaction to repeat; for a static page with none, mark it not-applicable with a rationale rather than fabricating one. The model chooses.",
      "evidence": "Evidence linked to F20: Heap summary rises from 681,854 nodes/36.57 MB to 748,416 nodes/39.91 MB after ten top-to-bottom scroll cycles. Lazy content may explain part of the 9% growth, so confidence is low.",
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F20"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "a single `heap` summary's totals (nodeCount, totalSelfSizeBytes, constructor population) plus Performance.getMetrics (Nodes, JSHeapUsedSize) give the current footprint to judge against the page's purpose. Chrome DevTools MCP heap snapshots and memlab snapshot analysis can provide the same memory distribution when available. Read summaries or derived analysis, never raw snapshots unless a dedicated heap-analysis tool is doing the analysis. The model chooses.",
      "evidence": "Baseline heap is 36.57 MB for a media-rich listing; post-scroll is 39.91 MB, still bounded within the observed session.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "the `heap` summary by constructor (Detached* nodes) compared across a before/after pair shows a growing detached-DOM population; an `evaluate` probe can sample listener/timer counts (e.g. getEventListeners-style counting, or instrumenting addEventListener/setInterval) before and after the repeated interaction to spot growth. Chrome DevTools MCP heap snapshots plus the memory-leak-debugging skill's common-leak guidance can corroborate detached DOM, listeners, closures, globals, and unbounded caches. Caveat from the memory-tracer and Chrome DevTools MCP guidance: detached nodes can be intentional caches, so judge confidence rather than asserting a bug. The model chooses.",
      "evidence": "Neither heap summary surfaced Detached* constructors among its top retained constructors; no runaway task activity was observed.",
      "pathIds": [
        "home"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02",
        "F11"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F09"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F10",
        "F11",
        "F09",
        "F12"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16",
        "F17"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F08",
        "F16"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "All registered checks are contextual and not applicable to the inspected public site purpose."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F20"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and media listing, the primary discovery surface; tested at desktop, 360x800, dark/reduced-motion, no-JS, and after consent rejection.",
      "url": "https://hi.xhamster46.desi/",
      "conditions": [
        "desktop",
        "viewport 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "JavaScript disabled",
        "consent rejected"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Category/listing archetype, representing taxonomy and repeated media cards.",
      "url": "https://hi.xhamster46.desi/categories/amateur",
      "conditions": [
        "viewport 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Video detail/player archetype, representing the core watch journey without starting playback.",
      "url": "https://hi.xhamster46.desi/videos/horny-milf-cory-chase-seduces-virgin-step-nephew-and-fucks-his-monster-cock-xhAEjYy",
      "conditions": [
        "viewport 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Account-entry flow, inspected through the first sign-up choice and disclosures without submitting personal data.",
      "url": "https://hi.xhamster46.desi/signup?source=menuSignup",
      "conditions": [
        "viewport 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Representative HTTP failure and recovery surface.",
      "url": "https://hi.xhamster46.desi/this-route-should-not-exist-web-uplift",
      "conditions": [
        "viewport 360x800"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "medium",
      "confidence": "high",
      "summary": "Site theme does not declare or adapt the browser color scheme",
      "evidence": "Under emulated dark preference the page stays on its fixed dark theme, while computed `color-scheme` is `normal`; the dark and default screenshots are effectively identical.",
      "suggestedFix": "Declare `color-scheme` and bind surface/text tokens to `prefers-color-scheme` or `light-dark()` so browser UI and both preferences are handled.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "effort": "small",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/preferences-probe.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F02",
      "severity": "medium",
      "confidence": "high",
      "summary": "Loading shimmer continues under reduced-motion",
      "evidence": "The reduced-motion probe reports eight running `shimmer-56cf2` animations at 2,000 ms while `prefers-reduced-motion: reduce` is active.",
      "suggestedFix": "Disable nonessential shimmer/transition animation in a reduced-motion media query, retaining only necessary state feedback.",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "effort": "small",
      "artifacts": [
        "evidence/preferences-probe.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "summary": "Route changes have no view-transition treatment",
      "evidence": "Rendered DOM/CSS contains no view-transition usage although the site has many cross-document navigation paths; detail/category changes are abrupt.",
      "suggestedFix": "Add progressive cross-document view transitions for stable shared chrome and preserve an immediate fallback.",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "effort": "medium",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/detail-mobile.png"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F04",
      "severity": "high",
      "confidence": "high",
      "summary": "Consent interstitial obscures the primary content on arrival",
      "evidence": "Desktop capture shows a large consent surface covering the content and controls before interaction; it is also present in the crawler/no-JS view.",
      "suggestedFix": "Keep legally required consent concise, accessible, and non-obscuring where possible; expose equivalent accept/reject controls and preserve access to essential content.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/discoverability-crawler.png"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F05",
      "severity": "high",
      "confidence": "high",
      "summary": "The consent overlay is not exposed as a semantic dialog",
      "evidence": "A visible modal dominates the initial screenshot, but the DOM probe finds no `<dialog>`, `[role=dialog]`, or `[aria-modal=true]` on the homepage.",
      "suggestedFix": "Use `<dialog>` (or a correctly labelled modal dialog) with focus containment, Escape/platform dismissal where permitted, and focus restoration.",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "guidanceCategory": "user-experience",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/page-probe.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F06",
      "severity": "critical",
      "confidence": "high",
      "summary": "Primary templates are fixed-width and unusable at 360 px",
      "evidence": "Mobile layout reports 1,030 px content width against a 360 px visual viewport, 670 px horizontal overflow. Homepage, category, detail, and signup captures all clip primary content offscreen.",
      "suggestedFix": "Replace the fixed desktop canvas with fluid layout constraints, wrapping navigation, responsive grids/player sizing, and test every primary template at narrow widths.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "effort": "large",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png",
        "evidence/category-mobile.png",
        "evidence/detail-mobile.png",
        "evidence/signup-mobile.png"
      ],
      "pathId": "home",
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F07",
      "severity": "high",
      "confidence": "high",
      "summary": "Loading performance misses the LCP target and ships a large script chain",
      "evidence": "Lighthouse reports 4.5 s LCP. HAR records 140 requests and 1.80 MB transferred, including 62 scripts/1.06 MB; Lighthouse estimates 1,130 ms render-blocking savings and trace records 145 ms TBT.",
      "suggestedFix": "Prioritise the LCP resource, inline/split critical CSS, defer nonessential code and third parties, and remove unused CSS/JS identified by coverage.",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "effort": "large",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json",
        "evidence/script-attributes.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F08",
      "severity": "medium",
      "confidence": "high",
      "summary": "Media cards waste bytes and omit intrinsic dimensions",
      "evidence": "Image audit finds 29/36 images without width/height, 14 oversized, 14 legacy-format results, and eight below-fold images not lazy loaded.",
      "suggestedFix": "Emit intrinsic dimensions/aspect-ratio, correctly sized `srcset` candidates, modern formats, and lazy-load below-fold media while prioritising only the LCP image.",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "effort": "medium",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F09",
      "severity": "high",
      "confidence": "high",
      "summary": "Interactive controls have weak keyboard focus and undersized targets",
      "evidence": "Computed focus styles for search/login buttons report no outline, 53 visible controls are under 24 px in one dimension, and Lighthouse fails target-size.",
      "suggestedFix": "Provide a high-contrast `:focus-visible` indicator and enlarge/space pointer targets to at least the applicable accessibility target guidance.",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "effort": "medium",
      "artifacts": [
        "evidence/page-probe.json",
        "evidence/lighthouse-summary.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "summary": "Accessible names and semantic structure contain failures",
      "evidence": "Lighthouse fails button-name, label/content-name mismatch, list structure, and accessibility-tree audits; the probe also finds an unlabeled category filter input.",
      "suggestedFix": "Give every control a programmatic name matching visible text, use valid list children and landmarks, and verify the resulting accessibility tree.",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/page-probe.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and links fail contrast requirements",
      "evidence": "Lighthouse reports 13 color-contrast failures and one link-in-text-block failure; no prefers-contrast handling was found in the captured CSS.",
      "suggestedFix": "Raise foreground/background contrast, add a non-color link affordance, and preserve control/text distinction under increased/forced contrast.",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "effort": "medium",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-dom.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "summary": "Zoom/reflow and touch accessibility fail together",
      "evidence": "Lighthouse fails the meta-viewport zoom audit and target-size; independent 360 px captures show severe clipping instead of reflow.",
      "suggestedFix": "Do not cap page zoom, make layouts reflow at 320 CSS px/400% zoom, and enlarge crowded controls.",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "effort": "large",
      "artifacts": [
        "evidence/lighthouse-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "home",
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F13",
      "severity": "medium",
      "confidence": "high",
      "summary": "Indexing metadata is incomplete for a large catalogue",
      "evidence": "robots.txt is available, but `/sitemap.xml` returns 404; the canonical points to a different hostname (`hi.xhamster.desi`) than the audited host.",
      "suggestedFix": "Publish sitemap index files for public catalogue URLs and ensure each host variant intentionally canonicalises to a reachable preferred URL.",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "html",
      "effort": "medium",
      "artifacts": [
        "evidence/recon.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F14",
      "severity": "medium",
      "confidence": "high",
      "summary": "Shareable and structured metadata is absent on the entry page",
      "evidence": "The rendered probe finds zero JSON-LD blocks and zero Open Graph tags despite a content-heavy media catalogue.",
      "suggestedFix": "Add content-accurate schema.org JSON-LD and Open Graph/Twitter metadata to homepage, category, and detail templates.",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "improve-text-layout-and-legibility",
      "guidanceCategory": "html",
      "effort": "medium",
      "artifacts": [
        "evidence/page-probe.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F15",
      "severity": "high",
      "confidence": "high",
      "summary": "Security headers and cookies leave avoidable gaps",
      "evidence": "Headers lack `X-Content-Type-Options` and `Referrer-Policy`; CSP is only `frame-ancestors`; two first-party cookies are not Secure and `settings` uses SameSite=None.",
      "suggestedFix": "Send nosniff and a strict referrer policy, expand CSP beyond frame control, and mark HTTPS cookies Secure with the narrowest suitable SameSite/HttpOnly settings.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "effort": "medium",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F16",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party activity occurs before a consent decision",
      "evidence": "Tracker/network captures observe 14 third-party origins and 117 third-party requests transferring 1.69 MB on initial load, while the consent interstitial is still awaiting a choice.",
      "suggestedFix": "Gate nonessential third-party requests on an explicit consent state, minimise vendors/data, and self-host or defer assets where practical.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "effort": "large",
      "artifacts": [
        "evidence/trackers.json",
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "summary": "Account entry offers federated sign-in but no modern phishing-resistant option",
      "evidence": "The signup surface exposes Google, X, and email choices, while the inspected DOM has no WebAuthn/passkey affordance. No permission prompt fired on load.",
      "suggestedFix": "Offer passkey registration/authentication alongside existing options and request permissions only from an explanatory user action.",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "autofill-sign-up-form",
      "guidanceCategory": "forms",
      "effort": "large",
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-mobile.png"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F18",
      "severity": "medium",
      "confidence": "high",
      "summary": "Core content degrades noticeably without JavaScript",
      "evidence": "Discoverability finds 63% rendered-word coverage without JavaScript; the crawler capture adds a prominent JavaScript-required warning and still shows the consent surface.",
      "suggestedFix": "Server-render essential listings/navigation and make consent/basic browsing progressively enhanced so non-JS and failing-script states retain the core task.",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "defer-rendering-heavy-content",
      "guidanceCategory": "performance",
      "effort": "large",
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F19",
      "severity": "medium",
      "confidence": "high",
      "summary": "Consent choice and pre-consent loading undermine trustworthy defaults",
      "evidence": "The page asks users to accept/reject cookies, yet HAR/trackers record substantial third-party traffic before either choice; this makes the stated control less effective.",
      "suggestedFix": "Default nonessential processing off, keep choices equally legible, and make the observed network state match the user’s consent decision.",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "effort": "large",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/trackers.json",
        "evidence/home-summary.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    },
    {
      "id": "F20",
      "severity": "low",
      "confidence": "low",
      "summary": "Retained heap grows after repeated feed traversal",
      "evidence": "Heap summary rises from 681,854 nodes/36.57 MB to 748,416 nodes/39.91 MB after ten top-to-bottom scroll cycles. Lazy content may explain part of the 9% growth, so confidence is low.",
      "suggestedFix": "Repeat baseline/target/final snapshots in one session, force GC between snapshots, and investigate retained feed cards, observers, listeners, and caches if growth continues.",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "effort": "medium",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ],
      "url": "https://hi.xhamster46.desi/"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Rebuild homepage/category/detail/signup layouts to reflow at narrow widths",
      "priority": 1,
      "findingIds": [
        "F06",
        "F12"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Gate third parties until consent and align network behaviour with the stated choice",
      "priority": 2,
      "findingIds": [
        "F16",
        "F19"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Repair accessible names, contrast, focus visibility, zoom, and target sizing",
      "priority": 3,
      "findingIds": [
        "F09",
        "F10",
        "F11",
        "F12"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Replace the custom blocking consent surface with an accessible semantic dialog",
      "priority": 4,
      "findingIds": [
        "F04",
        "F05"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Improve LCP and trim the initial CSS/JS dependency chain",
      "priority": 5,
      "findingIds": [
        "F07"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Harden response headers and cookie attributes",
      "priority": 6,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Optimise responsive image delivery and reserve media dimensions",
      "priority": 7,
      "findingIds": [
        "F08"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Respect color and reduced-motion preferences",
      "priority": 8,
      "findingIds": [
        "F01",
        "F02"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Complete sitemap, canonical, structured-data, and social metadata",
      "priority": 9,
      "findingIds": [
        "F13",
        "F14"
      ],
      "guidanceId": "improve-text-layout-and-legibility",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Progressively render the core catalogue and investigate retained scroll growth",
      "priority": 10,
      "findingIds": [
        "F18",
        "F20"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Add passkey authentication and optional cross-document view transitions",
      "priority": 11,
      "findingIds": [
        "F03",
        "F17"
      ],
      "guidanceId": "autofill-sign-up-form",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 1200,
    "pathCount": 5,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T19-08-00-600Z"
}
