{
  "url": "https://xhamster1.desi",
  "auditedAt": "2026-07-23T22:32:00.000Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete audit of six representative public paths. Authenticated, payment, upload and third-party identity/age-verification completion were excluded because they require credentials, personal data, payment or leaving the origin.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered MPA with deferred client-side enhancement",
    "notes": "Adult media platform viewed from a UK network. Legal age-verification gates playback; core public metadata and listings remain inspectable."
  },
  "evidenceUsed": [
    "screenshot",
    "transition-video",
    "layout-metrics",
    "dom",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "heap-summary",
    "lighthouse",
    "curl/raw-http",
    "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",
    "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"
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Dark emulation activates a large prefers-color-scheme: dark token set and the dark screenshot shows retinted surfaces and readable content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The preferences probe found eight running animations, each with a 2,000 ms duration, while prefers-reduced-motion: reduce matched.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/preferences-probe.json"
      ],
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Forced-colors/prefers-contrast emulation produces system white/yellow controls on black and the screenshot remains readable.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-contrast.png",
        "evidence/contrast-probe.json"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The CSS probe found zero view-transition rules although the site exposes many full-page route changes.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/modern-css-probe.json",
        "evidence/home-scroll.mp4"
      ],
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Reconnaissance across representative paths and feature/CSS inspection.",
      "evidence": "No parallax, scrollytelling or scroll-linked reveal interaction is present on the representative paths, so there is no scroll-linked implementation to assess.",
      "reason": "No parallax, scrollytelling or scroll-linked reveal interaction is present on the representative paths, so there is no scroll-linked implementation to assess.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Representative paths use native links and document scrolling; the scroll recording shows no custom pointer gesture fighting platform scroll.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-scroll.mp4"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The recorded scroll journey retains the same large two-row header and age banner; the CSS probe found no scroll-state/container-state treatment.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-scroll.mp4",
        "evidence/modern-css-probe.json"
      ],
      "findingIds": [
        "F003"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Top navigation exposes multiple menu triggers, but the CSS probe found no anchor-name, position-anchor or position-try rules.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/modern-css-probe.json"
      ],
      "findingIds": [
        "F004"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "The active Videos route is underlined, pages expose clear H1 headings, and the 404 provides a prominent return link.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/not-found.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Desktop entry, signup and 404 captures all show a centered cookie modal covering the core page. Reject is available, but there is no light dismiss and the interruption repeats in fresh sessions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup-desktop.png",
        "evidence/not-found.png"
      ],
      "findingIds": [
        "F005"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The signup DOM probe reports DIV role=dialog aria-modal=true rather than a dialog element, adding custom focus and dismissal risk.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-form-probe.json",
        "evidence/signup-desktop.png"
      ],
      "findingIds": [
        "F006"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The entry viewport contains a two-row global header, age-verification banner, full category sidebar and consent modal before the feed can be used.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F007"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Across home, categories, category, video and signup, layout evidence reports a 1,024 px layout/scroll width against a 360 px visual viewport, 664 px overflow; screenshots show content and primary controls cut off.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/video-mobile.png",
        "evidence/video-mobile-layout.json",
        "evidence/signup-mobile.png"
      ],
      "findingIds": [
        "F008"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The modern CSS probe found logical properties but no @container/container-type rules; cards, header and player retain desktop geometry in narrow captures.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/modern-css-probe.json",
        "evidence/home-mobile.png",
        "evidence/video-mobile.png"
      ],
      "findingIds": [
        "F009"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Computed focus probes show outline-style none and no box shadow for search, Login, Get started, Accept and Reject; Lighthouse also fails target-size. Several navigation targets are 30–32 px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-interaction-probe.json",
        "evidence/signup-form-probe.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "findingIds": [
        "F010"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Home, categories, video and signup each show descriptive headings and direct primary actions in screenshots/DOM.",
      "pathIds": [
        "home",
        "video",
        "signup",
        "not-found"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/categories-mobile.png",
        "evidence/video-desktop.png",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "The representative video route loads, clearly explains the legally required age-verification step and exposes Get started without a hidden detour.",
      "pathIds": [
        "home",
        "video",
        "signup",
        "not-found"
      ],
      "artifacts": [
        "evidence/video-desktop.png",
        "evidence/video-structure.json"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "The real 404 returns status 404, explains the state and offers Return to Home Page plus alternative content.",
      "pathIds": [
        "home",
        "video",
        "signup",
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/not-found-probe.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Lighthouse measured LCP 2.7 s and FCP 2.4 s on its mobile profile; the independent desktop trace was faster at 1.50 s, so the issue is condition-specific rather than universal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F011"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "All four narrow layout captures observed CLS 0 with no recorded shifts; Lighthouse also reports CLS 0.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/home-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The trace recorded two long tasks, longest 145.92 ms, with 107.01 ms total blocking time; mobile layout captures also saw tasks up to 205 ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/categories-layout.json"
      ],
      "findingIds": [
        "F012"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "HAR captured 145 requests and 1.69 MB transferred, including 62 scripts/997 KB and three VeryHigh parser-inserted stylesheets. Script tags are deferred, but CSS and dependency breadth remain costly.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-structure.json"
      ],
      "findingIds": [
        "F013"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Lighthouse estimates 56 KiB unused CSS and 26 KiB unused JavaScript; HAR identifies a single 400 KiB index bundle.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-diagnostics.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Lighthouse fails button-name and label-content-name-mismatch on the entry page; the image audit also found one image without alt text.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/images.json"
      ],
      "findingIds": [
        "F015"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Lighthouse fails color-contrast and link-in-text-block on the home page and color-contrast on signup.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/lighthouse-signup-summary.json"
      ],
      "findingIds": [
        "F016"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Focus probes show no outline or focus shadow on search, login, age verification and consent buttons; Lighthouse also reports a malformed accessibility tree.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-interaction-probe.json",
        "evidence/signup-form-probe.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "findingIds": [
        "F017"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "At 360 px the home heading, age banner and video title/player prompt extend beyond the captured viewport, hiding text and controls.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/video-mobile.png"
      ],
      "findingIds": [
        "F018"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Lighthouse fails meta-viewport because user scaling is restricted in its received mobile document, and target-size fails; independent 360 px captures show 664 px overflow.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F019"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Lighthouse errors-in-console audit scores 1, with no console-error items.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-diagnostics.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The image audit found 29 of 36 images without width/height attributes and 13 rendered at less than half natural width. Doctype, UTF-8 and aspect-ratio checks otherwise pass.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-structure.json"
      ],
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Lighthouse deprecations and console audits pass; the platform probe finds no permission prompt request or paste prevention.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-diagnostics.json",
        "evidence/platform-probe.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "All representative routes have descriptive titles and meta descriptions; home/categories raw HTML retains both.",
      "pathIds": [
        "home",
        "categories",
        "category",
        "video",
        "signup"
      ],
      "artifacts": [
        "evidence/home-structure.json",
        "evidence/categories-structure.json",
        "evidence/video-structure.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Links have real hrefs and robots permits the audited routes, but 360 px evidence shows 664 px overflow and Lighthouse flags the viewport policy.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/robots.txt"
      ],
      "findingIds": [
        "F021"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The home DOM lists a canonical but zero hreflang links despite dozens of language subdomains; /sitemap.xml returned 404 and robots.txt declares no sitemap.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-structure.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml"
      ],
      "findingIds": [
        "F022"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "The representative video has useful Open Graph tags but no JSON-LD block, limiting rich entity understanding.",
      "pathIds": [
        "video"
      ],
      "artifacts": [
        "evidence/video-structure.json"
      ],
      "findingIds": [
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Headers show HTTPS/HSTS, but CSP only declares frame-ancestors. Cookie evidence reports three cookies without Secure and two SameSite=None cookies.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/http-head.txt"
      ],
      "findingIds": [
        "F024"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "HAR attributes 116 of 145 requests and 1.58 of 1.69 MB to other origins, including Google identity and advertising/media origins; recommendation requests include session and experiment identifiers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F025"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "No permissions are requested on load; WebAuthn/passkey text is present in the document and federated signup alternatives are offered.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/platform-probe.json",
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Headers evidence shows no X-Content-Type-Options and no HTTP Referrer-Policy; the document itself requests unsafe-url, and Permissions-Policy only configures UA client hints. HSTS max-age is one day.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/home-recon.json",
        "evidence/http-head.txt"
      ],
      "findingIds": [
        "F026"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Discoverability found only 70% content overlap on the video detail and reports that its rendered title and H1 are absent from raw HTML, although the page is not an empty JS shell.",
      "pathIds": [
        "video"
      ],
      "artifacts": [
        "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI.json",
        "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI-crawler.png"
      ],
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "The 404 and modal states render without console/deprecation errors, and core navigation remains available around state changes.",
      "pathIds": [
        "home",
        "video",
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found.png",
        "evidence/lighthouse-diagnostics.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "A manifest with name/icons/start_url/display is linked, an active service worker is registered, and its source pre-caches /offline and installs a catch handler.",
      "pathIds": [
        "home",
        "video",
        "not-found"
      ],
      "artifacts": [
        "evidence/manifest.webmanifest",
        "evidence/pwa-probe.json",
        "evidence/pwa-key-lines.txt"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "A genuine 404 returns the correct status with explanation and recovery link; service-worker source defines an offline fallback.",
      "pathIds": [
        "home",
        "video",
        "not-found"
      ],
      "artifacts": [
        "evidence/not-found-probe.json",
        "evidence/pwa-key-lines.txt"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "The document declares lang=en, language variants are exposed, and CSS evidence includes inline/block logical properties.",
      "pathIds": [
        "home",
        "categories",
        "video"
      ],
      "artifacts": [
        "evidence/home-structure.json",
        "evidence/modern-css-probe.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "The English route renders compact localized counts (for example 888.4K) and offers many locale-specific domains; no malformed locale-sensitive value was observed.",
      "pathIds": [
        "home",
        "categories",
        "video"
      ],
      "artifacts": [
        "evidence/home-recon.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Reconnaissance across representative paths and feature/CSS inspection.",
      "evidence": "The audited public browsing, video and signup surfaces expose no event scheduling or user-facing date/time values.",
      "reason": "The audited public browsing, video and signup surfaces expose no event scheduling or user-facing date/time values.",
      "pathIds": [
        "home",
        "categories",
        "video"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Consent presents equally prominent Accept and Reject actions and clearly links privacy/cookie policies; age verification states its legal purpose.",
      "pathIds": [
        "home",
        "signup",
        "video"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "medium",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "After rejecting optional cookies and activating email signup, the probe found an assertive aria-live region with no message and no invalid controls after the empty submit attempt.",
      "pathIds": [
        "signup"
      ],
      "artifacts": [
        "evidence/signup-invalid-probe.json"
      ],
      "findingIds": [
        "F028"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Search has an accessible purpose and autocomplete=off is appropriate for query history; signup offers federated choices rather than forcing data entry.",
      "pathIds": [
        "home",
        "signup",
        "video"
      ],
      "artifacts": [
        "evidence/signup-form-probe.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Signup states that age verification may be required, explains public personal-data use, and links Terms and Privacy before commitment.",
      "pathIds": [
        "home",
        "signup",
        "video"
      ],
      "artifacts": [
        "evidence/signup-form-probe.json",
        "evidence/signup-desktop.png"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Image evidence found 13 oversized images, 15 legacy-format URLs, 29 missing dimensions and eight below-fold images not lazy-loaded.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json"
      ],
      "findingIds": [
        "F029"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "HAR records 62 scripts and recommendation/advertising requests during load, while the trace records long tasks and 107 ms blocking time.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F030"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "Third-party origins account for 1.58 MB and 116 requests before a user plays media; nearly 1 MB is JavaScript.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F031"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Reconnaissance across representative paths and feature/CSS inspection.",
      "evidence": "This public media-browsing site exposes no declared agent-facing workflow; the emerging WebMCP opportunity is outside its current product surface.",
      "reason": "This public media-browsing site exposes no declared agent-facing workflow; the emerging WebMCP opportunity is outside its current product surface.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Reconnaissance across representative paths and feature/CSS inspection.",
      "evidence": "No summarisation, translation or generative task is offered on the audited surfaces, so on-device inference is not applicable.",
      "reason": "No summarisation, translation or generative task is offered on the audited surfaces, so on-device inference is not applicable.",
      "pathIds": [
        "home"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "After ten bottom/top feed traversals and garbage collection, the heap summary rose from 680,958 to 791,605 nodes and 36.21 MB to 41.80 MB (+15.4%). Fresh-browser variance limits certainty, but growth warrants profiling.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot"
      ],
      "findingIds": [
        "F032"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "issues",
      "confidence": "medium",
      "method": "Active/visual/objective evidence described in linked finding and artifacts.",
      "evidence": "After garbage collection the baseline summary contains 680,958 heap nodes, 94,281 closures and 36.21 MB self size while the DOM probe reports only 1,813 elements.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ],
      "findingIds": [
        "F033"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Representative-path visual, DOM and objective probe review.",
      "evidence": "Neither summary exposes Detached* among top constructors; inline handler probes report zero and no detached-node signal was observed after traversal.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F001"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F002"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F003",
        "F004"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F005",
        "F006",
        "F007"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F008",
        "F009",
        "F010"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F011",
        "F012",
        "F013",
        "F014"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F015",
        "F016",
        "F017",
        "F018",
        "F019"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F020"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F021",
        "F022",
        "F023"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F024",
        "F025",
        "F026"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F027"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F028"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F029",
        "F030",
        "F031"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "This public media-browsing site exposes no declared agent-facing workflow; the emerging WebMCP opportunity is outside its current product surface. No summarisation, translation or generative task is offered on the audited surfaces, so on-device inference is not applicable."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F032",
        "F033"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Entry/feed template, global navigation, consent and age-verification gate.",
      "url": "https://xhamster1.desi/",
      "conditions": [
        "desktop 1440x900",
        "360x800",
        "dark",
        "forced colors",
        "reduced motion",
        "scroll interaction"
      ],
      "result": "issues"
    },
    {
      "id": "categories",
      "description": "Taxonomy/index template and guided browsing.",
      "url": "https://xhamster1.desi/categories",
      "conditions": [
        "desktop",
        "360x800",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Representative category listing template.",
      "url": "https://xhamster1.desi/categories/amateur",
      "conditions": [
        "desktop",
        "360x800",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "video",
      "description": "Representative content detail and gated playback journey.",
      "url": "https://xhamster1.desi/videos/fuck-my-best-friends-hot-mom-xhTH1iI",
      "conditions": [
        "desktop",
        "360x800",
        "no JavaScript crawler"
      ],
      "result": "issues"
    },
    {
      "id": "signup",
      "description": "Account signup, consent, naming/focus and error-announcement surface.",
      "url": "https://xhamster1.desi/signup?source=menuSignup",
      "conditions": [
        "desktop",
        "360x800",
        "keyboard focus",
        "empty-submit attempt"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Real HTTP 404 and recovery state.",
      "url": "https://xhamster1.desi/web-uplift-audit-nonexistent",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F001",
      "severity": "medium",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Animations continue when reduced motion is requested",
      "evidence": "The preferences probe found eight running animations, each with a 2,000 ms duration, while prefers-reduced-motion: reduce matched.",
      "suggestedFix": "Disable non-essential animation and autoplay inside @media (prefers-reduced-motion: reduce), preserving only necessary state feedback.",
      "artifacts": [
        "evidence/preferences-probe.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F002",
      "severity": "low",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "confidence": "high",
      "summary": "Route changes have no authored View Transition treatment",
      "evidence": "The CSS probe found zero view-transition rules although the site exposes many full-page route changes.",
      "suggestedFix": "Add same-origin cross-document View Transitions with a conservative fade and reduced-motion fallback.",
      "artifacts": [
        "evidence/modern-css-probe.json",
        "evidence/home-scroll.mp4"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F003",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "confidence": "high",
      "summary": "Navigation chrome does not respond to scroll state",
      "evidence": "The recorded scroll journey retains the same large two-row header and age banner; the CSS probe found no scroll-state/container-state treatment.",
      "suggestedFix": "Use a sticky header with scroll-state-aware compacting, while keeping essential age-verification status visible.",
      "artifacts": [
        "evidence/home-scroll.mp4",
        "evidence/modern-css-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F004",
      "severity": "low",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "position-aware-tooltips",
      "confidence": "high",
      "summary": "Dropdown triggers lack resilient CSS anchor positioning",
      "evidence": "Top navigation exposes multiple menu triggers, but the CSS probe found no anchor-name, position-anchor or position-try rules.",
      "suggestedFix": "Use CSS anchor positioning and position-try fallbacks for menus and tooltips near viewport edges.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/modern-css-probe.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F005",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "confidence": "high",
      "summary": "A consent dialog obscures the primary content on first load",
      "evidence": "Desktop entry, signup and 404 captures all show a centered cookie modal covering the core page. Reject is available, but there is no light dismiss and the interruption repeats in fresh sessions.",
      "suggestedFix": "Prefer a compact, non-obscuring consent surface where legally permissible; retain equally prominent Accept and Reject controls.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/signup-desktop.png",
        "evidence/not-found.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F006",
      "severity": "medium",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "confidence": "high",
      "summary": "Modal UI is built from generic divs instead of the native dialog primitive",
      "evidence": "The signup DOM probe reports DIV role=dialog aria-modal=true rather than a dialog element, adding custom focus and dismissal risk.",
      "suggestedFix": "Implement modal flows with <dialog> and showModal()/close(), including an explicit close action and correct initial focus.",
      "artifacts": [
        "evidence/signup-form-probe.json",
        "evidence/signup-desktop.png"
      ],
      "effort": "medium",
      "pathId": "signup",
      "url": "https://xhamster1.desi/signup?source=menuSignup"
    },
    {
      "id": "F007",
      "severity": "low",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "reduce visual clutter maximize content",
      "confidence": "high",
      "summary": "Dense persistent chrome competes with the content",
      "evidence": "The entry viewport contains a two-row global header, age-verification banner, full category sidebar and consent modal before the feed can be used.",
      "suggestedFix": "Collapse secondary taxonomy navigation behind a responsive disclosure and reserve persistent chrome for primary actions.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F008",
      "severity": "critical",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "css-layout",
      "confidence": "high",
      "summary": "The desktop layout is clipped at a 360 px viewport",
      "evidence": "Across home, categories, category, video and signup, layout evidence reports a 1,024 px layout/scroll width against a 360 px visual viewport, 664 px overflow; screenshots show content and primary controls cut off.",
      "suggestedFix": "Serve the mobile layout based on CSS viewport, remove fixed 1,024 px constraints, and verify at 320–400 px with no horizontal clipping.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/video-mobile.png",
        "evidence/video-mobile-layout.json",
        "evidence/signup-mobile.png"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F009",
      "severity": "medium",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "confidence": "high",
      "summary": "Components do not adapt to their available container",
      "evidence": "The modern CSS probe found logical properties but no @container/container-type rules; cards, header and player retain desktop geometry in narrow captures.",
      "suggestedFix": "Define container contexts for header, feed and player modules and adapt card columns/actions with size container queries.",
      "artifacts": [
        "evidence/modern-css-probe.json",
        "evidence/home-mobile.png",
        "evidence/video-mobile.png"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F010",
      "severity": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Keyboard focus is invisible and touch targets are undersized",
      "evidence": "Computed focus probes show outline-style none and no box shadow for search, Login, Get started, Accept and Reject; Lighthouse also fails target-size. Several navigation targets are 30–32 px high.",
      "suggestedFix": "Add a high-contrast :focus-visible ring and make interactive targets at least 44 CSS px or provide equivalent spacing.",
      "artifacts": [
        "evidence/home-interaction-probe.json",
        "evidence/signup-form-probe.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F011",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "confidence": "high",
      "summary": "Mobile LCP is outside the good Core Web Vitals range",
      "evidence": "Lighthouse measured LCP 2.7 s and FCP 2.4 s on its mobile profile; the independent desktop trace was faster at 1.50 s, so the issue is condition-specific rather than universal.",
      "suggestedFix": "Prioritise the LCP thumbnail/content, reduce critical CSS and delay non-essential scripts until after primary content.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F012",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "break-up-long-tasks",
      "confidence": "high",
      "summary": "Load performs observable long main-thread tasks",
      "evidence": "The trace recorded two long tasks, longest 145.92 ms, with 107.01 ms total blocking time; mobile layout captures also saw tasks up to 205 ms.",
      "suggestedFix": "Break initialization into scheduler.yield()/postTask chunks and defer recommendation, advertising and non-visible widget work.",
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/categories-layout.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F013",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "confidence": "high",
      "summary": "The initial dependency graph is broad and script-heavy",
      "evidence": "HAR captured 145 requests and 1.69 MB transferred, including 62 scripts/997 KB and three VeryHigh parser-inserted stylesheets. Script tags are deferred, but CSS and dependency breadth remain costly.",
      "suggestedFix": "Inline only minimal critical CSS, consolidate styles, and conditionally load below-fold/feed integrations after core content.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-structure.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F014",
      "severity": "medium",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "confidence": "high",
      "summary": "The page ships avoidable unused CSS and JavaScript",
      "evidence": "Lighthouse estimates 56 KiB unused CSS and 26 KiB unused JavaScript; HAR identifies a single 400 KiB index bundle.",
      "suggestedFix": "Use route/widget-level code splitting and CSS coverage to remove unused selectors and avoid loading inactive integrations.",
      "artifacts": [
        "evidence/lighthouse-diagnostics.json",
        "evidence/home-summary.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F015",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Some controls do not expose reliable accessible names",
      "evidence": "Lighthouse fails button-name and label-content-name-mismatch on the entry page; the image audit also found one image without alt text.",
      "suggestedFix": "Give every icon button a stable accessible name matching its visible label and add meaningful alt text or alt=\"\" for decoration.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/images.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F016",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Text and links fail minimum contrast/identification checks",
      "evidence": "Lighthouse fails color-contrast and link-in-text-block on the home page and color-contrast on signup.",
      "suggestedFix": "Adjust design tokens to meet WCAG contrast and distinguish inline links with an underline or another non-colour cue.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/lighthouse-signup-summary.json"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F017",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "confidence": "high",
      "summary": "Keyboard focus indication is absent on primary controls",
      "evidence": "Focus probes show no outline or focus shadow on search, login, age verification and consent buttons; Lighthouse also reports a malformed accessibility tree.",
      "suggestedFix": "Use semantic controls, restore :focus-visible styles, and test logical Tab order and modal focus trapping with a keyboard and screen reader.",
      "artifacts": [
        "evidence/home-interaction-probe.json",
        "evidence/signup-form-probe.json",
        "evidence/lighthouse-home-summary.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F018",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "legible-text",
      "guidanceId": "improve-text-layout-and-legibility",
      "confidence": "high",
      "summary": "Narrow-screen clipping makes headings and actions unreadable",
      "evidence": "At 360 px the home heading, age banner and video title/player prompt extend beyond the captured viewport, hiding text and controls.",
      "suggestedFix": "Allow headings/actions to wrap, use minmax()/clamp() fluid sizing, and constrain content to the visual viewport.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/video-mobile.png"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F019",
      "severity": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "confidence": "high",
      "summary": "Viewport scaling and reflow do not meet inclusive mobile expectations",
      "evidence": "Lighthouse fails meta-viewport because user scaling is restricted in its received mobile document, and target-size fails; independent 360 px captures show 664 px overflow.",
      "suggestedFix": "Do not set user-scalable=no or a restrictive maximum-scale on any served variant; support 400% zoom/reflow and 44 px targets.",
      "artifacts": [
        "evidence/lighthouse-home-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F020",
      "severity": "medium",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "confidence": "high",
      "summary": "Most content images omit intrinsic dimensions",
      "evidence": "The image audit found 29 of 36 images without width/height attributes and 13 rendered at less than half natural width. Doctype, UTF-8 and aspect-ratio checks otherwise pass.",
      "suggestedFix": "Emit intrinsic width/height (or an equivalent stable aspect-ratio) and request responsive image candidates close to rendered size.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-structure.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F021",
      "severity": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "css-layout",
      "confidence": "high",
      "summary": "The public pages are crawlable but not mobile-friendly",
      "evidence": "Links have real hrefs and robots permits the audited routes, but 360 px evidence shows 664 px overflow and Lighthouse flags the viewport policy.",
      "suggestedFix": "Keep crawlable links while fixing the responsive viewport and removing scaling restrictions.",
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-home-summary.json",
        "evidence/robots.txt"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F022",
      "severity": "medium",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "canonical hreflang http status robots sitemap noindex seo indexing",
      "confidence": "high",
      "summary": "Localized variants lack hreflang and no sitemap was discoverable",
      "evidence": "The home DOM lists a canonical but zero hreflang links despite dozens of language subdomains; /sitemap.xml returned 404 and robots.txt declares no sitemap.",
      "suggestedFix": "Publish hreflang clusters (including x-default) and a sitemap index referenced from robots.txt.",
      "artifacts": [
        "evidence/home-structure.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F023",
      "severity": "low",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "structured data schema.org json-ld open graph social preview metadata",
      "confidence": "high",
      "summary": "Video detail pages omit structured VideoObject data",
      "evidence": "The representative video has useful Open Graph tags but no JSON-LD block, limiting rich entity understanding.",
      "suggestedFix": "Add schema.org VideoObject JSON-LD matching the visible title, thumbnail, creator, duration and availability.",
      "artifacts": [
        "evidence/video-structure.json"
      ],
      "effort": "small",
      "pathId": "video",
      "url": "https://xhamster1.desi/videos/fuck-my-best-friends-hot-mom-xhTH1iI"
    },
    {
      "id": "F024",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "confidence": "high",
      "summary": "Transport is HTTPS but CSP and cookie protection are incomplete",
      "evidence": "Headers show HTTPS/HSTS, but CSP only declares frame-ancestors. Cookie evidence reports three cookies without Secure and two SameSite=None cookies.",
      "suggestedFix": "Set Secure on all HTTPS cookies, avoid SameSite=None unless cross-site use is required, and deploy a nonce/hash-based script/style CSP in report-only then enforcement mode.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json",
        "evidence/http-head.txt"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F025",
      "severity": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "confidence": "high",
      "summary": "Third-party and recommendation traffic dominates the initial load",
      "evidence": "HAR attributes 116 of 145 requests and 1.58 of 1.69 MB to other origins, including Google identity and advertising/media origins; recommendation requests include session and experiment identifiers.",
      "suggestedFix": "Gate non-essential third parties on consent, proxy or self-host essential assets where possible, and minimise/batch recommendation and analytics payloads.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F026",
      "severity": "medium",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "confidence": "high",
      "summary": "Several browser-enforced defenses are missing or too narrow",
      "evidence": "Headers evidence shows no X-Content-Type-Options and no HTTP Referrer-Policy; the document itself requests unsafe-url, and Permissions-Policy only configures UA client hints. HSTS max-age is one day.",
      "suggestedFix": "Add nosniff, a strict-origin-when-cross-origin (or stricter) referrer policy, a deny-by-default Permissions-Policy, and lengthen HSTS after operational validation.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/home-recon.json",
        "evidence/http-head.txt"
      ],
      "effort": "small",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F027",
      "severity": "medium",
      "principleId": "be-resilient",
      "principleCheckId": "progressive-enhancement",
      "guidanceId": "stabilize-reactive-state",
      "confidence": "high",
      "summary": "The video detail loses key identity in raw HTML",
      "evidence": "Discoverability found only 70% content overlap on the video detail and reports that its rendered title and H1 are absent from raw HTML, although the page is not an empty JS shell.",
      "suggestedFix": "Server-render the canonical title/H1 and essential age-gated player explanation so the route remains meaningful without JavaScript.",
      "artifacts": [
        "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI.json",
        "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI-crawler.png"
      ],
      "effort": "medium",
      "pathId": "video",
      "url": "https://xhamster1.desi/videos/fuck-my-best-friends-hot-mom-xhTH1iI"
    },
    {
      "id": "F028",
      "severity": "low",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "accessible-error-announcement",
      "confidence": "medium",
      "summary": "Signup error-announcement plumbing is present but empty during the attempted empty submission",
      "evidence": "After rejecting optional cookies and activating email signup, the probe found an assertive aria-live region with no message and no invalid controls after the empty submit attempt.",
      "suggestedFix": "Ensure required fields use native constraints/:user-invalid and place concise field errors in the assertive live region after submission or blur.",
      "artifacts": [
        "evidence/signup-invalid-probe.json"
      ],
      "effort": "small",
      "pathId": "signup",
      "url": "https://xhamster1.desi/signup?source=menuSignup"
    },
    {
      "id": "F029",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "confidence": "high",
      "summary": "Image delivery wastes bytes and misses stable sizing",
      "evidence": "Image evidence found 13 oversized images, 15 legacy-format URLs, 29 missing dimensions and eight below-fold images not lazy-loaded.",
      "suggestedFix": "Generate width-matched AVIF/WebP srcset candidates, lazy-load below-fold media and include dimensions.",
      "artifacts": [
        "evidence/images.json"
      ],
      "effort": "medium",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F030",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "deprioritize-background-fetches",
      "confidence": "high",
      "summary": "Substantial non-core work starts during initial load",
      "evidence": "HAR records 62 scripts and recommendation/advertising requests during load, while the trace records long tasks and 107 ms blocking time.",
      "suggestedFix": "Delay recommendations, ads and optional account integrations until consent, visibility or user intent; batch background work.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-trace-summary.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F031",
      "severity": "medium",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "efficient-background-processing",
      "confidence": "high",
      "summary": "Third-party transfer cost is disproportionate before playback",
      "evidence": "Third-party origins account for 1.58 MB and 116 requests before a user plays media; nearly 1 MB is JavaScript.",
      "suggestedFix": "Set a third-party budget, conditionally import integrations and load media/ad widgets only when near the viewport or requested.",
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F032",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "manage-recurring-intervals",
      "confidence": "medium",
      "summary": "Repeated feed traversal retains materially more heap",
      "evidence": "After ten bottom/top feed traversals and garbage collection, the heap summary rose from 680,958 to 791,605 nodes and 36.21 MB to 41.80 MB (+15.4%). Fresh-browser variance limits certainty, but growth warrants profiling.",
      "suggestedFix": "Repeat baseline/target/final snapshots in one session, trace retainers for arrays/closures/native nodes, and release observers/listeners and feed caches after traversal.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/heap-post-scroll.heapsnapshot"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    },
    {
      "id": "F033",
      "severity": "medium",
      "principleId": "be-memory-efficient",
      "principleCheckId": "bounded-footprint",
      "guidanceId": "performance",
      "confidence": "medium",
      "summary": "The gated listing has a large initial heap footprint",
      "evidence": "After garbage collection the baseline summary contains 680,958 heap nodes, 94,281 closures and 36.21 MB self size while the DOM probe reports only 1,813 elements.",
      "suggestedFix": "Reduce framework/widget initialization on the gated first view and lazy-initialise below-fold feed, identity and ad modules.",
      "artifacts": [
        "evidence/heap-baseline.heapsnapshot",
        "evidence/memory-metrics.json"
      ],
      "effort": "large",
      "pathId": "home",
      "url": "https://xhamster1.desi/"
    }
  ],
  "taskList": [
    {
      "id": "T001",
      "title": "Serve the mobile layout based on CSS viewport, remove fixed 1,024 px constraints, and verify at 320–400 px with no horizontal clipping.",
      "priority": 1,
      "findingIds": [
        "F008"
      ],
      "guidanceId": "css-layout",
      "status": "open"
    },
    {
      "id": "T002",
      "title": "Add a high-contrast :focus-visible ring and make interactive targets at least 44 CSS px or provide equivalent spacing.",
      "priority": 2,
      "findingIds": [
        "F010"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T003",
      "title": "Give every icon button a stable accessible name matching its visible label and add meaningful alt text or alt=\"\" for decoration.",
      "priority": 3,
      "findingIds": [
        "F015"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T004",
      "title": "Adjust design tokens to meet WCAG contrast and distinguish inline links with an underline or another non-colour cue.",
      "priority": 4,
      "findingIds": [
        "F016"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T005",
      "title": "Use semantic controls, restore :focus-visible styles, and test logical Tab order and modal focus trapping with a keyboard and screen reader.",
      "priority": 5,
      "findingIds": [
        "F017"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T006",
      "title": "Allow headings/actions to wrap, use minmax()/clamp() fluid sizing, and constrain content to the visual viewport.",
      "priority": 6,
      "findingIds": [
        "F018"
      ],
      "guidanceId": "improve-text-layout-and-legibility",
      "status": "open"
    },
    {
      "id": "T007",
      "title": "Do not set user-scalable=no or a restrictive maximum-scale on any served variant; support 400% zoom/reflow and 44 px targets.",
      "priority": 7,
      "findingIds": [
        "F019"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T008",
      "title": "Keep crawlable links while fixing the responsive viewport and removing scaling restrictions.",
      "priority": 8,
      "findingIds": [
        "F021"
      ],
      "guidanceId": "css-layout",
      "status": "open"
    },
    {
      "id": "T009",
      "title": "Set Secure on all HTTPS cookies, avoid SameSite=None unless cross-site use is required, and deploy a nonce/hash-based script/style CSP in report-only then enforcement mode.",
      "priority": 9,
      "findingIds": [
        "F024"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T010",
      "title": "Gate non-essential third parties on consent, proxy or self-host essential assets where possible, and minimise/batch recommendation and analytics payloads.",
      "priority": 10,
      "findingIds": [
        "F025"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T011",
      "title": "Disable non-essential animation and autoplay inside @media (prefers-reduced-motion: reduce), preserving only necessary state feedback.",
      "priority": 11,
      "findingIds": [
        "F001"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T012",
      "title": "Prefer a compact, non-obscuring consent surface where legally permissible; retain equally prominent Accept and Reject controls.",
      "priority": 12,
      "findingIds": [
        "F005"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T013",
      "title": "Implement modal flows with <dialog> and showModal()/close(), including an explicit close action and correct initial focus.",
      "priority": 13,
      "findingIds": [
        "F006"
      ],
      "guidanceId": "declarative-dialog-popover-control",
      "status": "open"
    },
    {
      "id": "T014",
      "title": "Define container contexts for header, feed and player modules and adapt card columns/actions with size container queries.",
      "priority": 14,
      "findingIds": [
        "F009"
      ],
      "guidanceId": "size-aware-styling",
      "status": "open"
    },
    {
      "id": "T015",
      "title": "Prioritise the LCP thumbnail/content, reduce critical CSS and delay non-essential scripts until after primary content.",
      "priority": 15,
      "findingIds": [
        "F011"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T016",
      "title": "Break initialization into scheduler.yield()/postTask chunks and defer recommendation, advertising and non-visible widget work.",
      "priority": 16,
      "findingIds": [
        "F012"
      ],
      "guidanceId": "break-up-long-tasks",
      "status": "open"
    },
    {
      "id": "T017",
      "title": "Inline only minimal critical CSS, consolidate styles, and conditionally load below-fold/feed integrations after core content.",
      "priority": 17,
      "findingIds": [
        "F013"
      ],
      "guidanceId": "optimize-script-priority",
      "status": "open"
    },
    {
      "id": "T018",
      "title": "Use route/widget-level code splitting and CSS coverage to remove unused selectors and avoid loading inactive integrations.",
      "priority": 18,
      "findingIds": [
        "F014"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T019",
      "title": "Emit intrinsic width/height (or an equivalent stable aspect-ratio) and request responsive image candidates close to rendered size.",
      "priority": 19,
      "findingIds": [
        "F020"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T020",
      "title": "Publish hreflang clusters (including x-default) and a sitemap index referenced from robots.txt.",
      "priority": 20,
      "findingIds": [
        "F022"
      ],
      "guidanceId": "canonical hreflang http status robots sitemap noindex seo indexing",
      "status": "open"
    },
    {
      "id": "T021",
      "title": "Add nosniff, a strict-origin-when-cross-origin (or stricter) referrer policy, a deny-by-default Permissions-Policy, and lengthen HSTS after operational validation.",
      "priority": 21,
      "findingIds": [
        "F026"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T022",
      "title": "Server-render the canonical title/H1 and essential age-gated player explanation so the route remains meaningful without JavaScript.",
      "priority": 22,
      "findingIds": [
        "F027"
      ],
      "guidanceId": "stabilize-reactive-state",
      "status": "open"
    },
    {
      "id": "T023",
      "title": "Generate width-matched AVIF/WebP srcset candidates, lazy-load below-fold media and include dimensions.",
      "priority": 23,
      "findingIds": [
        "F029"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T024",
      "title": "Delay recommendations, ads and optional account integrations until consent, visibility or user intent; batch background work.",
      "priority": 24,
      "findingIds": [
        "F030"
      ],
      "guidanceId": "deprioritize-background-fetches",
      "status": "open"
    },
    {
      "id": "T025",
      "title": "Set a third-party budget, conditionally import integrations and load media/ad widgets only when near the viewport or requested.",
      "priority": 25,
      "findingIds": [
        "F031"
      ],
      "guidanceId": "efficient-background-processing",
      "status": "open"
    },
    {
      "id": "T026",
      "title": "Repeat baseline/target/final snapshots in one session, trace retainers for arrays/closures/native nodes, and release observers/listeners and feed caches after traversal.",
      "priority": 26,
      "findingIds": [
        "F032"
      ],
      "guidanceId": "manage-recurring-intervals",
      "status": "open"
    },
    {
      "id": "T027",
      "title": "Reduce framework/widget initialization on the gated first view and lazy-initialise below-fold feed, identity and ad modules.",
      "priority": 27,
      "findingIds": [
        "F033"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T028",
      "title": "Add same-origin cross-document View Transitions with a conservative fade and reduced-motion fallback.",
      "priority": 28,
      "findingIds": [
        "F002"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    },
    {
      "id": "T029",
      "title": "Use a sticky header with scroll-state-aware compacting, while keeping essential age-verification status visible.",
      "priority": 29,
      "findingIds": [
        "F003"
      ],
      "guidanceId": "shrinking-header-on-scroll",
      "status": "open"
    },
    {
      "id": "T030",
      "title": "Use CSS anchor positioning and position-try fallbacks for menus and tooltips near viewport edges.",
      "priority": 30,
      "findingIds": [
        "F004"
      ],
      "guidanceId": "position-aware-tooltips",
      "status": "open"
    },
    {
      "id": "T031",
      "title": "Collapse secondary taxonomy navigation behind a responsive disclosure and reserve persistent chrome for primary actions.",
      "priority": 31,
      "findingIds": [
        "F007"
      ],
      "guidanceId": "reduce visual clutter maximize content",
      "status": "open"
    },
    {
      "id": "T032",
      "title": "Add schema.org VideoObject JSON-LD matching the visible title, thumbnail, creator, duration and availability.",
      "priority": 32,
      "findingIds": [
        "F023"
      ],
      "guidanceId": "structured data schema.org json-ld open graph social preview metadata",
      "status": "open"
    },
    {
      "id": "T033",
      "title": "Ensure required fields use native constraints/:user-invalid and place concise field errors in the assertive live region after submission or blur.",
      "priority": 33,
      "findingIds": [
        "F028"
      ],
      "guidanceId": "accessible-error-announcement",
      "status": "open"
    }
  ],
  "artifacts": [
    {
      "type": "layout",
      "path": "evidence/categories-layout.json",
      "caption": "categories layout json",
      "findingIds": [
        "F012"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/categories-mobile.png",
      "caption": "categories mobile png"
    },
    {
      "type": "dom",
      "path": "evidence/categories-structure.json",
      "caption": "categories structure json"
    },
    {
      "type": "screenshot",
      "path": "evidence/category-desktop.png",
      "caption": "category desktop png"
    },
    {
      "type": "layout",
      "path": "evidence/category-mobile-layout.json",
      "caption": "category mobile layout json"
    },
    {
      "type": "other",
      "path": "evidence/contrast-probe.json",
      "caption": "contrast probe json"
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies json",
      "findingIds": [
        "F024"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-categories-amateur-crawler.png",
      "caption": "discover categories amateur crawler png"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-categories-amateur-rendered.png",
      "caption": "discover categories amateur rendered png"
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-categories-amateur.json",
      "caption": "discover categories amateur json"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-categories-crawler.png",
      "caption": "discover categories crawler png"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-categories-rendered.png",
      "caption": "discover categories rendered png"
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-categories.json",
      "caption": "discover categories json"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-home-crawler.png",
      "caption": "discover home crawler png"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-home-rendered.png",
      "caption": "discover home rendered png"
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-home.json",
      "caption": "discover home json"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-signup-source-menuSignup-crawler.png",
      "caption": "discover signup source menuSignup crawler png"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-signup-source-menuSignup-rendered.png",
      "caption": "discover signup source menuSignup rendered png"
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-signup-source-menuSignup.json",
      "caption": "discover signup source menuSignup json"
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI-crawler.png",
      "caption": "discover videos fuck my best friends hot mom xhTH1iI crawler png",
      "findingIds": [
        "F027"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI-rendered.png",
      "caption": "discover videos fuck my best friends hot mom xhTH1iI rendered png"
    },
    {
      "type": "discoverability",
      "path": "evidence/discover-videos-fuck-my-best-friends-hot-mom-xhTH1iI.json",
      "caption": "discover videos fuck my best friends hot mom xhTH1iI json",
      "findingIds": [
        "F027"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers json",
      "findingIds": [
        "F024",
        "F026"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.heapsnapshot",
      "caption": "heap baseline heapsnapshot",
      "findingIds": [
        "F032",
        "F033"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.heapsnapshot",
      "caption": "heap post scroll heapsnapshot",
      "findingIds": [
        "F032"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast png"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark png"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop png",
      "findingIds": [
        "F004",
        "F005",
        "F007"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom json"
    },
    {
      "type": "other",
      "path": "evidence/home-interaction-probe.json",
      "caption": "home interaction probe json",
      "findingIds": [
        "F010",
        "F017"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout json",
      "findingIds": [
        "F008",
        "F019",
        "F021"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile png",
      "findingIds": [
        "F007",
        "F008",
        "F009",
        "F018"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-recon.json",
      "caption": "home recon json",
      "findingIds": [
        "F026"
      ]
    },
    {
      "type": "video",
      "path": "evidence/home-scroll.mp4",
      "caption": "home scroll mp4",
      "findingIds": [
        "F002",
        "F003"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-structure.json",
      "caption": "home structure json",
      "findingIds": [
        "F013",
        "F020",
        "F022"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary json",
      "findingIds": [
        "F013",
        "F014",
        "F025",
        "F030",
        "F031"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary json",
      "findingIds": [
        "F011",
        "F012",
        "F030"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace json"
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home har"
    },
    {
      "type": "other",
      "path": "evidence/http-head.txt",
      "caption": "http head txt",
      "findingIds": [
        "F024",
        "F026"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images json",
      "findingIds": [
        "F015",
        "F020",
        "F029"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-diagnostics.json",
      "caption": "lighthouse diagnostics json",
      "findingIds": [
        "F014"
      ]
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-home-summary.json",
      "caption": "lighthouse home summary json",
      "findingIds": [
        "F010",
        "F011",
        "F015",
        "F016",
        "F017",
        "F019",
        "F021"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home json"
    },
    {
      "type": "other",
      "path": "evidence/lighthouse-signup-summary.json",
      "caption": "lighthouse signup summary json",
      "findingIds": [
        "F016"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-signup.json",
      "caption": "lighthouse signup json"
    },
    {
      "type": "other",
      "path": "evidence/manifest-headers.txt",
      "caption": "manifest headers txt"
    },
    {
      "type": "other",
      "path": "evidence/manifest-pretty.json",
      "caption": "manifest pretty json"
    },
    {
      "type": "other",
      "path": "evidence/manifest.webmanifest",
      "caption": "manifest webmanifest"
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics json",
      "findingIds": [
        "F033"
      ]
    },
    {
      "type": "other",
      "path": "evidence/modern-css-probe.json",
      "caption": "modern css probe json",
      "findingIds": [
        "F002",
        "F003",
        "F004",
        "F009"
      ]
    },
    {
      "type": "other",
      "path": "evidence/not-found-probe.json",
      "caption": "not found probe json"
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found png",
      "findingIds": [
        "F005"
      ]
    },
    {
      "type": "other",
      "path": "evidence/platform-probe.json",
      "caption": "platform probe json"
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "preferences probe json",
      "findingIds": [
        "F001"
      ]
    },
    {
      "type": "other",
      "path": "evidence/pwa-key-lines.txt",
      "caption": "pwa key lines txt"
    },
    {
      "type": "other",
      "path": "evidence/pwa-probe.json",
      "caption": "pwa probe json"
    },
    {
      "type": "other",
      "path": "evidence/pwa.js",
      "caption": "pwa js"
    },
    {
      "type": "other",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers txt"
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots txt",
      "findingIds": [
        "F021",
        "F022"
      ]
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets json"
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-desktop.png",
      "caption": "signup desktop png",
      "findingIds": [
        "F005",
        "F006"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-form-probe.json",
      "caption": "signup form probe json",
      "findingIds": [
        "F006",
        "F010",
        "F017"
      ]
    },
    {
      "type": "other",
      "path": "evidence/signup-invalid-probe.json",
      "caption": "signup invalid probe json",
      "findingIds": [
        "F028"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-invalid.png",
      "caption": "signup invalid png"
    },
    {
      "type": "layout",
      "path": "evidence/signup-mobile-layout.json",
      "caption": "signup mobile layout json"
    },
    {
      "type": "screenshot",
      "path": "evidence/signup-mobile.png",
      "caption": "signup mobile png",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap xml",
      "findingIds": [
        "F022"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers json",
      "findingIds": [
        "F025",
        "F031"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/video-desktop.png",
      "caption": "video desktop png"
    },
    {
      "type": "other",
      "path": "evidence/video-links.json",
      "caption": "video links json"
    },
    {
      "type": "layout",
      "path": "evidence/video-mobile-layout.json",
      "caption": "video mobile layout json",
      "findingIds": [
        "F008"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/video-mobile.png",
      "caption": "video mobile png",
      "findingIds": [
        "F008",
        "F009",
        "F018"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/video-structure.json",
      "caption": "video structure json",
      "findingIds": [
        "F023"
      ]
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "metrics": {
    "lighthouse": {
      "performance": 0.93,
      "accessibility": 0.75,
      "bestPractices": 1,
      "seo": 1,
      "agenticBrowsing": 0.5,
      "LCPms": 2700,
      "CLS": 0
    },
    "trace": {
      "LCPms": 1496.01,
      "totalBlockingTimeMs": 107.01,
      "longestTaskMs": 145.92
    },
    "network": {
      "requests": 145,
      "transferredBytes": 1692150,
      "thirdPartyRequests": 116,
      "thirdPartyBytes": 1579966
    },
    "memory": {
      "baselineBytes": 36208700,
      "postInteractionBytes": 41797645,
      "baselineNodes": 680958,
      "postInteractionNodes": 791605
    }
  },
  "agent": "pi",
  "runId": "2026-07-23T22-20-11-658Z"
}
