{
  "url": "https://hi.xhamster.desi",
  "auditedAt": "2026-07-19T23:55:28.132Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete atomic audit across six representative paths.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered multi-page site with client-side enhancements",
    "notes": "Public Hindi adult-media catalog. UK age verification and cookie consent affect the primary journey."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "discoverability",
    "heap-summary",
    "lighthouse",
    "Modern Web Guidance 0.0.172"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "component-specific-light-dark-theme",
    "accessibility",
    "adapt-scrollbar-to-contrast-preferences",
    "same-document-transitions",
    "cross-document-transitions",
    "group-element-transitions",
    "faster-spa-view-transitions",
    "scrollytelling",
    "parallax-scroll-effects",
    "scroll-entry-exit-effects",
    "carousel-slide-effects",
    "physics-based-easing",
    "individual-transform-properties",
    "animate-element-entry-exit",
    "animate-to-from-top-layer",
    "animate-to-intrinsic-sizes",
    "dynamic-sibling-animations",
    "interactive-content-reveal",
    "pull-to-reveal",
    "swipe-to-remove",
    "shrinking-header-on-scroll",
    "scroll-progress-indicator",
    "scroll-position-aware-elements",
    "scroll-snap-realtime-feedback",
    "scroll-snap-state-sync",
    "scroll-target-on-load",
    "soft-edge-content-fade",
    "scrollability-affordance-hints",
    "anchor-positioning-tab-underline",
    "position-aware-tooltips",
    "interest-triggered-tooltips",
    "interest-triggered-action-previews",
    "directional-navigation-transitions",
    "carousel-snap-highlights",
    "navigation-drawer",
    "stack-drill-down",
    "persistent-app-tours",
    "persistent-toast-notifications",
    "light-dismiss-a-dialog",
    "platform-controls-dismiss-dialog",
    "declarative-dialog-popover-control",
    "animated-select-picker",
    "branded-select-styling",
    "brand-consistent-forms",
    "custom-select-picker-layouts",
    "rich-media-picker",
    "complex-shapes",
    "shaped-cutouts",
    "overflow-clipping-control",
    "visually-texture-content",
    "apply-webgl-shaders",
    "interactive-content-in-3d-scenes",
    "highlight-text-ranges",
    "prevent-text-wrapping",
    "customize-scrollbar-color-and-thickness",
    "export-html-media-from-canvas",
    "fluid-scaling",
    "calculate-with-intrinsic-sizes",
    "css-layout",
    "size-aware-styling",
    "content-based-styling",
    "child-state-based-styling",
    "design-token-reactivity",
    "dynamic-sibling-styling",
    "form-fields-automatically-fit-contents",
    "improve-text-layout-and-legibility",
    "forms",
    "custom-button-actions",
    "accessible-error-announcement",
    "required-field-feedback",
    "validate-input-after-interaction",
    "identify-inp-causes",
    "schedule-tasks-by-priority",
    "optimize-preload-priority",
    "improve-next-page-load-performance",
    "interactions-in-complex-layouts",
    "performance",
    "visually-stable-font-fallbacks",
    "break-up-long-tasks",
    "identify-heavy-scripts",
    "optimize-script-priority",
    "defer-rendering-heavy-content",
    "defer-work-until-scroll-ends",
    "optimize-image-priority",
    "conditional-async-dependencies",
    "expose-canvas-content-to-browser-features",
    "move-dom-element-without-losing-state",
    "precise-text-alignment",
    "visually-stable-mixed-fonts",
    "css",
    "html",
    "reduce-style-repetition",
    "security",
    "privacy",
    "batch-analytics-events",
    "full-session-analytics",
    "calculate-total-foreground-time",
    "passkeys",
    "passkey-registration",
    "passkey-authentication",
    "passkey-reauthentication",
    "passkey-conditional-create",
    "passkey-management",
    "flicker-free-client-side-ab-testing",
    "consistent-cross-document-transitions",
    "stabilize-reactive-state",
    "resilient-context-menus-and-nested-dropdowns",
    "persistent-top-layer-ui",
    "detect-initial-visibility-state",
    "sequence-distributed-events",
    "translator",
    "language-detection",
    "support-global-calendar-systems",
    "capture-location-agnostic-data",
    "format-human-readable-durations",
    "manage-recurring-intervals",
    "calculate-event-differentials",
    "coordinate-global-events",
    "model-partial-time-concepts",
    "search-hidden-content",
    "select-menu-interaction",
    "style-parent-with-has",
    "autofill-address-form",
    "autofill-payment-form",
    "autofill-sign-in-form",
    "autofill-sign-up-form",
    "autofill-highlight-inputs",
    "deliver-optimized-decorative-images",
    "resolution-optimized-pseudo-elements",
    "deprioritize-background-fetches",
    "efficient-background-processing",
    "webmcp",
    "agentic-forms",
    "agentic-javascript-tools",
    "language-model",
    "summarizer",
    "declarative-button-actions"
  ],
  "artifacts": [
    {
      "type": "dom",
      "path": "evidence/404-dom.json",
      "caption": "404 dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/404.png",
      "caption": "404"
    },
    {
      "type": "other",
      "path": "evidence/age-flow-probe.json",
      "caption": "age flow probe"
    },
    {
      "type": "dom",
      "path": "evidence/category-dom.json",
      "caption": "category dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/category.png",
      "caption": "category"
    },
    {
      "type": "other",
      "path": "evidence/css-focus-probe.json",
      "caption": "css focus probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/detail-after-consent.png",
      "caption": "detail after consent"
    },
    {
      "type": "dom",
      "path": "evidence/detail-dom.json",
      "caption": "detail dom"
    },
    {
      "type": "other",
      "path": "evidence/detail-probe.json",
      "caption": "detail probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/detail.png",
      "caption": "detail"
    },
    {
      "type": "other",
      "path": "evidence/guidance-list.json",
      "caption": "guidance list"
    },
    {
      "type": "other",
      "path": "evidence/guidance-retrieved.md",
      "caption": "guidance retrieved"
    },
    {
      "type": "other",
      "path": "evidence/guidance-searches.json",
      "caption": "guidance searches"
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "heap post scroll"
    },
    {
      "type": "other",
      "path": "evidence/home-cookies.json",
      "caption": "home cookies"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-crawler.png",
      "caption": "home discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-discoverability-rendered.png",
      "caption": "home discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/home-discoverability.json",
      "caption": "home discoverability"
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom"
    },
    {
      "type": "other",
      "path": "evidence/home-headers.json",
      "caption": "home headers"
    },
    {
      "type": "other",
      "path": "evidence/home-images.json",
      "caption": "home images"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-light.png",
      "caption": "home light"
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile"
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe"
    },
    {
      "type": "other",
      "path": "evidence/home-secrets.json",
      "caption": "home secrets"
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary"
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary"
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace"
    },
    {
      "type": "other",
      "path": "evidence/home-trackers.json",
      "caption": "home trackers"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home"
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse.json",
      "caption": "lighthouse"
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion.json",
      "caption": "reduced motion"
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "search dom"
    },
    {
      "type": "screenshot",
      "path": "evidence/search.png",
      "caption": "search"
    },
    {
      "type": "dom",
      "path": "evidence/signup-dom.json",
      "caption": "signup dom"
    },
    {
      "type": "other",
      "path": "evidence/signup-email-probe.json",
      "caption": "signup email probe"
    },
    {
      "type": "other",
      "path": "evidence/signup-probe.json",
      "caption": "signup probe"
    },
    {
      "type": "screenshot",
      "path": "evidence/signup.png",
      "caption": "signup"
    },
    {
      "type": "other",
      "path": "evidence/site-files.json",
      "caption": "site files"
    }
  ],
  "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": "Emulated prefers-color-scheme: light; screenshot and computed style.",
      "evidence": "The light-preference screenshot remains the same dark palette, while computed html color-scheme is “normal”; the UI does not follow the requested light scheme.",
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dom.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated reduced motion and queried document animations/CSS.",
      "evidence": "With prefers-reduced-motion: reduce matched, eight shimmer animations remain running at 2000 ms; the stylesheet probe found no reduced-motion rule.",
      "artifacts": [
        "evidence/reduced-motion.json",
        "evidence/css-focus-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Stylesheet signal probe plus Lighthouse accessibility audit.",
      "evidence": "The CSS probe found no prefers-contrast or forced-colors handling, and Lighthouse reported failing color-contrast nodes.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Representative route walkthrough and stylesheet inspection.",
      "evidence": "Representative home, listing, search and detail route swaps are full document changes; the stylesheet probe found no view-transition CSS.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/detail.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "issues",
      "confidence": "high",
      "method": "Stylesheet signal probe, layout and trace.",
      "evidence": "The long listing uses sticky chrome and animated placeholders, but CSS inspection found no animation-timeline/scroll-timeline while trace and layout show main-thread work.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/home-trace-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "issues",
      "confidence": "high",
      "method": "Narrow screenshot/layout and stylesheet inspection.",
      "evidence": "The content grid is a long fixed-width scroller with no observed scroll-snap/overscroll gesture treatment; the 360 px capture exposes a desktop canvas rather than touch-native adaptation.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Long-page screenshot/DOM and stylesheet inspection.",
      "evidence": "Navigation is sticky but remains visually static across the long 4,486 px page; CSS inspection found no scroll-state query or progress feedback.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/css-focus-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "DOM/screenshot overlay review and stylesheet inspection.",
      "evidence": "The site exposes multiple menus/dropdowns, but the CSS probe found no anchor-name, position-anchor or position-try fallback rules.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/css-focus-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Visual review across home, search, category and detail.",
      "evidence": "Active navigation is visibly underlined, selected search/category states are highlighted, and the detail heading remains adjacent to its main action.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/search.png",
        "evidence/detail.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "First-load screenshots across representative templates.",
      "evidence": "A large cookie dialog appears on every fresh representative route and obscures the primary heading, results, video and sign-up content.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/category.png",
        "evidence/search.png",
        "evidence/detail.png",
        "evidence/signup.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "DOM dialog query on home and sign-up.",
      "evidence": "The visible home consent overlay was not exposed by dialog/[role=dialog]/aria-modal queries, while sign-up uses a role dialog; overlay semantics are inconsistent.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/signup-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Desktop and search/category visual review.",
      "evidence": "The first viewport devotes substantial space to two promotional/age banners, two navigation rows and a permanent sidebar; the content grid is crowded by competing promotions.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/category.png",
        "evidence/search.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Narrow viewport layout metrics and screenshot.",
      "evidence": "At 360×800 the layout primitive measured scrollWidth 1030 versus clientWidth 360, or 670 px overflow; the screenshot shows a clipped desktop layout.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Stylesheet probe and narrow screenshot.",
      "evidence": "CSS inspection found no @container/container-type signal, and cards/sidebar retain desktop geometry in the 360 px viewport.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/home-mobile.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus/target probe plus Lighthouse.",
      "evidence": "Focused search input and button compute to outline none and no box-shadow; Lighthouse also fails target-size, and 38 sampled focusables were under 24 px or hidden-sized.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative first-viewport walkthrough.",
      "evidence": "Home, category, search and detail templates expose descriptive headings, recognizable filters and visible next actions in the first content region.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/category.png",
        "evidence/search.png",
        "evidence/detail.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Search/detail/signup walkthrough including consent and age-action interaction.",
      "evidence": "Search reaches a populated results template; selecting a detail exposes the title and a clear “Start” age-verification action, which in turn opens explicit sign-up options. The legal prerequisite is stated before account creation.",
      "artifacts": [
        "evidence/search.png",
        "evidence/age-flow-probe.json",
        "evidence/signup-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Deliberate 404 plus age/sign-up state walkthrough.",
      "evidence": "The 404 route displays “Page not found”, explanatory copy, popular content and a route back home; age verification and sign-up states state what is required and what happens next.",
      "artifacts": [
        "evidence/404.png",
        "evidence/age-flow-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse mobile run corroborated by CDP trace.",
      "evidence": "Mobile Lighthouse reports LCP 4.2 s (failing the good threshold) and FCP 2.5 s; trace corroborates blocking work even though its warm capture LCP was 1.43 s.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Layout-shift observer and screenshot review.",
      "evidence": "The narrow layout observer recorded CLS 0.000006 with one negligible shift; no first-load jump was visible in retained captures.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "CDP trace summary and layout long-task observer.",
      "evidence": "The trace recorded two long tasks, longest 183.95 ms, with 177.59 ms total blocking time; layout independently observed tasks of 72 and 172 ms.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR initiator/priority summary confirmed by Lighthouse insights.",
      "evidence": "HAR found parser-blocking stylesheets and Lighthouse estimates 1,120 ms render-blocking savings plus 119 KiB cache-lifetime savings.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse code diagnostics and HAR resource totals.",
      "evidence": "Lighthouse estimates 57 KiB unused CSS and 26 KiB unused JavaScript; HAR transfers 61 scripts totaling 1.06 MB.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse accessibility audits, DOM/form and image probes.",
      "evidence": "Lighthouse fails button-name, link-name, label-content-name-mismatch and accessibility-tree audits; image audit also finds one missing alt.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-images.json",
        "evidence/signup-email-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse computed contrast audit.",
      "evidence": "Lighthouse color-contrast audit fails visible text/UI combinations.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Focus walk probe and Lighthouse structural audits.",
      "evidence": "Programmatic focus leaves the search input/button with no outline or shadow; Lighthouse reports malformed accessibility structure and list semantics.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Narrow screenshot and overflow metrics.",
      "evidence": "At 360 px, headings and cards are clipped outside the visual viewport and the dense sidebar leaves only a narrow content sliver, impairing reading.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse viewport/target audits plus narrow layout.",
      "evidence": "Lighthouse reports viewport scaling restrictions and insufficient target sizes; the 360 px layout fails reflow with 670 px overflow.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices runtime audits.",
      "evidence": "Lighthouse best-practices score is 1.0 and its console/JavaScript-error audits did not report a failure on the tested load.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM metadata plus images primitive and Lighthouse.",
      "evidence": "Document has HTML doctype and UTF-8, but image audit finds 29 of 36 images without width/height; Lighthouse independently fails unsized-images.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-images.json",
        "evidence/lighthouse.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse best-practices and first-load walkthrough.",
      "evidence": "Lighthouse best-practices is 1.0 with no reported deprecation, vulnerable-library or prompt-on-load failure; no permission prompt appeared during recon.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-desktop.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM metadata and no-JS discoverability fetch.",
      "evidence": "Home and detail probes expose unique descriptive titles and meta descriptions; raw HTML retains title, H1 and description.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-probe.json",
        "evidence/home-discoverability.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse SEO, DOM link probe and robots fetch.",
      "evidence": "Lighthouse SEO is 1.0; rendered navigation uses real href links, viewport meta exists and robots allows public content routes.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-probe.json",
        "evidence/site-files.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Canonical DOM probes and in-browser robots/sitemap fetch.",
      "evidence": "Home/detail have canonical URLs and 200 responses, but /sitemap.xml returns 404 and no hreflang links were observed despite many localized host variants.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-probe.json",
        "evidence/site-files.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Detail metadata probe against visible video entity.",
      "evidence": "The representative video detail has Open Graph tags but no JSON-LD VideoObject (jsonld count 0), limiting rich-entity understanding.",
      "artifacts": [
        "evidence/detail-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Headers and cookies primitives; secrets scan found no exposed sensitive secret.",
      "evidence": "HTTPS/HSTS are present, but CSP is only frame-ancestors and two first-party cookies are not Secure; settings is SameSite=None.",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-secrets.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "HAR third-party summary, tracker inventory and link probe.",
      "evidence": "HAR attributes 117/142 requests and 1.64/1.76 MB to 15 third-party origins; generated outbound URLs carry long experiment/session identifiers.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Sign-up dialog walkthrough and DOM form probe.",
      "evidence": "No permission prompt appeared on load, but the sign-up dialog offers Google, X and email/password only; no passkey/WebAuthn option was observed.",
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-email-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Main-document security-header primitive.",
      "evidence": "frame-ancestors and X-Frame-Options are present, but X-Content-Type-Options and Referrer-Policy are missing; CSP lacks broader script/style defenses.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Discoverability raw-HTML/rendered diff and screenshot pair.",
      "evidence": "Raw HTML is 441,540 bytes, contains title/H1/meta and 65% of rendered content tokens; the crawler view is populated and is not a JS shell.",
      "artifacts": [
        "evidence/home-discoverability.json",
        "evidence/home-discoverability-crawler.png",
        "evidence/home-discoverability-rendered.png"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "issues",
      "confidence": "high",
      "method": "Narrow layout and screenshot on the live runtime.",
      "evidence": "At a 360 px visual viewport, runtime layout remains 1030 px wide and overlays/content are clipped; this is not robust across the supported viewport condition.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "high",
      "method": "Manifest fetch and service-worker runtime probe.",
      "evidence": "A valid manifest with start_url, scope, icons and minimal-ui is linked, and navigator.serviceWorker.controller is present.",
      "artifacts": [
        "evidence/site-files.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Deliberate 404 navigation and DOM/screenshot review.",
      "evidence": "A deliberately nonexistent route renders a localized “Page not found” state with explanation, popular content and a home recovery path rather than a blank shell.",
      "artifacts": [
        "evidence/404.png",
        "evidence/404-dom.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "DOM language probe and stylesheet property scan.",
      "evidence": "html lang=\"hi\" is correct, but dir is absent and CSS sampling found 705 physical left/right declarations versus 14 logical-property uses, risking RTL variants.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/css-focus-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "issues",
      "confidence": "high",
      "method": "Visual/DOM review of home and detail localized content.",
      "evidence": "The Hindi UI renders numerous compact counts with English-style M/K and mixed English labels, despite exposing dozens of locale variants.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/age-flow-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Representative DOM and flow review.",
      "evidence": "No dates, schedules, recurring events or user-entered time concepts appear in the representative browsing, search, detail or sign-up flows.",
      "reason": "The audited surfaces do not expose time-zone-sensitive data or event scheduling."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Consent, age and sign-up screenshot/dialog review.",
      "evidence": "Consent accept/reject actions have equal visual weight, the age requirement is stated before proceeding, and sign-up discloses data/public-account implications and terms.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/age-flow-probe.json",
        "evidence/signup-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Opened email sign-up state and inspected field semantics.",
      "evidence": "The email sign-up state exposes duplicate text inputs named email without associated labels, autocomplete is off and required is false, making validation and recovery cues ambiguous.",
      "artifacts": [
        "evidence/signup-email-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F34"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Sign-up and home form attribute probes.",
      "evidence": "Email inputs use type=text and autocomplete=off; search also disables autocomplete, while password correctly uses new-password. Account input assistance is therefore incomplete.",
      "artifacts": [
        "evidence/signup-email-probe.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F35"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Sign-up dialog walkthrough and probe.",
      "evidence": "Sign-up presents federated and email choices, discloses age requirements, public-data use, terms and privacy before submission, and retains a login alternative.",
      "artifacts": [
        "evidence/signup.png",
        "evidence/signup-probe.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered image sizing/format primitive.",
      "evidence": "Image audit finds 13 oversized images, 15 legacy-format images, 29 without dimensions and three without responsive sources.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F36"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "HAR, reduced-motion animation probe and trace.",
      "evidence": "The entry page loads 61 scripts (1.06 MB), keeps eight shimmer animations running even under reduced motion and incurs 177.59 ms blocking time.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/reduced-motion.json",
        "evidence/home-trace-summary.json"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F37"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR third-party byte accounting and first viewport review.",
      "evidence": "Third-party hosts account for 117 requests and 1.64 MB (93% of transfer) before the user engages with media; promotional and recommendation modules dominate the initial surface.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "pathIds": [
        "home"
      ],
      "findingIds": [
        "F38"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Intent/applicability judgement from recon and WebMCP feature probe.",
      "evidence": "No agent-facing workflow was declared; the site is an age-gated adult media catalog whose sensitive actions should not be exposed to autonomous agents by default.",
      "reason": "No safe, declared agent-facing capability is in scope for this age-gated media experience."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement across representative flows.",
      "evidence": "Search, browsing, playback gating and sign-up do not require summarization or on-device generative inference to complete their core purpose.",
      "reason": "No user-benefiting inference use case was identified; adding AI would be unnecessary work."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Baseline and post-interaction heap summaries using a repeated real scroll interaction.",
      "evidence": "After ten full-page scroll down/up cycles, heap self size was 37.97 MB versus 37.13 MB baseline (+2.3%) and node count +2.1%; no unbounded growth is demonstrated by this bounded exercise.",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Heap totals interpreted against image/DOM page complexity.",
      "evidence": "Baseline heap self size is 37.13 MB for a media-rich grid with 36 rendered images and extensive navigation; the measured footprint is substantial but proportionate and remained below 40 MB post-exercise.",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/home-images.json"
      ],
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Compared baseline/post heap constructor summaries after repeated interaction.",
      "evidence": "Neither heap summary reports a Detached* constructor among retained constructor populations, and repeated scrolling increased total heap only modestly rather than showing runaway listener/timer retention.",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ],
      "pathIds": [
        "home"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15",
        "F16",
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20",
        "F21",
        "F22",
        "F23"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F25",
        "F26"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F27",
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F32",
        "F33"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F34",
        "F35"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F36",
        "F37",
        "F38"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No safe, declared agent-facing capability is in scope for this age-gated media experience. No user-benefiting inference use case was identified; adding AI would be unnecessary work."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Entry page and primary content-discovery template; tested desktop, narrow viewport, preference media, crawler view, performance, network, accessibility and memory.",
      "url": "https://hi.xhamster.desi/",
      "conditions": [
        "desktop",
        "viewport: 360x800",
        "prefers-color-scheme: light",
        "prefers-reduced-motion: reduce",
        "JavaScript disabled crawler"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Representative category/listing template (British category).",
      "url": "https://hi.xhamster.desi/categories/british",
      "conditions": [
        "desktop",
        "cookie dialog on first visit"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Representative search-results journey for query “test”.",
      "url": "https://hi.xhamster.desi/search/test",
      "conditions": [
        "desktop",
        "cookie dialog on first visit"
      ],
      "result": "issues"
    },
    {
      "id": "detail",
      "description": "Representative video-detail and age-verification journey; followed consent then Start to the sign-up prerequisite.",
      "url": "https://hi.xhamster.desi/videos/my-stepson-fucks-me-hard-with-my-husband-in-the-same-bed-xhnjNOL",
      "conditions": [
        "desktop",
        "cookie consent",
        "age-verification prerequisite"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Representative account/sign-up dialog; opened the email route and inspected fields and disclosures.",
      "url": "https://hi.xhamster.desi/signup?source=menuSignup",
      "conditions": [
        "desktop",
        "email sign-up state"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Representative HTTP/navigation failure state using a deliberately nonexistent route.",
      "url": "https://hi.xhamster.desi/this-route-should-not-exist-web-uplift",
      "conditions": [
        "desktop",
        "404"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-color-scheme: a usable dark mode exists and is driven by the user's preference (color-scheme / prefers-color-scheme / light-dark()), not hard-coded light only.",
      "evidence": "The light-preference screenshot remains the same dark palette, while computed html color-scheme is “normal”; the UI does not follow the requested light scheme.",
      "artifacts": [
        "evidence/home-light.png",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Declare color-scheme and bind surface/text tokens to prefers-color-scheme or light-dark(), while retaining an explicit user override.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-reduced-motion: non-essential animations and auto-advance are reduced or removed when the user asks for less motion.",
      "evidence": "With prefers-reduced-motion: reduce matched, eight shimmer animations remain running at 2000 ms; the stylesheet probe found no reduced-motion rule.",
      "artifacts": [
        "evidence/reduced-motion.json",
        "evidence/css-focus-probe.json"
      ],
      "suggestedFix": "Disable shimmer and other nonessential motion inside @media (prefers-reduced-motion: reduce).",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "severity": "medium",
      "confidence": "high",
      "summary": "Honours prefers-contrast / forced-colors: controls, text and scrollbars remain visible under high-contrast preferences.",
      "evidence": "The CSS probe found no prefers-contrast or forced-colors handling, and Lighthouse reported failing color-contrast nodes.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Add forced-colors/prefers-contrast adaptations and correct the concrete contrast failures.",
      "effort": "medium"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "severity": "low",
      "confidence": "high",
      "summary": "State and route changes use View Transitions (including same-document, cross-document and scroll-driven/staggered) rather than instant, jarring swaps.",
      "evidence": "Representative home, listing, search and detail route swaps are full document changes; the stylesheet probe found no view-transition CSS.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/detail.png"
      ],
      "suggestedFix": "Add progressive cross-document View Transitions for same-origin route changes, with reduced-motion handling.",
      "effort": "medium"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "scroll-driven-animations",
      "guidanceId": "scroll-entry-exit-effects",
      "severity": "low",
      "confidence": "high",
      "summary": "Scroll-linked motion (parallax, scrollytelling, entry/exit reveals) uses declarative CSS scroll-driven animations (off main thread) instead of scroll event listeners.",
      "evidence": "The long listing uses sticky chrome and animated placeholders, but CSS inspection found no animation-timeline/scroll-timeline while trace and layout show main-thread work.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Use CSS scroll-driven animation for any scroll-linked feedback and avoid scroll-event-driven visual work.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "physical-gestures",
      "guidanceId": "physics-based-easing",
      "severity": "low",
      "confidence": "high",
      "summary": "Gesture-driven interactions and entry/exit motion feel native (declarative overscroll/scroll-snap, physics-based easing, animating to intrinsic sizes, pull/swipe gestures) rather than fighting the platform with custom pointer handlers.",
      "evidence": "The content grid is a long fixed-width scroller with no observed scroll-snap/overscroll gesture treatment; the 360 px capture exposes a desktop canvas rather than touch-native adaptation.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Let native scrolling lead, add appropriate overscroll/scroll-snap for gesture surfaces, and avoid desktop-only interaction geometry.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "severity": "low",
      "confidence": "high",
      "summary": "Sticky/affixed UI reacts to scroll state and position (e.g. the new scroll-state(scrolled) query, shrinking headers, progress indicators) so chrome responds to position instead of static or JS-driven toggling.",
      "evidence": "Navigation is sticky but remains visually static across the long 4,486 px page; CSS inspection found no scroll-state query or progress feedback.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/css-focus-probe.json"
      ],
      "suggestedFix": "Use scroll-state container queries or a lightweight progress affordance to adapt sticky chrome on long pages.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "position-aware-tooltips",
      "severity": "low",
      "confidence": "high",
      "summary": "Tooltips, popovers and menus use CSS anchor positioning (with fallback positions) so they stay attached and reposition correctly rather than being manually positioned.",
      "evidence": "The site exposes multiple menus/dropdowns, but the CSS probe found no anchor-name, position-anchor or position-try fallback rules.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/css-focus-probe.json"
      ],
      "suggestedFix": "Use CSS anchor positioning with position-try fallbacks for menus and contextual overlays.",
      "effort": "medium"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "high",
      "confidence": "high",
      "summary": "No intrusive pop-ups, interstitials or banners that obscure content on load; overlays are dismissible and content-first.",
      "evidence": "A large cookie dialog appears on every fresh representative route and obscures the primary heading, results, video and sign-up content.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/category.png",
        "evidence/search.png",
        "evidence/detail.png",
        "evidence/signup.png"
      ],
      "suggestedFix": "Replace the blocking first-load consent wall with a compact, non-obscuring consent surface where legally possible and persist the choice reliably.",
      "effort": "large"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "severity": "medium",
      "confidence": "high",
      "summary": "Overlays and rich controls use the right primitive: popover (with declarative light-dismiss) for transient UI, dialog for modal flows, details for disclosure, native-but-branded selects and pickers, rather than ad-hoc divs.",
      "evidence": "The visible home consent overlay was not exposed by dialog/[role=dialog]/aria-modal queries, while sign-up uses a role dialog; overlay semantics are inconsistent.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/signup-probe.json"
      ],
      "suggestedFix": "Implement modal flows with <dialog> (or complete equivalent semantics), focus trapping/restoration and platform dismissal.",
      "effort": "medium"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "overflow-clipping-control",
      "severity": "medium",
      "confidence": "high",
      "summary": "Minimise non-content chrome and borders so the content is the focus, not the application frame; expressive/decorative visuals serve the content rather than crowd it.",
      "evidence": "The first viewport devotes substantial space to two promotional/age banners, two navigation rows and a permanent sidebar; the content grid is crowded by competing promotions.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/category.png",
        "evidence/search.png"
      ],
      "suggestedFix": "Collapse promotional chrome, remove duplicate navigation, and give the primary content/actions more of the first viewport.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "severity": "critical",
      "confidence": "high",
      "summary": "Layout adapts to narrow viewports with no horizontal overflow and no fixed pixel widths forcing a desktop layout on mobile; viewport meta present; fluid scaling and intrinsic sizing rather than brittle breakpoints.",
      "evidence": "At 360×800 the layout primitive measured scrollWidth 1030 versus clientWidth 360, or 670 px overflow; the screenshot shows a clipped desktop layout.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove the 1024 px minimum canvas, use intrinsic/fluid grid sizing, and verify zero horizontal overflow at narrow widths.",
      "effort": "large"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "severity": "medium",
      "confidence": "high",
      "summary": "Components adapt to their container with container queries (incl. anchored container queries) and content/state-based styling where reused at different sizes, not only global viewport breakpoints.",
      "evidence": "CSS inspection found no @container/container-type signal, and cards/sidebar retain desktop geometry in the 360 px viewport.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Make reused cards and navigation adapt with container queries and intrinsic sizing rather than a fixed desktop canvas.",
      "effort": "medium"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Touch targets are adequately sized and hover-only affordances have a non-hover fallback, and keyboard focus is visible, so the UI works for touch, pointer and keyboard alike.",
      "evidence": "Focused search input and button compute to outline none and no box-shadow; Lighthouse also fails target-size, and 38 sampled focusables were under 24 px or hidden-sized.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Add strong :focus-visible styling, ensure at least 24×24 CSS px targets with spacing (prefer 44×44 for primary touch controls), and expose non-hover equivalents.",
      "effort": "large"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "optimize-image-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "Core Web Vitals are in the good range: LCP is fast, interaction latency (INP) is low, and CLS is minimal; work is prioritised and deferred sensibly.",
      "evidence": "Mobile Lighthouse reports LCP 4.2 s (failing the good threshold) and FCP 2.5 s; trace corroborates blocking work even though its warm capture LCP was 1.43 s.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritize the real LCP resource, reduce render-blocking work and validate LCP under mobile throttling until it is ≤2.5 s.",
      "effort": "large"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "severity": "medium",
      "confidence": "high",
      "summary": "The main thread is not blocked by long tasks or heavy scripting; work is deferred, chunked, prioritised, or moved off-thread.",
      "evidence": "The trace recorded two long tasks, longest 183.95 ms, with 177.59 ms total blocking time; layout independently observed tasks of 72 and 172 ms.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Profile the 402 KB index bundle, split long tasks and schedule/defer noncritical initialization.",
      "effort": "medium"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-preload-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "Critical resources are delivered efficiently: cache headers are useful, render-blocking chains are short, fonts do not block or shift text, HTTP delivery is modern, and network dependency trees do not delay the main content.",
      "evidence": "HAR found parser-blocking stylesheets and Lighthouse estimates 1,120 ms render-blocking savings plus 119 KiB cache-lifetime savings.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home.har",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Inline only critical CSS, defer noncritical styles/scripts, set effective immutable caching and tune LCP preload/fetchpriority.",
      "effort": "large"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "severity": "medium",
      "confidence": "high",
      "summary": "The page does not ship large unused or duplicated JavaScript/CSS, avoidable legacy bundles, or third-party code that dominates the load without user value.",
      "evidence": "Lighthouse estimates 57 KiB unused CSS and 26 KiB unused JavaScript; HAR transfers 61 scripts totaling 1.06 MB.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Code-split by template, remove unused CSS/JS and avoid loading account/promotion modules before user intent.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Interactive elements have accessible names, correct roles, and form fields have labels; images have alt text where meaningful; canvas/expressive content is exposed to assistive technology.",
      "evidence": "Lighthouse fails button-name, link-name, label-content-name-mismatch and accessibility-tree audits; image audit also finds one missing alt.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-images.json",
        "evidence/signup-email-probe.json"
      ],
      "suggestedFix": "Give every control a correct accessible name/role, associate visible labels, repair the accessibility tree and add appropriate alt text.",
      "effort": "large"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text and essential UI meet WCAG colour-contrast minimums against their background.",
      "evidence": "Lighthouse color-contrast audit fails visible text/UI combinations.",
      "artifacts": [
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Raise failing foreground/background pairs to WCAG AA while preserving visible states.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Heading and landmark structure is logical, focus order follows reading order, keyboard focus is always visible, and interactive state survives DOM moves.",
      "evidence": "Programmatic focus leaves the search input/button with no outline or shadow; Lighthouse reports malformed accessibility structure and list semantics.",
      "artifacts": [
        "evidence/css-focus-probe.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Restore visible focus, correct list/landmark structure, and verify logical keyboard order through dialogs and navigation.",
      "effort": "large"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Text is legible and inclusively rendered: comfortable line layout, precise alignment, stable rendering across mixed fonts, no clipping or cramped wrapping that harms comprehension.",
      "evidence": "At 360 px, headings and cards are clipped outside the visual viewport and the dense sidebar leaves only a narrow content sliver, impairing reading.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Reflow navigation/sidebar below or behind a menu, use fluid text measures and prevent clipped headings/cards.",
      "effort": "large"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "severity": "critical",
      "confidence": "high",
      "summary": "The experience remains usable when zoomed or reflowed, touch targets are large enough, media has captions or equivalents where needed, and the viewport does not prevent user scaling.",
      "evidence": "Lighthouse reports viewport scaling restrictions and insufficient target sizes; the 360 px layout fails reflow with 670 px overflow.",
      "artifacts": [
        "evidence/lighthouse.json",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Remove maximum-scale/user-scalable restrictions from the delivered viewport, fix reflow and enlarge touch targets.",
      "effort": "large"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Valid doctype and charset, images sized with correct aspect ratio, no deprecated APIs misused, and CSS/HTML are well structured and not needlessly repetitive. (HTTPS, CSP and permission hygiene are judged under be-private-and-secure, not here.)",
      "evidence": "Document has HTML doctype and UTF-8, but image audit finds 29 of 36 images without width/height; Lighthouse independently fails unsized-images.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-images.json",
        "evidence/lighthouse.json"
      ],
      "suggestedFix": "Emit intrinsic width/height or aspect-ratio for every image and keep responsive source dimensions correct.",
      "effort": "medium"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Public pages expose the indexing signals search engines need: successful HTTP status, canonical URL when appropriate, hreflang for localized variants, robots/sitemap consistency, and no accidental noindex/noarchive policy.",
      "evidence": "Home/detail have canonical URLs and 200 responses, but /sitemap.xml returns 404 and no hreflang links were observed despite many localized host variants.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/detail-probe.json",
        "evidence/site-files.json"
      ],
      "suggestedFix": "Publish a sitemap index and reciprocal hreflang clusters for localized pages, aligned with canonical and robots policy.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Where the page represents an article, product, organization, event, place or other rich entity, structured data and share-preview metadata accurately describe the visible content.",
      "evidence": "The representative video detail has Open Graph tags but no JSON-LD VideoObject (jsonld count 0), limiting rich-entity understanding.",
      "artifacts": [
        "evidence/detail-probe.json"
      ],
      "suggestedFix": "Add accurate schema.org VideoObject JSON-LD matching the visible title, thumbnail, duration, upload date and canonical URL.",
      "effort": "medium"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Served over HTTPS with a sensible Content-Security-Policy and secure, SameSite cookies; no mixed content or obvious transport/header smells.",
      "evidence": "HTTPS/HSTS are present, but CSP is only frame-ancestors and two first-party cookies are not Secure; settings is SameSite=None.",
      "artifacts": [
        "evidence/home-headers.json",
        "evidence/home-cookies.json",
        "evidence/home-secrets.json"
      ],
      "suggestedFix": "Mark all HTTPS cookies Secure, avoid SameSite=None unless necessary, and deploy a nonce/hash-based CSP beyond frame-ancestors.",
      "effort": "large"
    },
    {
      "id": "F28",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "No over-collection of user data, no leaky third parties, and analytics/background data collection is minimised and batched rather than chatty or session-wide by default.",
      "evidence": "HAR attributes 117/142 requests and 1.64/1.76 MB to 15 third-party origins; generated outbound URLs carry long experiment/session identifiers.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trackers.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Minimize identifiers, defer third-party modules until intent/consent, proxy or self-host essential assets and batch analytics.",
      "effort": "large"
    },
    {
      "id": "F29",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "severity": "medium",
      "confidence": "high",
      "summary": "Permission prompts are requested in context (not on load), and authentication uses modern, phishing-resistant methods (passkeys / WebAuthn) where relevant rather than passwords alone.",
      "evidence": "No permission prompt appeared on load, but the sign-up dialog offers Google, X and email/password only; no passkey/WebAuthn option was observed.",
      "artifacts": [
        "evidence/signup-probe.json",
        "evidence/signup-email-probe.json"
      ],
      "suggestedFix": "Add passkey registration/authentication alongside federated options and request any browser permissions only after explicit intent.",
      "effort": "medium"
    },
    {
      "id": "F30",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Browser-enforced defenses are configured where appropriate: HSTS, clickjacking protection (frame-ancestors / X-Frame-Options), Trusted Types for XSS-sensitive apps, origin isolation, privacy-preserving third-party cookie posture, and sensible Referrer-Policy / Permissions-Policy.",
      "evidence": "frame-ancestors and X-Frame-Options are present, but X-Content-Type-Options and Referrer-Policy are missing; CSP lacks broader script/style defenses.",
      "artifacts": [
        "evidence/home-headers.json"
      ],
      "suggestedFix": "Add nosniff and a strict Referrer-Policy, narrow Permissions-Policy, and strengthen CSP/Trusted Types where applicable.",
      "effort": "large"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-resilient",
      "principleCheckId": "resilient-runtime-behaviour",
      "guidanceId": "resilient-context-menus-and-nested-dropdowns",
      "severity": "high",
      "confidence": "high",
      "summary": "The page behaves robustly at runtime: overlays and menus never get cut off, DOM state survives moves, background work and async dependencies are sequenced and conditional rather than fragile, and initial visibility state is detected correctly.",
      "evidence": "At a 360 px visual viewport, runtime layout remains 1030 px wide and overlays/content are clipped; this is not robust across the supported viewport condition.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Remove fixed runtime geometry and test every overlay/menu at narrow edges with collision-safe positioning.",
      "effort": "large"
    },
    {
      "id": "F32",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "severity": "medium",
      "confidence": "high",
      "summary": "Correct lang and dir attributes, logical CSS properties (inline/block) rather than physical left/right, and translation-ready markup so the layout and reading order survive other languages and writing modes.",
      "evidence": "html lang=\"hi\" is correct, but dir is absent and CSS sampling found 705 physical left/right declarations versus 14 logical-property uses, risking RTL variants.",
      "artifacts": [
        "evidence/home-probe.json",
        "evidence/css-focus-probe.json"
      ],
      "suggestedFix": "Set direction explicitly/automatically and migrate layout to logical inline/block properties, then test Arabic/Hebrew hosts.",
      "effort": "medium"
    },
    {
      "id": "F33",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-internationalised",
      "principleCheckId": "locale-aware-data",
      "guidanceId": "language-detection",
      "severity": "low",
      "confidence": "high",
      "summary": "Dates, numbers, currencies, durations and calendar systems are formatted locale-aware (Intl), location-agnostic where stored, and recurring intervals and event differentials are modelled correctly.",
      "evidence": "The Hindi UI renders numerous compact counts with English-style M/K and mixed English labels, despite exposing dozens of locale variants.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/age-flow-probe.json"
      ],
      "suggestedFix": "Format counts, dates and durations through Intl using the active locale, with deliberate transliteration/translation fallbacks.",
      "effort": "medium"
    },
    {
      "id": "F34",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "accessible-error-announcement",
      "severity": "high",
      "confidence": "high",
      "summary": "Forms prevent and recover from mistakes humanely: validate after interaction (not prematurely), give clear required-field feedback, announce errors accessibly, and signal invalid fields visibly rather than blaming the user.",
      "evidence": "The email sign-up state exposes duplicate text inputs named email without associated labels, autocomplete is off and required is false, making validation and recovery cues ambiguous.",
      "artifacts": [
        "evidence/signup-email-probe.json"
      ],
      "suggestedFix": "Use one labeled type=email field, validate after interaction with :user-invalid/aria-invalid, and announce specific recoverable errors.",
      "effort": "large"
    },
    {
      "id": "F35",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-up-form",
      "severity": "medium",
      "confidence": "high",
      "summary": "Input is assisted, not obstructed: correct autocomplete tokens so address, payment, sign-in and sign-up fields autofill, and inputs are highlighted/sized to help the user rather than trip them up.",
      "evidence": "Email inputs use type=text and autocomplete=off; search also disables autocomplete, while password correctly uses new-password. Account input assistance is therefore incomplete.",
      "artifacts": [
        "evidence/signup-email-probe.json",
        "evidence/home-probe.json"
      ],
      "suggestedFix": "Use type=email with autocomplete=email/username and keep autocomplete=new-password; do not suppress useful autofill.",
      "effort": "medium"
    },
    {
      "id": "F36",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "severity": "medium",
      "confidence": "high",
      "summary": "Images and decorative assets are optimised and served at appropriate resolutions; decorative pseudo-element imagery and heavy decorative images are resolution-optimised rather than oversized.",
      "evidence": "Image audit finds 13 oversized images, 15 legacy-format images, 29 without dimensions and three without responsive sources.",
      "artifacts": [
        "evidence/home-images.json"
      ],
      "suggestedFix": "Serve correctly sized AVIF/WebP sources with srcset/sizes and intrinsic dimensions; remove legacy/oversized variants.",
      "effort": "medium"
    },
    {
      "id": "F37",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "efficient-background-processing",
      "severity": "medium",
      "confidence": "high",
      "summary": "Background work and fetching are not wasteful: background processing is efficient and de-prioritised, and the lightest technique that achieves the result is preferred over heavy or redundant work.",
      "evidence": "The entry page loads 61 scripts (1.06 MB), keeps eight shimmer animations running even under reduced motion and incurs 177.59 ms blocking time.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/reduced-motion.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Stop placeholder animation once loaded, defer modules until intent and eliminate idle/background work that does not serve the current route.",
      "effort": "medium"
    },
    {
      "id": "F38",
      "pathId": "home",
      "url": "https://hi.xhamster.desi/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party scripts, fonts, video, audio, animation and heavy media are proportionate to the user value they provide; autoplay or background media is avoided unless essential and resource use is cached or deferred where possible.",
      "evidence": "Third-party hosts account for 117 requests and 1.64 MB (93% of transfer) before the user engages with media; promotional and recommendation modules dominate the initial surface.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Set a third-party budget, lazy-load recommendation/promotion integrations, and fetch media only near visibility or explicit intent.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Remove the 1024 px minimum canvas, use intrinsic/fluid grid sizing, and verify zero horizontal overflow at narrow widths.",
      "priority": 1,
      "findingIds": [
        "F12"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Remove maximum-scale/user-scalable restrictions from the delivered viewport, fix reflow and enlarge touch targets.",
      "priority": 2,
      "findingIds": [
        "F23"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Replace the blocking first-load consent wall with a compact, non-obscuring consent surface where legally possible and persist the choice reliably.",
      "priority": 3,
      "findingIds": [
        "F09"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Add strong :focus-visible styling, ensure at least 24×24 CSS px targets with spacing (prefer 44×44 for primary touch controls), and expose non-hover equivalents.",
      "priority": 4,
      "findingIds": [
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Prioritize the real LCP resource, reduce render-blocking work and validate LCP under mobile throttling until it is ≤2.5 s.",
      "priority": 5,
      "findingIds": [
        "F15"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Inline only critical CSS, defer noncritical styles/scripts, set effective immutable caching and tune LCP preload/fetchpriority.",
      "priority": 6,
      "findingIds": [
        "F17"
      ],
      "guidanceId": "optimize-preload-priority",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Give every control a correct accessible name/role, associate visible labels, repair the accessibility tree and add appropriate alt text.",
      "priority": 7,
      "findingIds": [
        "F19"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Raise failing foreground/background pairs to WCAG AA while preserving visible states.",
      "priority": 8,
      "findingIds": [
        "F20"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Restore visible focus, correct list/landmark structure, and verify logical keyboard order through dialogs and navigation.",
      "priority": 9,
      "findingIds": [
        "F21"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Reflow navigation/sidebar below or behind a menu, use fluid text measures and prevent clipped headings/cards.",
      "priority": 10,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "improve-text-layout-and-legibility",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Mark all HTTPS cookies Secure, avoid SameSite=None unless necessary, and deploy a nonce/hash-based CSP beyond frame-ancestors.",
      "priority": 11,
      "findingIds": [
        "F27"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Minimize identifiers, defer third-party modules until intent/consent, proxy or self-host essential assets and batch analytics.",
      "priority": 12,
      "findingIds": [
        "F28"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T13",
      "title": "Add nosniff and a strict Referrer-Policy, narrow Permissions-Policy, and strengthen CSP/Trusted Types where applicable.",
      "priority": 13,
      "findingIds": [
        "F30"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T14",
      "title": "Remove fixed runtime geometry and test every overlay/menu at narrow edges with collision-safe positioning.",
      "priority": 14,
      "findingIds": [
        "F31"
      ],
      "guidanceId": "resilient-context-menus-and-nested-dropdowns",
      "status": "open"
    },
    {
      "id": "T15",
      "title": "Use one labeled type=email field, validate after interaction with :user-invalid/aria-invalid, and announce specific recoverable errors.",
      "priority": 15,
      "findingIds": [
        "F34"
      ],
      "guidanceId": "accessible-error-announcement",
      "status": "open"
    },
    {
      "id": "T16",
      "title": "Set a third-party budget, lazy-load recommendation/promotion integrations, and fetch media only near visibility or explicit intent.",
      "priority": 16,
      "findingIds": [
        "F38"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T17",
      "title": "Declare color-scheme and bind surface/text tokens to prefers-color-scheme or light-dark(), while retaining an explicit user override.",
      "priority": 17,
      "findingIds": [
        "F01"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T18",
      "title": "Disable shimmer and other nonessential motion inside @media (prefers-reduced-motion: reduce).",
      "priority": 18,
      "findingIds": [
        "F02"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T19",
      "title": "Add forced-colors/prefers-contrast adaptations and correct the concrete contrast failures.",
      "priority": 19,
      "findingIds": [
        "F03"
      ],
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "status": "open"
    },
    {
      "id": "T20",
      "title": "Implement modal flows with <dialog> (or complete equivalent semantics), focus trapping/restoration and platform dismissal.",
      "priority": 20,
      "findingIds": [
        "F10"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T21",
      "title": "Collapse promotional chrome, remove duplicate navigation, and give the primary content/actions more of the first viewport.",
      "priority": 21,
      "findingIds": [
        "F11"
      ],
      "guidanceId": "overflow-clipping-control",
      "status": "open"
    },
    {
      "id": "T22",
      "title": "Make reused cards and navigation adapt with container queries and intrinsic sizing rather than a fixed desktop canvas.",
      "priority": 22,
      "findingIds": [
        "F13"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T23",
      "title": "Profile the 402 KB index bundle, split long tasks and schedule/defer noncritical initialization.",
      "priority": 23,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "break-up-long-tasks",
      "status": "open"
    },
    {
      "id": "T24",
      "title": "Code-split by template, remove unused CSS/JS and avoid loading account/promotion modules before user intent.",
      "priority": 24,
      "findingIds": [
        "F18"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T25",
      "title": "Emit intrinsic width/height or aspect-ratio for every image and keep responsive source dimensions correct.",
      "priority": 25,
      "findingIds": [
        "F24"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T26",
      "title": "Publish a sitemap index and reciprocal hreflang clusters for localized pages, aligned with canonical and robots policy.",
      "priority": 26,
      "findingIds": [
        "F25"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T27",
      "title": "Add accurate schema.org VideoObject JSON-LD matching the visible title, thumbnail, duration, upload date and canonical URL.",
      "priority": 27,
      "findingIds": [
        "F26"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T28",
      "title": "Add passkey registration/authentication alongside federated options and request any browser permissions only after explicit intent.",
      "priority": 28,
      "findingIds": [
        "F29"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T29",
      "title": "Set direction explicitly/automatically and migrate layout to logical inline/block properties, then test Arabic/Hebrew hosts.",
      "priority": 29,
      "findingIds": [
        "F32"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T30",
      "title": "Use type=email with autocomplete=email/username and keep autocomplete=new-password; do not suppress useful autofill.",
      "priority": 30,
      "findingIds": [
        "F35"
      ],
      "guidanceId": "autofill-sign-up-form",
      "status": "open"
    },
    {
      "id": "T31",
      "title": "Serve correctly sized AVIF/WebP sources with srcset/sizes and intrinsic dimensions; remove legacy/oversized variants.",
      "priority": 31,
      "findingIds": [
        "F36"
      ],
      "guidanceId": "deliver-optimized-decorative-images",
      "status": "open"
    },
    {
      "id": "T32",
      "title": "Stop placeholder animation once loaded, defer modules until intent and eliminate idle/background work that does not serve the current route.",
      "priority": 32,
      "findingIds": [
        "F37"
      ],
      "guidanceId": "efficient-background-processing",
      "status": "open"
    },
    {
      "id": "T33",
      "title": "Add progressive cross-document View Transitions for same-origin route changes, with reduced-motion handling.",
      "priority": 33,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T34",
      "title": "Use CSS scroll-driven animation for any scroll-linked feedback and avoid scroll-event-driven visual work.",
      "priority": 34,
      "findingIds": [
        "F05"
      ],
      "guidanceId": "scroll-entry-exit-effects",
      "status": "open"
    },
    {
      "id": "T35",
      "title": "Let native scrolling lead, add appropriate overscroll/scroll-snap for gesture surfaces, and avoid desktop-only interaction geometry.",
      "priority": 35,
      "findingIds": [
        "F06"
      ],
      "guidanceId": "physics-based-easing",
      "status": "open"
    },
    {
      "id": "T36",
      "title": "Use scroll-state container queries or a lightweight progress affordance to adapt sticky chrome on long pages.",
      "priority": 36,
      "findingIds": [
        "F07"
      ],
      "guidanceId": "shrinking-header-on-scroll",
      "status": "open"
    },
    {
      "id": "T37",
      "title": "Use CSS anchor positioning with position-try fallbacks for menus and contextual overlays.",
      "priority": 37,
      "findingIds": [
        "F08"
      ],
      "guidanceId": "position-aware-tooltips",
      "status": "open"
    },
    {
      "id": "T38",
      "title": "Format counts, dates and durations through Intl using the active locale, with deliberate transliteration/translation fallbacks.",
      "priority": 38,
      "findingIds": [
        "F33"
      ],
      "guidanceId": "language-detection",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-19T23-55-28-132Z"
}
