{
  "url": "https://www.redtube.com",
  "auditedAt": "2026-07-19T08:26:29.130Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Regional access gating redirects homepage, category and unknown routes to login. Audit covers the public login gate, invalid-login recovery, privacy notice, contact form, Arabic locale, and indexing endpoints. Authenticated video/detail, playback, account, subscription and cancellation flows were not included because no credentials were provided and new registration is unavailable in this region.",
  "page": {
    "appType": "mpa",
    "framework": "server-rendered legacy MPA",
    "notes": "Public content is server-rendered; regional gating redirects content routes to /login."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "layout-metrics",
    "evaluate-probe",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "images",
    "secrets",
    "lighthouse",
    "heap-summary",
    "direct-fetch"
  ],
  "guidanceConsulted": [
    "dark-mode",
    "accessibility",
    "same-document-transitions",
    "scroll-position-aware-elements",
    "light-dismiss-a-dialog",
    "fluid-scaling",
    "forms",
    "performance",
    "optimize-image-priority",
    "identify-heavy-scripts",
    "html",
    "security",
    "privacy",
    "flicker-free-client-side-ab-testing",
    "translator",
    "validate-input-after-interaction",
    "deliver-optimized-decorative-images",
    "webmcp",
    "manage-recurring-intervals",
    "improve-text-layout-and-legibility"
  ],
  "artifacts": [
    {
      "type": "other",
      "path": "evidence/404-probe.json",
      "caption": "404 probe",
      "findingIds": [
        "F27"
      ]
    },
    {
      "type": "other",
      "path": "evidence/arabic-i18n-probe.json",
      "caption": "arabic i18n probe",
      "findingIds": [
        "F28",
        "F29"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/category-desktop.png",
      "caption": "category desktop",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/category-dom.json",
      "caption": "category dom"
    },
    {
      "type": "other",
      "path": "evidence/category-probe.json",
      "caption": "category probe",
      "findingIds": [
        "F11"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/contact-desktop.png",
      "caption": "contact desktop",
      "findingIds": [
        "F08",
        "F30"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/contact-mobile-layout.json",
      "caption": "contact mobile layout",
      "findingIds": [
        "F08",
        "F30"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/contact-mobile.png",
      "caption": "contact mobile",
      "findingIds": [
        "F08",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/contact-probe.json",
      "caption": "contact probe",
      "findingIds": [
        "F08",
        "F30"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F03",
        "F05",
        "F06",
        "F07",
        "F09",
        "F11",
        "F25",
        "F30"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F03",
        "F05",
        "F06",
        "F07",
        "F09",
        "F11",
        "F25",
        "F30"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F18"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "findingIds": [
        "F07",
        "F08",
        "F09",
        "F18"
      ]
    },
    {
      "type": "other",
      "path": "evidence/home-probe.json",
      "caption": "home probe",
      "findingIds": [
        "F01",
        "F03",
        "F05",
        "F06",
        "F07",
        "F09",
        "F11",
        "F25",
        "F30"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-cookies.json",
      "caption": "login cookies",
      "findingIds": [
        "F23"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/login-discoverability-crawler.png",
      "caption": "login discoverability crawler"
    },
    {
      "type": "screenshot",
      "path": "evidence/login-discoverability-rendered.png",
      "caption": "login discoverability rendered"
    },
    {
      "type": "discoverability",
      "path": "evidence/login-discoverability.json",
      "caption": "login discoverability"
    },
    {
      "type": "other",
      "path": "evidence/login-focus-targets.json",
      "caption": "login focus targets",
      "findingIds": [
        "F10",
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-headers.json",
      "caption": "login headers",
      "findingIds": [
        "F23",
        "F26"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/login-heap-baseline.json",
      "caption": "login heap baseline"
    },
    {
      "type": "heap",
      "path": "evidence/login-heap-post.json",
      "caption": "login heap post"
    },
    {
      "type": "other",
      "path": "evidence/login-images.json",
      "caption": "login images",
      "findingIds": [
        "F19",
        "F31"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-invalid-flow.json",
      "caption": "login invalid flow",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/login-lighthouse.json",
      "caption": "login lighthouse",
      "findingIds": [
        "F02",
        "F10",
        "F12",
        "F15",
        "F16",
        "F17",
        "F18",
        "F20",
        "F21",
        "F22",
        "F25",
        "F32"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-memory-metrics.json",
      "caption": "login memory metrics"
    },
    {
      "type": "other",
      "path": "evidence/login-reduced-motion.json",
      "caption": "login reduced motion"
    },
    {
      "type": "other",
      "path": "evidence/login-secrets.json",
      "caption": "login secrets"
    },
    {
      "type": "har-summary",
      "path": "evidence/login-summary.json",
      "caption": "login summary",
      "findingIds": [
        "F14",
        "F15",
        "F24",
        "F32",
        "F33"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/login-trace-summary.json",
      "caption": "login trace summary",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/login-trace.json",
      "caption": "login trace",
      "findingIds": [
        "F12",
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-trackers.json",
      "caption": "login trackers",
      "findingIds": [
        "F24",
        "F33"
      ]
    },
    {
      "type": "har",
      "path": "evidence/login.har",
      "caption": "login",
      "findingIds": [
        "F14",
        "F15",
        "F24",
        "F32",
        "F33"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/privacy-desktop.png",
      "caption": "privacy desktop",
      "findingIds": [
        "F04",
        "F29"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/privacy-dom.json",
      "caption": "privacy dom"
    },
    {
      "type": "other",
      "path": "evidence/privacy-probe.json",
      "caption": "privacy probe",
      "findingIds": [
        "F04",
        "F29"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots.json",
      "caption": "robots"
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": [
        "F21",
        "F22"
      ]
    },
    {
      "type": "other",
      "path": "evidence/sitemap.json",
      "caption": "sitemap",
      "findingIds": [
        "F21",
        "F22"
      ]
    }
  ],
  "config": {
    "loaded": false
  },
  "coverage": {
    "catalogVersion": "modern-web-guidance@0.0.172",
    "catalogChecksum": "sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7",
    "expected": 58,
    "recorded": 58,
    "judged": 58,
    "blocked": 0,
    "notRun": 0,
    "missing": 0,
    "unknown": 0,
    "duplicates": 0,
    "complete": true
  },
  "checkOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-color-scheme",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated dark preference screenshot plus computed color-scheme probe",
      "evidence": "The page remains visually identical under prefers-color-scheme: dark and reports computed color-scheme \"normal\", showing a fixed dark palette rather than a declared preference-aware scheme.",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "pass",
      "confidence": "high",
      "method": "Emulated prefers-reduced-motion probe of matchMedia, active animations and CSS rules",
      "evidence": "The preference was active and the login page had no running animations or auto-advance to suppress.",
      "artifacts": [
        "evidence/login-reduced-motion.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Emulated prefers-contrast screenshot corroborated by Lighthouse contrast audit",
      "evidence": "The high-contrast capture is unchanged; Lighthouse found red links at 2.75:1 and a green signup control at 2.51:1.",
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "medium",
      "method": "DOM/CSS feature probe and invalid-login state exercise",
      "evidence": "The browser API exists, but no view-transition CSS or authored transition was found; the form state changes abruptly.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/login-invalid-flow.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "pass",
      "confidence": "medium",
      "method": "Animation timeline and stylesheet probe across login and long privacy page",
      "evidence": "No scroll-linked effects or JavaScript-driven parallax were present, so the page avoids the main-thread anti-pattern.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "pass",
      "confidence": "medium",
      "method": "DOM/CSS inspection and responsive screenshots",
      "evidence": "No custom pointer gesture surface, swipe control, or scroll-jacking behavior was present on the audited public paths.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Full-page screenshot and DOM/CSS inspection on the long privacy notice",
      "evidence": "The long privacy document has no progress indicator or scroll-state-aware navigation; its chrome remains static throughout a very long page.",
      "artifacts": [
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathIds": [
        "privacy"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "issues",
      "confidence": "high",
      "method": "DOM inspection of open login and cookie overlays",
      "evidence": "Open overlays are custom role=dialog divs; no dialog/popover or CSS anchor positioning primitives were found.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "medium",
      "method": "First-viewport and invalid-form walkthrough",
      "evidence": "The login heading, focused invalid field, assertive error, and reset link make the current state and next action clear.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/login-invalid-flow.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "medium",
      "method": "Load screenshots and regional-access context review",
      "evidence": "The on-load gate is required for this region, clearly explains the age/auth restriction, and does not masquerade as unrelated promotional content.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "issues",
      "confidence": "high",
      "method": "Rendered DOM inspection of overlays",
      "evidence": "The login and cookie experiences use custom divs with role=dialog rather than native dialog/popover controls, requiring manual modality and dismissal behavior.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "medium",
      "method": "Desktop and mobile full-page screenshots",
      "evidence": "Desktop renders a login dialog over a duplicate login/signup page, while mobile renders a separate gate, creating redundant chrome and competing signup messaging.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "360x800 layout metrics and screenshots on login/contact",
      "evidence": "Both mobile runs lacked a viewport meta tag and rendered a 1070 CSS-pixel desktop layout scaled down into a 360px device viewport.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathIds": [
        "login",
        "contact"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "medium",
      "method": "Stylesheet feature probe plus multi-viewport screenshots",
      "evidence": "No container-query rules were found and the form/page shell does not genuinely adapt; Chrome scales a desktop-width canvas instead.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "login",
        "contact"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Programmatic focus/target-size probe and Lighthouse target-size audit",
      "evidence": "Most controls have a visible 2px focus outline, but the checkbox has no outline and key recovery links are only 16px high; Lighthouse failed target size.",
      "artifacts": [
        "evidence/login-focus-targets.json",
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "First-viewport screenshot, heading and control inspection",
      "evidence": "The gated page clearly says Login, presents email/password and recovery links, and explains that registration is unavailable in this region.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "issues",
      "confidence": "high",
      "method": "Category navigation attempt and login/register pathway review",
      "evidence": "The requested homepage and a category route both redirect to login, while the page states new registrations are unavailable in this region, leaving a new visitor with no path to the advertised content.",
      "artifacts": [
        "evidence/category-desktop.png",
        "evidence/category-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "category",
        "login"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Empty-form submission walkthrough",
      "evidence": "Submitting the login form empty focuses the email field and exposes “Please enter a valid email address” in an aria-live=assertive error region.",
      "artifacts": [
        "evidence/login-invalid-flow.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse and CDP trace",
      "evidence": "Mobile Lighthouse measured LCP 5.1s; the desktop trace measured LCP 1.86s, demonstrating poor mobile load performance despite zero CLS.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login-trace.json",
        "evidence/login-trace-summary.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Layout-shift observers and Lighthouse CLS",
      "evidence": "Login CLS was 0 and contact CLS was 0.0069, both in the good range.",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json",
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login",
        "contact"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "issues",
      "confidence": "high",
      "method": "CDP trace long-task summary",
      "evidence": "The desktop trace captured one 408.77ms long task and 358.77ms total blocking time.",
      "artifacts": [
        "evidence/login-trace.json",
        "evidence/login-trace-summary.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "HAR summary confirmed against DOM resource placement",
      "evidence": "The login load transferred 2.04MB, including a 1.55MB document and four parser-inserted very-high-priority stylesheets; mobile LCP was 5.1s.",
      "artifacts": [
        "evidence/login.har",
        "evidence/login-summary.json",
        "evidence/login-lighthouse.json",
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse code coverage and HAR third-party totals",
      "evidence": "Lighthouse estimated 172KiB unused JavaScript, including 71KiB and 62KiB in two tag-manager bundles; 23 of 28 requests were third-party.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse accessibility audits and DOM form/image inspection",
      "evidence": "Lighthouse passed label, image-alt and landmark audits; visible login/contact fields have labels and inspected images have alt text.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login-images.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathIds": [
        "login",
        "contact"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse automated contrast audit",
      "evidence": "Lighthouse found multiple links at 2.75:1 and a signup control at 2.51:1, below WCAG minimums.",
      "artifacts": [
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse tabindex audit and focus-style probe",
      "evidence": "Two recovery links use tabindex=4, disrupting natural focus order, and the visible checkbox has no focus outline.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login-focus-targets.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "medium",
      "method": "Desktop/mobile screenshots of login and privacy content",
      "evidence": "Text is crisp, aligned, and readable in the desktop captures; the long privacy notice uses clear sectioning and comfortable line length on desktop.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse viewport/target audits and 360x800 screenshots",
      "evidence": "The viewport declares user-scalable=no/maximum-scale=1 in Lighthouse, while primitive runs observed no effective viewport meta; the page is scaled from 1070px and recovery targets are only 16px high.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "login",
        "contact"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Lighthouse console-error audit",
      "evidence": "Lighthouse reported no console errors or uncaught exceptions.",
      "artifacts": [
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "DOM, Lighthouse document audits, and image inventory",
      "evidence": "Doctype/charset and aspect ratio passed, but 14 of 24 inspected images omit explicit dimensions and three below-fold images are not lazy-loaded.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/login-images.json",
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse best-practices/DevTools issue audits",
      "evidence": "The page is excluded from BFCache by no-store responses and Lighthouse logged a cookie inspector issue; deprecated APIs and source maps otherwise passed.",
      "artifacts": [
        "evidence/login-lighthouse.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "DOM and raw-HTML discoverability comparison",
      "evidence": "Login has a descriptive title and meta description, both present in raw HTML; privacy and contact also have titles.",
      "artifacts": [
        "evidence/login-discoverability.json",
        "evidence/login-discoverability-rendered.png",
        "evidence/login-discoverability-crawler.png",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy",
        "contact"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse SEO, direct robots fetch, and anchor/viewport probes",
      "evidence": "Anchors are crawlable, but /robots.txt serves the login HTML (2,008 Lighthouse parse errors) and the mobile viewport disables zoom/does not map to device width.",
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.json",
        "evidence/login-lighthouse.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "issues",
      "confidence": "high",
      "method": "Canonical/meta inspection plus robots and sitemap requests",
      "evidence": "Canonical URLs and sitemap.xml exist, but robots.txt is replaced by login HTML, making crawler policy invalid and inconsistent with the sitemap.",
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.json",
        "evidence/login-lighthouse.json",
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Entity applicability review of audited public pages",
      "evidence": "The login, contact, and legal notice pages are not article/product/event entities requiring rich-result metadata.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy",
        "contact"
      ],
      "reason": "Audited public pages do not represent a rich entity for which structured/share metadata is required."
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Security-header and cookie primitives",
      "evidence": "HTTPS is used, but CSP, HSTS and nosniff are absent; PHPSESSID is neither Secure nor HttpOnly and all seven cookies use SameSite=None.",
      "artifacts": [
        "evidence/login-headers.json",
        "evidence/login-cookies.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Tracker enumeration and HAR origin accounting",
      "evidence": "The login page contacts seven third-party origins, including Google Tag Manager and Google Analytics; 23/28 requests and 482KB are third-party before login.",
      "artifacts": [
        "evidence/login-trackers.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse prompt audits and login DOM inspection",
      "evidence": "No permission prompt fires on load, but the only visible authentication method is password-based; no passkey/WebAuthn affordance is exposed.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F25"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Security-header primitive",
      "evidence": "X-Frame-Options is present, but HSTS, CSP/frame-ancestors, Referrer-Policy and Permissions-Policy are absent.",
      "artifacts": [
        "evidence/login-headers.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F26"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Raw HTML versus rendered DOM discoverability test",
      "evidence": "The raw server HTML contains 100% of rendered content tokens and retains title, h1 and description without JavaScript.",
      "artifacts": [
        "evidence/login-discoverability.json",
        "evidence/login-discoverability-rendered.png",
        "evidence/login-discoverability-crawler.png"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "medium",
      "method": "Overlay screenshots and repeated form-state exercise",
      "evidence": "The visible login dialog stays within the desktop viewport and repeated invalid submissions preserve the form and a single actionable error.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/login-invalid-flow.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Manifest/service-worker and site-purpose review",
      "evidence": "A manifest exists, but this media service and authentication flow are intrinsically online; offline installability is not a reasonable core requirement.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ],
      "reason": "The audited media/auth service is intrinsically online, so offline/installable behavior is contextual and not required."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "issues",
      "confidence": "medium",
      "method": "Navigation to a guaranteed nonexistent URL",
      "evidence": "A nonexistent URL silently redirects to the normal login screen, with no not-found explanation or recovery state distinct from valid gated content.",
      "artifacts": [
        "evidence/404-probe.json"
      ],
      "pathIds": [
        "recovery"
      ],
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Arabic locale DOM/CSS probe",
      "evidence": "The Arabic page sets lang=ar but omits dir=rtl, remains largely English, and inspected CSS uses physical left/right positioning.",
      "artifacts": [
        "evidence/arabic-i18n-probe.json"
      ],
      "pathIds": [
        "arabic"
      ],
      "findingIds": [
        "F28"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "issues",
      "confidence": "medium",
      "method": "English privacy notice and Arabic locale content inspection",
      "evidence": "The localized surface remains mostly English and the privacy notice renders an English-only hand-formatted date (“April 16th, 2026”), with no locale-aware alternative observed.",
      "artifacts": [
        "evidence/arabic-i18n-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathIds": [
        "arabic",
        "privacy"
      ],
      "findingIds": [
        "F29"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Audited-surface content review",
      "evidence": "No time-zone-sensitive event, booking, schedule, or timestamp flow appears on the login, contact, or legal pages.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy",
        "contact"
      ],
      "reason": "No audited surface handles time-zone-sensitive events or times."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "pass",
      "confidence": "medium",
      "method": "Login, registration notice, privacy and cookie-control review",
      "evidence": "Registration unavailability, credential changes, legal notices and privacy links are disclosed plainly; persistent login is not preselected in the inspected form.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathIds": [
        "login",
        "privacy"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Invalid login submission",
      "evidence": "Validation occurs after submission, focuses the relevant field, and announces a specific error assertively without blame.",
      "artifacts": [
        "evidence/login-invalid-flow.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "DOM inspection of login and contact fields",
      "evidence": "Email and password inputs omit autocomplete tokens; contact email also omits autocomplete=email.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathIds": [
        "login",
        "contact"
      ],
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "medium",
      "method": "Public account-flow review",
      "evidence": "The login surface exposes password recovery and clearly discloses regional registration limits; no pricing, subscription continuity, or preselected consent was presented on audited public paths.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Image primitive and HAR analysis",
      "evidence": "Three images use legacy PNG/GIF formats, 14 images lack dimensions, three below-fold images are not lazy-loaded, and three raster images lack srcset.",
      "artifacts": [
        "evidence/login-images.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F31"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "issues",
      "confidence": "high",
      "method": "Lighthouse unused-code and HAR analysis",
      "evidence": "Two analytics bundles transfer about 296KB and Lighthouse marks about 133KB of them unused on the login page; total unused JS estimate is 172KiB.",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F32"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "issues",
      "confidence": "high",
      "method": "HAR and tracker primitives",
      "evidence": "Third parties account for 23/28 requests and 482KB on a simple login page, including two tag-manager payloads and analytics before authentication.",
      "artifacts": [
        "evidence/login.har",
        "evidence/login-summary.json",
        "evidence/login-trackers.json"
      ],
      "pathIds": [
        "login"
      ],
      "findingIds": [
        "F33"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Agent-facing intent and surface review",
      "evidence": "No developer intent or user-facing agent workflow is declared for the gated media/login and legal-information surfaces.",
      "artifacts": [
        "evidence/login-discoverability.json",
        "evidence/login-discoverability-rendered.png",
        "evidence/login-discoverability-crawler.png"
      ],
      "pathIds": [
        "login"
      ],
      "reason": "No agent-facing capability or on-device inference use case is declared; this emerging principle is contextual."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Agent-facing intent and surface review",
      "evidence": "No developer intent or user-facing agent workflow is declared for the gated media/login and legal-information surfaces.",
      "artifacts": [
        "evidence/login-discoverability.json",
        "evidence/login-discoverability-rendered.png",
        "evidence/login-discoverability-crawler.png"
      ],
      "pathIds": [
        "login"
      ],
      "reason": "No agent-facing capability or on-device inference use case is declared; this emerging principle is contextual."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "medium",
      "method": "Baseline/post heap snapshots plus ten repeated invalid submissions",
      "evidence": "After ten submissions DOM elements remained 697 and only one error remained; heap self-size rose 10.70MB to 11.33MB (5.9%), not an unbounded pattern in this bounded exercise.",
      "artifacts": [
        "evidence/login-heap-baseline.json",
        "evidence/login-heap-post.json",
        "evidence/login-memory-metrics.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap summary and Performance.memory sampling",
      "evidence": "Baseline heap self-size was 10.70MB with 182,753 heap nodes, proportionate to the login page; used JS heap was about 12.3MB.",
      "artifacts": [
        "evidence/login-heap-baseline.json",
        "evidence/login-heap-post.json",
        "evidence/login-memory-metrics.json"
      ],
      "pathIds": [
        "login"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "medium",
      "method": "Heap constructor comparison and DOM-count stability probe",
      "evidence": "Neither heap summary reports Detached* constructors and the live DOM count stayed exactly 697 after ten repeated submissions.",
      "artifacts": [
        "evidence/login-heap-baseline.json",
        "evidence/login-heap-post.json",
        "evidence/login-memory-metrics.json"
      ],
      "pathIds": [
        "login"
      ]
    }
  ],
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04",
        "F05"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F08",
        "F09",
        "F10"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ]
    },
    {
      "principleId": "be-inclusive",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16",
        "F17",
        "F18"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F19",
        "F20"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F21",
        "F22"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F23",
        "F24",
        "F25",
        "F26"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F27"
      ]
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F28",
        "F29"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F30"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F31",
        "F32",
        "F33"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No agent-facing capability or on-device inference use case is declared; this emerging principle is contextual. No agent-facing capability or on-device inference use case is declared; this emerging principle is contextual."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "login",
      "description": "Homepage/login gate: primary regional entry, authentication, preference, accessibility, performance, privacy and invalid-submit behavior.",
      "url": "https://www.redtube.com/login",
      "conditions": [
        "desktop",
        "360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "keyboard focus",
        "invalid submit"
      ],
      "result": "issues"
    },
    {
      "id": "category",
      "description": "Representative content listing archetype; confirms regional redirect behavior.",
      "url": "https://www.redtube.com/redtube/amateur",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    },
    {
      "id": "privacy",
      "description": "Long-form legal/content archetype and privacy disclosure.",
      "url": "https://www.redtube.com/information/privacy",
      "conditions": [
        "desktop",
        "long scroll"
      ],
      "result": "issues"
    },
    {
      "id": "contact",
      "description": "Representative public support form and narrow-screen behavior.",
      "url": "https://www.redtube.com/contact",
      "conditions": [
        "desktop",
        "360x800"
      ],
      "result": "issues"
    },
    {
      "id": "arabic",
      "description": "Localized RTL-language variant for internationalisation.",
      "url": "https://ar.redtube.com/login",
      "conditions": [
        "Arabic locale"
      ],
      "result": "issues"
    },
    {
      "id": "recovery",
      "description": "Guaranteed unknown route for HTTP/not-found recovery behavior.",
      "url": "https://www.redtube.com/definitely-not-a-real-page-web-uplift",
      "conditions": [
        "desktop"
      ],
      "result": "issues"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "severity": "low",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "summary": "Declare a preference-aware color scheme",
      "evidence": "Dark screenshot is pixel-identical to default and computed color-scheme is normal.",
      "suggestedFix": "Add color-scheme: dark light and tokenized light/dark values driven by prefers-color-scheme.",
      "effort": "small",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/home-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F02",
      "severity": "high",
      "confidence": "high",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "accessibility",
      "summary": "High-contrast preferences do not improve already-failing contrast",
      "evidence": "prefers-contrast capture is unchanged; Lighthouse reports 2.75:1 and 2.51:1 combinations.",
      "suggestedFix": "Use higher-contrast red/green tokens and add forced-colors/prefers-contrast adaptations.",
      "effort": "small",
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F03",
      "severity": "low",
      "confidence": "high",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "same-document-transitions",
      "summary": "Form state changes are abrupt",
      "evidence": "No view-transition CSS is present and invalid submission changes state immediately.",
      "suggestedFix": "Use a short reduced-motion-safe same-document transition for error/state changes.",
      "effort": "small",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/login-invalid-flow.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F04",
      "severity": "low",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "scroll-state-aware-chrome",
      "guidanceId": "scroll-position-aware-elements",
      "summary": "Long legal content lacks progress/orientation",
      "evidence": "Full-page privacy capture shows a long document with static navigation and no progress indicator.",
      "suggestedFix": "Add a lightweight scroll progress indicator and sticky section context.",
      "effort": "medium",
      "artifacts": [
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F05",
      "severity": "medium",
      "confidence": "high",
      "principleId": "provide-guided-navigation",
      "principleCheckId": "anchored-positioning",
      "guidanceId": "light-dismiss-a-dialog",
      "summary": "Overlays rely on custom positioning",
      "evidence": "DOM reports custom DIV dialogs for login and cookie management.",
      "suggestedFix": "Use dialog/popover and CSS anchor positioning where attachment is needed.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F06",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "semantic-dismissible-primitives",
      "guidanceId": "light-dismiss-a-dialog",
      "summary": "Custom divs implement modal experiences",
      "evidence": "DOM identifies three custom DIV dialog surfaces.",
      "suggestedFix": "Migrate modal flows to <dialog> and transient controls to popover with declarative dismissal.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F07",
      "severity": "medium",
      "confidence": "high",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "improve-text-layout-and-legibility",
      "summary": "Login chrome is duplicated and visually noisy",
      "evidence": "Desktop screenshot shows duplicate authentication and signup messaging behind the gate.",
      "suggestedFix": "Render one context-appropriate gate and remove duplicate background authentication chrome.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F08",
      "severity": "high",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "summary": "Mobile receives a scaled desktop canvas",
      "evidence": "360x800 runs render a 1070 CSS-pixel canvas; viewport metadata is absent/ineffective.",
      "suggestedFix": "Use width=device-width, allow zoom, and rebuild layouts with intrinsic fluid sizing.",
      "effort": "large",
      "artifacts": [
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F09",
      "severity": "medium",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "fluid-scaling",
      "summary": "Components do not adapt to their available container",
      "evidence": "Probe found no @container rules; mobile is scaled rather than reflowed.",
      "suggestedFix": "Give reusable shells container-type and adapt spacing/columns with container queries.",
      "effort": "medium",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F10",
      "severity": "high",
      "confidence": "high",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "summary": "Some keyboard/touch affordances are too small or invisible",
      "evidence": "Focus probe and Lighthouse target-size audit identify the failures.",
      "suggestedFix": "Ensure every target meets minimum size/spacing and add a visible :focus-visible style to the checkbox.",
      "effort": "small",
      "artifacts": [
        "evidence/login-focus-targets.json",
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F11",
      "severity": "high",
      "confidence": "high",
      "principleId": "support-core-task-success",
      "principleCheckId": "primary-flow-completion",
      "guidanceId": "forms",
      "summary": "New regional visitors reach a dead end",
      "evidence": "Homepage and category route end at login; page explicitly says registration is unavailable in this region.",
      "suggestedFix": "Provide a compliant age-verification route, a clear regional availability explanation, or a lawful alternative path rather than an account dead end.",
      "effort": "large",
      "artifacts": [
        "evidence/category-desktop.png",
        "evidence/category-probe.json",
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F12",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "summary": "Mobile LCP is slow",
      "evidence": "Lighthouse reports LCP 5.1s; desktop trace reports 1.86s.",
      "suggestedFix": "Prioritize the LCP content and reduce document/script work on mobile.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login-trace.json",
        "evidence/login-trace-summary.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F13",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-main-thread",
      "guidanceId": "performance",
      "summary": "A long task blocks the main thread",
      "evidence": "Trace summary records a 408.77ms task and 358.77ms TBT.",
      "suggestedFix": "Profile the long task, split work, and defer non-critical initialization.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-trace.json",
        "evidence/login-trace-summary.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F14",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "performance",
      "summary": "The simple login load transfers 2.04MB",
      "evidence": "HAR reports 2.04MB, a 1.55MB document, and four very-high-priority parser stylesheets.",
      "suggestedFix": "Shrink server HTML, inline only critical CSS, and defer non-critical styles/scripts.",
      "effort": "large",
      "artifacts": [
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F15",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "summary": "Large unused JavaScript ships on login",
      "evidence": "Lighthouse estimates 172KiB unused JS; 23/28 requests are third-party.",
      "suggestedFix": "Conditionally load analytics and route-specific bundles after consent/need.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F16",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "summary": "Important text and controls fail contrast",
      "evidence": "Lighthouse measures ratios down to 2.51:1.",
      "suggestedFix": "Replace failing color tokens with combinations meeting 4.5:1 for normal text.",
      "effort": "small",
      "artifacts": [
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F17",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "structure-and-focus",
      "guidanceId": "accessibility",
      "summary": "Focus order and visibility are inconsistent",
      "evidence": "Lighthouse finds tabindex=4 on two links; focus probe finds outline none on checkbox.",
      "suggestedFix": "Remove positive tabindex and provide consistent :focus-visible styling.",
      "effort": "small",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login-focus-targets.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F18",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "summary": "Zoom is disabled and mobile does not reflow",
      "evidence": "Lighthouse flags user-scalable=no; 360px primitive run renders 1070 CSS pixels.",
      "suggestedFix": "Allow pinch zoom and implement true responsive reflow at narrow widths.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/home-mobile.png",
        "evidence/home-mobile-layout.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F19",
      "severity": "medium",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "summary": "Image markup omits stability/loading hints",
      "evidence": "Image primitive reports 14 missing dimensions and three below-fold images not lazy-loaded.",
      "suggestedFix": "Add width/height or aspect-ratio and loading=lazy for offscreen images.",
      "effort": "small",
      "artifacts": [
        "evidence/login-images.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F20",
      "severity": "low",
      "confidence": "high",
      "principleId": "follow-best-practices",
      "principleCheckId": "browser-platform-hygiene",
      "guidanceId": "html",
      "summary": "The login page cannot use BFCache",
      "evidence": "Lighthouse lists three BFCache failure reasons and a cookie inspector issue.",
      "suggestedFix": "Limit no-store and cookie mutation to responses/state that genuinely require them.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F21",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "crawlable-and-mobile-friendly",
      "guidanceId": "html",
      "summary": "robots.txt serves HTML instead of crawler rules",
      "evidence": "Direct fetch returns login HTML and Lighthouse reports 2,008 robots errors.",
      "suggestedFix": "Serve a valid text/plain robots.txt without regional login interception.",
      "effort": "small",
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.json",
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F22",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-discoverable",
      "principleCheckId": "canonical-and-indexing-signals",
      "guidanceId": "html",
      "summary": "Robots and sitemap indexing signals conflict",
      "evidence": "sitemap.xml returns a populated index, but robots.txt is login HTML.",
      "suggestedFix": "Restore valid robots rules and verify they align with sitemap URLs and regional gating.",
      "effort": "small",
      "artifacts": [
        "evidence/robots.txt",
        "evidence/sitemap.json",
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F23",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "summary": "Security headers and cookie protections are incomplete",
      "evidence": "Headers omit CSP/HSTS/nosniff; PHPSESSID lacks Secure and HttpOnly; all cookies use SameSite=None.",
      "suggestedFix": "Deploy CSP and HSTS, add nosniff, and scope cookies with Secure, HttpOnly and appropriate SameSite.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-headers.json",
        "evidence/login-cookies.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F24",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "summary": "Tracking starts on the login page",
      "evidence": "Seven third-party origins, two known trackers, 23/28 requests and 482KB third-party traffic were observed.",
      "suggestedFix": "Gate non-essential analytics on consent and remove third parties without direct login value.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-trackers.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F25",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "security",
      "summary": "Authentication exposes no phishing-resistant option",
      "evidence": "DOM/form inspection finds password fields and no passkey/WebAuthn affordance; prompt-on-load audits pass.",
      "suggestedFix": "Offer passkey/WebAuthn sign-in alongside password recovery.",
      "effort": "large",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/login-lighthouse.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F26",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "summary": "Browser-enforced policies are mostly absent",
      "evidence": "Header primitive finds no HSTS, CSP, Referrer-Policy or Permissions-Policy.",
      "suggestedFix": "Set HSTS, CSP with frame-ancestors, Referrer-Policy and a least-privilege Permissions-Policy.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-headers.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F27",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-resilient",
      "principleCheckId": "network-and-http-failure-states",
      "guidanceId": "forms",
      "summary": "Unknown routes have no distinct recovery state",
      "evidence": "404 probe final URL is /login with no not-found explanation.",
      "suggestedFix": "Preserve an explicit not-found/error state with links back to valid public routes.",
      "effort": "small",
      "artifacts": [
        "evidence/404-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F28",
      "severity": "high",
      "confidence": "high",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "summary": "Arabic localization is incomplete and lacks RTL semantics",
      "evidence": "Arabic probe reports lang=ar, empty dir, English paragraphs, and physical left/right CSS.",
      "suggestedFix": "Set dir=rtl, replace physical properties with logical ones, and complete translation coverage.",
      "effort": "large",
      "artifacts": [
        "evidence/arabic-i18n-probe.json"
      ],
      "pathId": "arabic",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F29",
      "severity": "low",
      "confidence": "high",
      "principleId": "be-internationalised",
      "principleCheckId": "locale-aware-data",
      "guidanceId": "translator",
      "summary": "Locale-sensitive content is hard-formatted in English",
      "evidence": "Privacy shows “April 16th, 2026”; Arabic login remains largely English.",
      "suggestedFix": "Use Intl.DateTimeFormat and localized message catalogs for visible dates and copy.",
      "effort": "medium",
      "artifacts": [
        "evidence/arabic-i18n-probe.json",
        "evidence/privacy-desktop.png",
        "evidence/privacy-probe.json"
      ],
      "pathId": "arabic",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F30",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "forms",
      "summary": "Login and contact inputs omit autocomplete hints",
      "evidence": "DOM reports empty autocomplete on login email/password and contact email.",
      "suggestedFix": "Add username/current-password/email autocomplete tokens as appropriate.",
      "effort": "trivial",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/home-probe.json",
        "evidence/contact-desktop.png",
        "evidence/contact-mobile.png",
        "evidence/contact-mobile-layout.json",
        "evidence/contact-probe.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F31",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "deliver-optimized-decorative-images",
      "summary": "Several image assets are not efficiently delivered",
      "evidence": "Image inventory reports legacy PNG/GIF, no srcset on raster images and eager below-fold assets.",
      "suggestedFix": "Use AVIF/WebP where suitable, responsive sources, explicit dimensions and lazy loading.",
      "effort": "small",
      "artifacts": [
        "evidence/login-images.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F32",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "no-wasteful-work",
      "guidanceId": "identify-heavy-scripts",
      "summary": "Analytics code does substantial unused work",
      "evidence": "Lighthouse reports ~133KB unused across two analytics bundles.",
      "suggestedFix": "Remove redundant tags and load non-essential analytics conditionally after consent.",
      "effort": "medium",
      "artifacts": [
        "evidence/login-lighthouse.json",
        "evidence/login.har",
        "evidence/login-summary.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    },
    {
      "id": "F33",
      "severity": "medium",
      "confidence": "high",
      "principleId": "be-sustainable",
      "principleCheckId": "third-party-and-media-budget",
      "guidanceId": "privacy",
      "summary": "Third-party cost is disproportionate to login value",
      "evidence": "HAR records 23/28 third-party requests and 482KB transferred.",
      "suggestedFix": "Set and enforce a login-page third-party budget; defer ads/analytics until needed.",
      "effort": "medium",
      "artifacts": [
        "evidence/login.har",
        "evidence/login-summary.json",
        "evidence/login-trackers.json"
      ],
      "pathId": "login",
      "url": "https://www.redtube.com/login"
    }
  ],
  "taskList": [
    {
      "id": "T1",
      "title": "Restore a true responsive, zoomable mobile layout",
      "priority": 1,
      "findingIds": [
        "F08",
        "F09",
        "F10",
        "F18"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T2",
      "title": "Deploy missing security headers and harden cookies",
      "priority": 2,
      "findingIds": [
        "F23",
        "F26"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T3",
      "title": "Fix robots.txt and align indexing signals",
      "priority": 3,
      "findingIds": [
        "F21",
        "F22"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T4",
      "title": "Reduce mobile LCP, document weight and long tasks",
      "priority": 4,
      "findingIds": [
        "F12",
        "F13",
        "F14",
        "F15"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T5",
      "title": "Fix contrast, focus order, focus visibility and target sizing",
      "priority": 5,
      "findingIds": [
        "F02",
        "F10",
        "F16",
        "F17"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T6",
      "title": "Minimise and consent-gate third-party analytics",
      "priority": 6,
      "findingIds": [
        "F24",
        "F32",
        "F33"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T7",
      "title": "Provide a compliant non-dead-end regional access path",
      "priority": 7,
      "findingIds": [
        "F11",
        "F27"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T8",
      "title": "Complete RTL/localized behavior",
      "priority": 8,
      "findingIds": [
        "F28",
        "F29"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T9",
      "title": "Modernize forms, overlays and input assistance",
      "priority": 9,
      "findingIds": [
        "F05",
        "F06",
        "F30"
      ],
      "guidanceId": "forms",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Optimize image delivery and metadata",
      "priority": 10,
      "findingIds": [
        "F19",
        "F31"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    }
  ],
  "budget": {
    "pathCount": 6,
    "auditPasses": 1
  },
  "agent": "pi",
  "runId": "2026-07-19T08-26-29-130Z"
}
