{
  "url": "https://it.xvideos.com",
  "auditedAt": "2026-07-22T20:09:04.317Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage complete: 58/58 checks judged. 34 findings (14 high, 14 medium, 6 low).",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA with legacy JavaScript/jQuery-style bundles",
    "notes": "Public Italian adult-video catalogue with mandatory age confirmation, cookie consent, listing/search/category templates, a player detail page and account flows. Coverage excludes authenticated-only settings, upload, payment completion, live-cam and third-party outbound destinations because they require credentials, money, or leave the audited origin."
  },
  "evidenceUsed": [
    "screenshot",
    "transition-video",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "headers",
    "cookies",
    "trackers",
    "images",
    "discoverability",
    "secrets",
    "heap-summary",
    "lighthouse",
    "robots.txt",
    "sitemap.xml",
    "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"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/accept-probe.json",
      "caption": "accept probe"
    },
    {
      "type": "dom",
      "path": "evidence/account-create-dom.json",
      "caption": "account create dom",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "video",
      "path": "evidence/account-create.mp4",
      "caption": "account create"
    },
    {
      "type": "screenshot",
      "path": "evidence/account-create.png",
      "caption": "account create",
      "findingIds": [
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/account-form-probe.json",
      "caption": "account form probe",
      "findingIds": [
        "F24",
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/account-mobile-layout.json",
      "caption": "account mobile layout"
    },
    {
      "type": "video",
      "path": "evidence/age-gate.mp4",
      "caption": "age gate",
      "findingIds": [
        "F02",
        "F05",
        "F27"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/category-dom.json",
      "caption": "category dom",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "video",
      "path": "evidence/category.mp4",
      "caption": "category"
    },
    {
      "type": "screenshot",
      "path": "evidence/category.png",
      "caption": "category"
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F23"
      ]
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability",
      "caption": "discoverability"
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered"
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F23",
        "F25"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline",
      "findingIds": [
        "F32",
        "F34"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "heap post scroll",
      "findingIds": [
        "F32",
        "F34"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-accepted.png",
      "caption": "home accepted",
      "findingIds": [
        "F03",
        "F05",
        "F27"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-contrast.png",
      "caption": "home contrast",
      "findingIds": [
        "F13"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F05"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F03",
        "F04",
        "F06",
        "F07"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout"
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F07"
      ]
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F10",
        "F11",
        "F31",
        "F33"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace",
      "caption": "home trace"
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F10",
        "F33"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F12",
        "F17",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/interaction-probe.json",
      "caption": "interaction probe",
      "findingIds": [
        "F08",
        "F14",
        "F24"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-account-failures.json",
      "caption": "lighthouse account failures",
      "findingIds": [
        "F18"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-account.json",
      "caption": "lighthouse account",
      "findingIds": [
        "F13",
        "F16",
        "F19"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home-failures.json",
      "caption": "lighthouse home failures",
      "findingIds": [
        "F10",
        "F11",
        "F18",
        "F20"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F09",
        "F12",
        "F13",
        "F15",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/memory-metrics.json",
      "caption": "memory metrics",
      "findingIds": [
        "F32",
        "F34"
      ]
    },
    {
      "type": "other",
      "path": "evidence/not-found-state.json",
      "caption": "not found state"
    },
    {
      "type": "video",
      "path": "evidence/not-found.mp4",
      "caption": "not found"
    },
    {
      "type": "screenshot",
      "path": "evidence/not-found.png",
      "caption": "not found"
    },
    {
      "type": "other",
      "path": "evidence/preferences-probe.json",
      "caption": "preferences probe",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon",
      "findingIds": [
        "F02",
        "F06",
        "F21",
        "F22",
        "F26"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.json",
      "caption": "robots",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "search dom"
    },
    {
      "type": "video",
      "path": "evidence/search.mp4",
      "caption": "search"
    },
    {
      "type": "screenshot",
      "path": "evidence/search.png",
      "caption": "search"
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets"
    },
    {
      "type": "other",
      "path": "evidence/sitemap.json",
      "caption": "sitemap",
      "findingIds": [
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers"
    },
    {
      "type": "dom",
      "path": "evidence/video-detail-dom.json",
      "caption": "video detail dom",
      "findingIds": [
        "F14",
        "F15",
        "F22",
        "F26"
      ]
    },
    {
      "type": "video",
      "path": "evidence/video-detail.mp4",
      "caption": "video detail"
    },
    {
      "type": "screenshot",
      "path": "evidence/video-detail.png",
      "caption": "video detail"
    },
    {
      "type": "layout",
      "path": "evidence/video-mobile-layout.json",
      "caption": "video mobile layout"
    },
    {
      "type": "trace",
      "path": "evidence/video-trace",
      "caption": "video trace"
    },
    {
      "type": "trace-summary",
      "path": "evidence/video-trace-summary.json",
      "caption": "video trace summary"
    },
    {
      "type": "other",
      "path": "coverage-manifest.json",
      "caption": "Atomic 58-check coverage manifest and evidence plan"
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Under prefers-color-scheme: dark, the probe still reported colorScheme “normal” and a white rgb(255,255,255) body; the dark screenshot is visually unchanged.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/preferences-probe.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "No active animations were reported with prefers-reduced-motion: reduce; the only observed gate pulse is short and interaction-triggered.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/preferences-probe.json"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "The prefers-contrast screenshot retained readable text and visible controls; Lighthouse found one separate ordinary-contrast failure.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/home-contrast.png"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "DOM/CSS inspection across home, category and detail found no view-transition declarations; the entry recording shows direct overlay swaps.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/age-gate.mp4",
        "evidence/recon.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the observed site type and paths",
      "evidence": "No parallax, scrollytelling, scroll-linked reveal or carousel animation exists on the representative templates, so there is no scroll-driven effect to implement.",
      "reason": "No parallax, scrollytelling, scroll-linked reveal or carousel animation exists on the representative templates, so there is no scroll-driven effect to implement."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Listings use native scrolling and links; no custom pointermove gesture system or scroll fighting was found.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The homepage has a long/infinite feed, but DOM/CSS inspection found no scroll-state query, progress marker, or shrinking-header behaviour.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-accepted.png"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "medium",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The navigation exposes menus, but CSS inspection found no anchor-name, position-anchor, or position-try usage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Category pagination marks the current page and uses clear Previous/Next navigation; the 404 provides a direct home recovery link.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/category.png",
        "evidence/not-found-state.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The first-load screenshot shows the age gate; after accepting it, the recording reveals a second cookie wall that obscures the whole page.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/age-gate.mp4",
        "evidence/home-accepted.png"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Across five DOM captures, the gates expose no <dialog>, role=dialog, or popover; the recon found zero semantic dialogs.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/recon.json"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "After consent, the listing dedicates most of the viewport to the content grid with a compact two-row header.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/category.png"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "At 360×800, home, detail and account all reported zero horizontal overflow; viewport metadata is present.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/video-mobile-layout.json",
        "evidence/account-mobile-layout.json"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "DOM/CSS inspection found no @container rules even though video cards are reused in desktop grids and narrow layouts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-mobile.png"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The active focus probe found header buttons and search controls at outline:none with no box-shadow; multiple links were only 15–16px high.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "The first content view clearly presents searchable video cards; category and account pages have descriptive task labels.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/category.png",
        "evidence/account-create.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "The representative home→category/search→detail surfaces loaded successfully; age confirmation and cookie rejection completed without an account wall.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/category.png",
        "evidence/search.png",
        "evidence/video-detail.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Empty form submission produced a localized error summary and the deliberate missing route showed a clear “page not found” message with a home link.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/account-form-probe.json",
        "evidence/not-found-state.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse measured FCP 4.1s and LCP 5.4s; the independent trace measured LCP 4.41s. CLS remained near zero.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "CLS was 0 on mobile home/account and 0.0011 on detail, with no meaningful visual shift.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/video-mobile-layout.json",
        "evidence/account-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Trace TBT was 1.57ms on home and 0.41ms on detail, with only one ~51ms long task in each capture.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/video-trace-summary.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The HAR recorded 124 requests/2.89MB, parser-inserted high-priority CSS/JS, and many images without useful cache headers; Lighthouse estimated 3.0s render-blocking savings and 1.44MB cache savings.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home-failures.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse estimated 580KiB unused JavaScript and 206KiB unused CSS; HAR shows a 517KB default.js plus HLS code on the listing page.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-failures.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The images primitive found 98 of 100 images without alt; Lighthouse found 100 missing image alternatives, two unnamed buttons and one unnamed link.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse’s colour-contrast audit reported a failing node on both the homepage and account surface.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-account.json",
        "evidence/home-contrast.png"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "All five representative DOM captures contain zero h1 elements; the focus probe found focused header/search buttons with outline:none and no replacement.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/category-dom.json",
        "evidence/video-detail-dom.json"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Desktop and mobile captures show readable body sizes, clear spacing and no text clipping on the representative category/account surfaces.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/category.png",
        "evidence/account-create.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse failed meta-viewport because user scaling is restricted; inspection of the representative player found no caption tracks in the tested state.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/video-detail-dom.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse reported one errors-in-console item on /account/create while the homepage had none.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-account.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The images primitive found 99 of 100 images without width/height; Lighthouse reported 101 unsized images.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse reported one deprecated-API warning on both audited templates and legacy JavaScript with an estimated 51KiB saving.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-failures.json",
        "evidence/lighthouse-account-failures.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The account/create page is titled “Account login” despite also being registration, and Lighthouse SEO was 0.58 there.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/account-create-dom.json",
        "evidence/lighthouse-account.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Lighthouse reported one non-crawlable anchor and one non-descriptive link on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home-failures.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "All five DOM captures lacked rel=canonical, although robots.txt permits public content, hreflang exists and sitemap.xml is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/robots.json",
        "evidence/sitemap.json"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Recon and detail DOM inspection found no JSON-LD, including no VideoObject, despite the page representing a rich video entity.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/video-detail-dom.json"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Headers inspection found no HSTS or nosniff and a CSP containing unsafe-inline and unsafe-eval; the session cookie is Secure/HttpOnly but SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "After rejecting optional cookies, tracker capture found no known tracker domains; third-party-labelled traffic was limited to site CDN subdomains, and secrets scan found no exposed secret.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/trackers.json",
        "evidence/secrets.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The account DOM exposes email/password forms but no WebAuthn/passkey signal; no permission prompt fired on load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/account-form-probe.json",
        "evidence/interaction-probe.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Headers inspection found no HSTS, Permissions-Policy or nosniff, a permissive no-referrer-when-downgrade policy, and no Trusted Types requirement; X-Frame-Options is present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Discoverability measured 98% raw-HTML content coverage, no empty app mount, and matching browser/crawler content.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/discoverability",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "The required gates remained centred and usable at 360px, and category/account layouts showed no clipping or horizontal overflow.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/account-mobile-layout.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the observed site type and paths",
      "evidence": "This is a public server-rendered streaming/content MPA whose core watch task intrinsically requires the network; an offline app experience is not part of the observed product intent.",
      "reason": "This is a public server-rendered streaming/content MPA whose core watch task intrinsically requires the network; an offline app experience is not part of the observed product intent."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "A deliberate unknown URL rendered a localized error heading and an actionable return-home link rather than a blank shell.",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/not-found-state.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The homepage/category/search/account declare lang=it, but the representative Italian detail page declares lang=en-GB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/video-detail-dom.json",
        "evidence/recon.json"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "The Italian surfaces localise interface copy and displayed counts/durations with Italian conventions (for example decimal commas and “min.”).",
      "pathIds": [
        "home",
        "category",
        "video-detail",
        "search",
        "account-create"
      ],
      "artifacts": [
        "evidence/category.png",
        "evidence/recon.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the observed site type and paths",
      "evidence": "No events, appointments, absolute timestamps, recurring schedules or other time-zone-sensitive data appeared on the representative paths.",
      "reason": "No events, appointments, absolute timestamps, recurring schedules or other time-zone-sensitive data appeared on the representative paths."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "After the mandatory age step, “Accetta tutti i cookie” is a large red button while “Rifiuta tutti i cookie” is a small underlined text control below it.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-accepted.png",
        "evidence/age-gate.mp4"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Empty submission produced a localized error summary, but the probe found no role=alert and no aria-invalid on invalid controls.",
      "pathIds": [
        "account-create"
      ],
      "artifacts": [
        "evidence/account-form-probe.json"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Email/current-password and sign-up email/password fields returned empty autocomplete values; only new-password fields were annotated.",
      "pathIds": [
        "account-create"
      ],
      "artifacts": [
        "evidence/account-form-probe.json"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "The account screenshot gives half the viewport to “Registrazione Premium” benefits and a join CTA, but no price, renewal or cancellation terms are visible.",
      "pathIds": [
        "account-create"
      ],
      "artifacts": [
        "evidence/account-create.png",
        "evidence/account-form-probe.json"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Images audit found 99 legacy-format images, 100 without srcset, 90 below-fold images without lazy loading and three oversized assets.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "medium",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "After ten bottom/top feed traversals, DOM nodes grew from 2,870 to 19,432 and measured JS heap from 10.1MB to 13.8MB.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/memory-metrics.json",
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "HAR recorded 2.89MB and 124 requests, including 106 images, 760KB script and HLS code on the feed; 116 requests came from CDN subdomains.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the observed site type and paths",
      "evidence": "No declared intent asks this public media catalogue to expose transactional agent tools; emerging WebMCP capability is therefore an opportunity, not an audit requirement.",
      "reason": "No declared intent asks this public media catalogue to expose transactional agent tools; emerging WebMCP capability is therefore an opportunity, not an audit requirement."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Recon and applicability judgement against the observed site type and paths",
      "evidence": "No summarisation, writing or inference task was present where built-in on-device AI would materially improve the observed core browse/watch journey.",
      "reason": "No summarisation, writing or inference task was present where built-in on-device AI would materially improve the observed core browse/watch journey."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "issues",
      "confidence": "medium",
      "method": "Targeted visual, DOM, CDP metric and/or Lighthouse evidence on representative paths",
      "evidence": "Baseline-to-post heap summaries grew from 386,850 to 495,584 nodes and 27.9MB to 36.2MB self size; in-page DOM count rose 2,870→19,432. This indicates unbounded feed retention, though no Detached* constructor was observed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json",
        "evidence/memory-metrics.json"
      ],
      "findingIds": [
        "F34"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "The post-load baseline heap was 27.9MB self size for a media-rich 100-thumbnail page, proportionate before repeated feed expansion.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Direct screenshot, DOM, layout, trace, discoverability, form or heap inspection",
      "evidence": "Neither heap summary listed a Detached* constructor, and the dedicated probe found no detached marker; the separate retained-feed growth is reported under repeated interaction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json",
        "evidence/memory-metrics.json"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03",
        "F04"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05",
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F07",
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F09",
        "F10",
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20",
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24",
        "F25"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F27",
        "F28",
        "F29",
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F31",
        "F32",
        "F33"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No declared intent asks this public media catalogue to expose transactional agent tools; emerging WebMCP capability is therefore an opportunity, not an audit requirement. No summarisation, writing or inference task was present where built-in on-device AI would materially improve the observed core browse/watch journey."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F34"
      ]
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and age/cookie entry journey; represents the primary discovery feed.",
      "url": "https://it.xvideos.com/",
      "conditions": [
        "desktop",
        "viewport 360x800",
        "prefers-color-scheme: dark",
        "prefers-contrast: more",
        "prefers-reduced-motion: reduce",
        "keyboard focus",
        "no JavaScript"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Amatoriale category listing; represents filtered/listing templates and pagination.",
      "url": "https://it.xvideos.com/c/Amateur-65",
      "conditions": [
        "desktop",
        "age gate accepted",
        "non-essential cookies rejected"
      ],
      "result": "issues"
    },
    {
      "id": "video-detail",
      "description": "Representative video detail/player page; represents the core watch journey.",
      "url": "https://it.xvideos.com/video.oplilof2191/50555956/0/beautiful_girl_agrees_to_dirty_sex_on_our_first_date_-_mike_stifler",
      "conditions": [
        "desktop",
        "viewport 360x800",
        "player paused",
        "age gate accepted",
        "non-essential cookies rejected"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search results for “italiano”; represents query and results-state behaviour.",
      "url": "https://it.xvideos.com/?k=italiano",
      "conditions": [
        "desktop",
        "age gate accepted",
        "non-essential cookies rejected"
      ],
      "result": "issues"
    },
    {
      "id": "account-create",
      "description": "Account/sign-up surface; represents forms, validation, authentication and commercial promotion.",
      "url": "https://it.xvideos.com/account/create",
      "conditions": [
        "desktop",
        "viewport 360x800",
        "empty form submission",
        "age gate accepted",
        "non-essential cookies rejected"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Deliberate unknown URL; represents HTTP/navigation recovery.",
      "url": "https://it.xvideos.com/definitely-not-a-real-path-web-uplift",
      "conditions": [
        "desktop",
        "age gate accepted",
        "non-essential cookies rejected"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site ignores the user’s dark-colour preference.",
      "evidence": "Under prefers-color-scheme: dark, the probe still reported colorScheme “normal” and a white rgb(255,255,255) body; the dark screenshot is visually unchanged.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/preferences-probe.json"
      ],
      "suggestedFix": "Declare color-scheme and provide preference-driven surface/text tokens, using light-dark() or a prefers-color-scheme query.",
      "effort": "small"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "severity": "low",
      "confidence": "medium",
      "summary": "Navigation and state changes use abrupt full-document swaps.",
      "evidence": "DOM/CSS inspection across home, category and detail found no view-transition declarations; the entry recording shows direct overlay swaps.",
      "artifacts": [
        "evidence/age-gate.mp4",
        "evidence/recon.json"
      ],
      "suggestedFix": "Add cross-document View Transitions for same-origin navigation and a reduced-motion fallback.",
      "effort": "medium"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "shrinking-header-on-scroll",
      "severity": "low",
      "confidence": "medium",
      "summary": "The long feed has no scroll-state-aware navigation or progress affordance.",
      "evidence": "The homepage has a long/infinite feed, but DOM/CSS inspection found no scroll-state query, progress marker, or shrinking-header behaviour.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-accepted.png"
      ],
      "suggestedFix": "Use a sticky header that responds to scroll state, or a lightweight progress/return affordance on long listings.",
      "effort": "small"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "position-aware-tooltips",
      "severity": "low",
      "confidence": "medium",
      "summary": "Dropdown/menu positioning is custom rather than anchored to its trigger.",
      "evidence": "The navigation exposes menus, but CSS inspection found no anchor-name, position-anchor, or position-try usage.",
      "artifacts": [
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Use CSS anchor positioning with fallback positions for menus and tooltips near viewport edges.",
      "effort": "small"
    },
    {
      "id": "F05",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "no-intrusive-interruptions",
      "guidanceId": "light-dismiss-a-dialog",
      "severity": "medium",
      "confidence": "high",
      "summary": "Two consecutive full-viewport gates interrupt entry before content can be used.",
      "evidence": "The first-load screenshot shows the age gate; after accepting it, the recording reveals a second cookie wall that obscures the whole page.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/age-gate.mp4",
        "evidence/home-accepted.png"
      ],
      "suggestedFix": "Keep the necessary age check concise, then use a non-blocking consent surface with equally visible choices.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "declarative-dialog-popover-control",
      "severity": "high",
      "confidence": "high",
      "summary": "Blocking overlays are generic divs without dialog semantics.",
      "evidence": "Across five DOM captures, the gates expose no <dialog>, role=dialog, or popover; the recon found zero semantic dialogs.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/recon.json"
      ],
      "suggestedFix": "Implement the blocking age flow with <dialog>, an accessible name, initial focus, focus containment and deterministic close behaviour.",
      "effort": "medium"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "severity": "low",
      "confidence": "medium",
      "summary": "Reusable cards rely on viewport layouts rather than container-aware adaptation.",
      "evidence": "DOM/CSS inspection found no @container rules even though video cards are reused in desktop grids and narrow layouts.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/home-mobile.png"
      ],
      "suggestedFix": "Give reusable card regions containment and adapt them with size container queries where composition changes.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Several controls lose visible keyboard focus and text links have very small hit areas.",
      "evidence": "The active focus probe found header buttons and search controls at outline:none with no box-shadow; multiple links were only 15–16px high.",
      "artifacts": [
        "evidence/interaction-probe.json"
      ],
      "suggestedFix": "Add a strong :focus-visible ring and enlarge interactive hit areas to at least 24px, preferably 44px for primary touch controls.",
      "effort": "small"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "severity": "high",
      "confidence": "high",
      "summary": "Homepage loading is slow enough to miss the good LCP range.",
      "evidence": "Lighthouse measured FCP 4.1s and LCP 5.4s; the independent trace measured LCP 4.41s. CLS remained near zero.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json"
      ],
      "suggestedFix": "Prioritise the LCP resource, reduce render-blocking work, and defer below-fold images and non-critical scripts.",
      "effort": "large"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-preload-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "Render-blocking and cache policy delay first content.",
      "evidence": "The HAR recorded 124 requests/2.89MB, parser-inserted high-priority CSS/JS, and many images without useful cache headers; Lighthouse estimated 3.0s render-blocking savings and 1.44MB cache savings.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/lighthouse-home-failures.json"
      ],
      "suggestedFix": "Inline only critical CSS, defer non-critical scripts, set long immutable CDN caching, and preload only the true LCP asset.",
      "effort": "large"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "severity": "high",
      "confidence": "high",
      "summary": "Large amounts of unused CSS and JavaScript ship on the homepage.",
      "evidence": "Lighthouse estimated 580KiB unused JavaScript and 206KiB unused CSS; HAR shows a 517KB default.js plus HLS code on the listing page.",
      "artifacts": [
        "evidence/lighthouse-home-failures.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Split bundles by template/capability and load HLS/player code only when a player is requested.",
      "effort": "large"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Many images and controls have no accessible name or text alternative.",
      "evidence": "The images primitive found 98 of 100 images without alt; Lighthouse found 100 missing image alternatives, two unnamed buttons and one unnamed link.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Provide meaningful thumbnail alternatives or empty alt for redundant imagery, and label every icon-only control.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "Some text fails minimum colour contrast.",
      "evidence": "Lighthouse’s colour-contrast audit reported a failing node on both the homepage and account surface.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-account.json",
        "evidence/home-contrast.png"
      ],
      "suggestedFix": "Adjust foreground/background tokens to meet WCAG AA in every state and verify under contrast preferences.",
      "effort": "small"
    },
    {
      "id": "F14",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "The main templates lack heading structure and several buttons suppress focus indication.",
      "evidence": "All five representative DOM captures contain zero h1 elements; the focus probe found focused header/search buttons with outline:none and no replacement.",
      "artifacts": [
        "evidence/interaction-probe.json",
        "evidence/category-dom.json",
        "evidence/video-detail-dom.json"
      ],
      "suggestedFix": "Add one descriptive h1 per template, preserve logical heading order, and implement a visible :focus-visible style.",
      "effort": "medium"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "fluid-scaling",
      "severity": "high",
      "confidence": "high",
      "summary": "The viewport restricts zoom and video alternatives are not evident.",
      "evidence": "Lighthouse failed meta-viewport because user scaling is restricted; inspection of the representative player found no caption tracks in the tested state.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/video-detail-dom.json"
      ],
      "suggestedFix": "Remove user-scalable restrictions and maximum-scale limits; provide captions/transcripts for published video where required.",
      "effort": "medium"
    },
    {
      "id": "F16",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "no-console-errors",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "The account page emits a console error during load.",
      "evidence": "Lighthouse reported one errors-in-console item on /account/create while the homepage had none.",
      "artifacts": [
        "evidence/lighthouse-account.json"
      ],
      "suggestedFix": "Fix the account-page exception and add representative-route console monitoring in CI.",
      "effort": "small"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "optimize-image-priority",
      "severity": "high",
      "confidence": "high",
      "summary": "Nearly all thumbnail images omit intrinsic dimensions.",
      "evidence": "The images primitive found 99 of 100 images without width/height; Lighthouse reported 101 unsized images.",
      "artifacts": [
        "evidence/images.json",
        "evidence/lighthouse-home.json"
      ],
      "suggestedFix": "Emit width and height or aspect-ratio from known thumbnail metadata to reserve layout space.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Deprecated browser API usage remains in production code.",
      "evidence": "Lighthouse reported one deprecated-API warning on both audited templates and legacy JavaScript with an estimated 51KiB saving.",
      "artifacts": [
        "evidence/lighthouse-home-failures.json",
        "evidence/lighthouse-account-failures.json"
      ],
      "suggestedFix": "Replace the deprecated call and stop serving legacy transforms to modern browsers.",
      "effort": "medium"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "title-and-description",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Metadata is generic or mismatched on some important templates.",
      "evidence": "The account/create page is titled “Account login” despite also being registration, and Lighthouse SEO was 0.58 there.",
      "artifacts": [
        "evidence/account-create-dom.json",
        "evidence/lighthouse-account.json"
      ],
      "suggestedFix": "Give each template a unique purpose-specific title and description, including distinct sign-in and registration metadata.",
      "effort": "small"
    },
    {
      "id": "F20",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "A small set of navigation links is not crawlable or descriptively named.",
      "evidence": "Lighthouse reported one non-crawlable anchor and one non-descriptive link on the homepage.",
      "artifacts": [
        "evidence/lighthouse-home-failures.json"
      ],
      "suggestedFix": "Use real href destinations and descriptive accessible link text for every navigation action.",
      "effort": "small"
    },
    {
      "id": "F21",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Representative public pages omit canonical URLs.",
      "evidence": "All five DOM captures lacked rel=canonical, although robots.txt permits public content, hreflang exists and sitemap.xml is present.",
      "artifacts": [
        "evidence/recon.json",
        "evidence/robots.json",
        "evidence/sitemap.json"
      ],
      "suggestedFix": "Emit self-referencing canonical links on indexable templates and keep them aligned with hreflang and sitemap URLs.",
      "effort": "small"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "The video detail page lacks structured entity metadata.",
      "evidence": "Recon and detail DOM inspection found no JSON-LD, including no VideoObject, despite the page representing a rich video entity.",
      "artifacts": [
        "evidence/recon.json",
        "evidence/video-detail-dom.json"
      ],
      "suggestedFix": "Add accurate VideoObject JSON-LD and matching Open Graph preview metadata on detail pages.",
      "effort": "medium"
    },
    {
      "id": "F23",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "Transport is HTTPS, but important response defenses are absent or weakened.",
      "evidence": "Headers inspection found no HSTS or nosniff and a CSP containing unsafe-inline and unsafe-eval; the session cookie is Secure/HttpOnly but SameSite=None.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Enable HSTS and nosniff, remove CSP unsafe-eval/unsafe-inline through nonces or hashes, and use the narrowest viable SameSite policy.",
      "effort": "medium"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "severity": "medium",
      "confidence": "high",
      "summary": "Authentication is password-only with no phishing-resistant option.",
      "evidence": "The account DOM exposes email/password forms but no WebAuthn/passkey signal; no permission prompt fired on load.",
      "artifacts": [
        "evidence/account-form-probe.json",
        "evidence/interaction-probe.json"
      ],
      "suggestedFix": "Offer passkey registration and sign-in alongside a correctly annotated password fallback.",
      "effort": "large"
    },
    {
      "id": "F25",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "The browser-policy baseline is incomplete.",
      "evidence": "Headers inspection found no HSTS, Permissions-Policy or nosniff, a permissive no-referrer-when-downgrade policy, and no Trusted Types requirement; X-Frame-Options is present.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add a minimal Permissions-Policy, strict-origin-when-cross-origin or stricter referrer policy, frame-ancestors, and Trusted Types where the legacy script surface permits.",
      "effort": "medium"
    },
    {
      "id": "F26",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "severity": "medium",
      "confidence": "high",
      "summary": "The Italian video detail page declares the wrong document language.",
      "evidence": "The homepage/category/search/account declare lang=it, but the representative Italian detail page declares lang=en-GB.",
      "artifacts": [
        "evidence/video-detail-dom.json",
        "evidence/recon.json"
      ],
      "suggestedFix": "Set html lang from the active locale on every template and retain hreflang for alternates.",
      "effort": "small"
    },
    {
      "id": "F27",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "severity": "high",
      "confidence": "high",
      "summary": "Cookie choice is visually asymmetric.",
      "evidence": "After the mandatory age step, “Accetta tutti i cookie” is a large red button while “Rifiuta tutti i cookie” is a small underlined text control below it.",
      "artifacts": [
        "evidence/home-accepted.png",
        "evidence/age-gate.mp4"
      ],
      "suggestedFix": "Present accept and reject with equal visual weight and keep preference management available without nagging.",
      "effort": "small"
    },
    {
      "id": "F28",
      "pathId": "account-create",
      "url": "https://it.xvideos.com/account/create",
      "principleId": "be-trustworthy",
      "principleCheckId": "humane-error-handling",
      "guidanceId": "accessible-error-announcement",
      "severity": "medium",
      "confidence": "high",
      "summary": "Validation errors are visible but not programmatically announced or attached to invalid fields.",
      "evidence": "Empty submission produced a localized error summary, but the probe found no role=alert and no aria-invalid on invalid controls.",
      "artifacts": [
        "evidence/account-form-probe.json"
      ],
      "suggestedFix": "Focus an accessible error summary, use aria-describedby/aria-invalid, and validate after interaction.",
      "effort": "small"
    },
    {
      "id": "F29",
      "pathId": "account-create",
      "url": "https://it.xvideos.com/account/create",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-in-form",
      "severity": "medium",
      "confidence": "high",
      "summary": "Sign-in and sign-up fields omit standard autocomplete tokens.",
      "evidence": "Email/current-password and sign-up email/password fields returned empty autocomplete values; only new-password fields were annotated.",
      "artifacts": [
        "evidence/account-form-probe.json"
      ],
      "suggestedFix": "Use username/email, current-password and new-password tokens consistently.",
      "effort": "small"
    },
    {
      "id": "F30",
      "pathId": "account-create",
      "url": "https://it.xvideos.com/account/create",
      "principleId": "be-trustworthy",
      "principleCheckId": "safe-commercial-and-account-flows",
      "guidanceId": "passkey-management",
      "severity": "medium",
      "confidence": "high",
      "summary": "The account surface promotes premium membership without pricing or commitment details in the decision context.",
      "evidence": "The account screenshot gives half the viewport to “Registrazione Premium” benefits and a join CTA, but no price, renewal or cancellation terms are visible.",
      "artifacts": [
        "evidence/account-create.png",
        "evidence/account-form-probe.json"
      ],
      "suggestedFix": "Show price, billing cadence, renewal and cancellation terms next to the premium CTA; keep free registration visually distinct.",
      "effort": "medium"
    },
    {
      "id": "F31",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "severity": "high",
      "confidence": "high",
      "summary": "Thumbnail delivery is not resource-efficient.",
      "evidence": "Images audit found 99 legacy-format images, 100 without srcset, 90 below-fold images without lazy loading and three oversized assets.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Serve responsive AVIF/WebP sources, add srcset/sizes, intrinsic dimensions and lazy loading below the fold.",
      "effort": "large"
    },
    {
      "id": "F32",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "efficient-background-processing",
      "severity": "medium",
      "confidence": "medium",
      "summary": "Repeated feed traversal retains a rapidly growing DOM and heap.",
      "evidence": "After ten bottom/top feed traversals, DOM nodes grew from 2,870 to 19,432 and measured JS heap from 10.1MB to 13.8MB.",
      "artifacts": [
        "evidence/memory-metrics.json",
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ],
      "suggestedFix": "Virtualise or prune distant feed items and avoid retaining observers/listeners for content no longer near the viewport.",
      "effort": "large"
    },
    {
      "id": "F33",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "deprioritize-background-fetches",
      "severity": "high",
      "confidence": "high",
      "summary": "The listing page pays a large image and player-code budget before the user chooses media.",
      "evidence": "HAR recorded 2.89MB and 124 requests, including 106 images, 760KB script and HLS code on the feed; 116 requests came from CDN subdomains.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Defer player libraries until intent, lazy-load feed imagery, and enforce per-template byte/request budgets.",
      "effort": "large"
    },
    {
      "id": "F34",
      "pathId": "home",
      "url": "https://it.xvideos.com/",
      "principleId": "be-memory-efficient",
      "principleCheckId": "no-leak-under-repeated-interaction",
      "guidanceId": "defer-rendering-heavy-content",
      "severity": "medium",
      "confidence": "medium",
      "summary": "The long feed grows substantially under repeated traversal without releasing prior content.",
      "evidence": "Baseline-to-post heap summaries grew from 386,850 to 495,584 nodes and 27.9MB to 36.2MB self size; in-page DOM count rose 2,870→19,432. This indicates unbounded feed retention, though no Detached* constructor was observed.",
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json",
        "evidence/memory-metrics.json"
      ],
      "suggestedFix": "Bound the feed window and release nodes, observers and handlers for distant items; repeat the same test until retained growth plateaus.",
      "effort": "large"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Restore semantic, accessible entry and keyboard behaviour",
      "priority": 1,
      "findingIds": [
        "F06",
        "F08",
        "F13",
        "F15",
        "F16",
        "F28",
        "F29"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Harden response headers and browser-enforced security policies",
      "priority": 2,
      "findingIds": [
        "F24",
        "F26"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Cut render-blocking, unused and prematurely loaded code",
      "priority": 3,
      "findingIds": [
        "F09",
        "F10",
        "F11",
        "F35"
      ],
      "guidanceId": "identify-heavy-scripts",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Build a responsive, lazy, modern thumbnail pipeline",
      "priority": 4,
      "findingIds": [
        "F18",
        "F33",
        "F35"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Add complete accessible names, heading structure and contrast tokens",
      "priority": 5,
      "findingIds": [
        "F13",
        "F14",
        "F15"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Make consent choices visually equal and reduce sequential interruption",
      "priority": 6,
      "findingIds": [
        "F05",
        "F28"
      ],
      "guidanceId": "light-dismiss-a-dialog",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Bound the infinite feed DOM and verify memory plateaus",
      "priority": 7,
      "findingIds": [
        "F34",
        "F36"
      ],
      "guidanceId": "defer-rendering-heavy-content",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Fix authentication assistance, validation announcements and passkey support",
      "priority": 8,
      "findingIds": [
        "F25",
        "F29",
        "F30",
        "F31"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Complete canonical, structured and template-specific metadata",
      "priority": 9,
      "findingIds": [
        "F20",
        "F21",
        "F22",
        "F23",
        "F27"
      ],
      "guidanceId": "html",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 1500,
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-22T20-09-04-317Z"
}
