{
  "url": "https://www.porn300.com",
  "auditedAt": "2026-07-25T21:27:00.000Z",
  "mode": "report",
  "status": "completed",
  "statusDetail": "Coverage-complete representative audit. A temporary Cloudflare 1015 response affected one repeat detail fetch, but the detail screenshot and later active playback probe succeeded, so no atomic check remained blocked.",
  "page": {
    "appType": "mpa",
    "framework": "Server-rendered MPA with custom JavaScript and Video.js",
    "notes": "Public adult-media catalogue. Representative coverage includes listing, taxonomy, search, video playback, linked login and failure recovery. Excluded: upload/registration submission, destructive account actions, every category/video duplicate, and playback beyond confirming start."
  },
  "evidenceUsed": [
    "screenshot",
    "dom",
    "evaluate-probe",
    "layout-metrics",
    "trace",
    "har",
    "discoverability",
    "headers",
    "cookies",
    "trackers",
    "secrets",
    "images",
    "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": "dom",
      "path": "evidence/categories-dom.json",
      "caption": "categories dom",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/categories.png",
      "caption": "categories",
      "findingIds": []
    },
    {
      "type": "layout",
      "path": "evidence/category-mobile-layout.json",
      "caption": "category mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/category.png",
      "caption": "category",
      "findingIds": [
        "F06"
      ]
    },
    {
      "type": "other",
      "path": "evidence/comprehensive-probe.json",
      "caption": "comprehensive probe",
      "findingIds": [
        "F07",
        "F08",
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/contrast-probe.json",
      "caption": "contrast probe",
      "condition": "prefers-contrast: more",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/cookies-policy-dom.json",
      "caption": "cookies policy dom",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/cookies-policy.png",
      "caption": "cookies policy",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/cookies.json",
      "caption": "cookies",
      "findingIds": [
        "F17"
      ]
    },
    {
      "type": "other",
      "path": "evidence/dark-motion.json",
      "caption": "dark motion",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-crawler.png",
      "caption": "discoverability crawler",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/discoverability-rendered.png",
      "caption": "discoverability rendered",
      "findingIds": []
    },
    {
      "type": "discoverability",
      "path": "evidence/discoverability.json",
      "caption": "discoverability",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/forms.json",
      "caption": "forms",
      "findingIds": [
        "F23"
      ]
    },
    {
      "type": "other",
      "path": "evidence/headers.json",
      "caption": "headers",
      "findingIds": [
        "F17",
        "F18"
      ]
    },
    {
      "type": "heap",
      "path": "evidence/heap-baseline.json",
      "caption": "heap baseline",
      "findingIds": []
    },
    {
      "type": "heap",
      "path": "evidence/heap-post-scroll.json",
      "caption": "heap post scroll",
      "findingIds": []
    },
    {
      "type": "screenshot",
      "path": "evidence/home-dark.png",
      "caption": "home dark",
      "condition": "prefers-color-scheme: dark",
      "findingIds": [
        "F01"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-desktop.png",
      "caption": "home desktop",
      "findingIds": [
        "F12",
        "F22"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/home-dom.json",
      "caption": "home dom",
      "findingIds": [
        "F04",
        "F07",
        "F08",
        "F10",
        "F13",
        "F15",
        "F22"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-high-contrast.png",
      "caption": "home high contrast",
      "condition": "prefers-contrast: more",
      "findingIds": [
        "F03"
      ]
    },
    {
      "type": "layout",
      "path": "evidence/home-mobile-layout.json",
      "caption": "home mobile layout",
      "condition": "viewport: 360x800",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/home-mobile.png",
      "caption": "home mobile",
      "condition": "viewport: 360x800",
      "findingIds": []
    },
    {
      "type": "har-summary",
      "path": "evidence/home-summary.json",
      "caption": "home summary",
      "findingIds": [
        "F10",
        "F11",
        "F19",
        "F24"
      ]
    },
    {
      "type": "trace-summary",
      "path": "evidence/home-trace-summary.json",
      "caption": "home trace summary",
      "findingIds": [
        "F09"
      ]
    },
    {
      "type": "trace",
      "path": "evidence/home-trace.json",
      "caption": "home trace",
      "findingIds": []
    },
    {
      "type": "har",
      "path": "evidence/home.har",
      "caption": "home",
      "findingIds": [
        "F10",
        "F19"
      ]
    },
    {
      "type": "other",
      "path": "evidence/images.json",
      "caption": "images",
      "findingIds": [
        "F15",
        "F24"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-details.json",
      "caption": "lighthouse details",
      "findingIds": [
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "type": "lighthouse",
      "path": "evidence/lighthouse-home.json",
      "caption": "lighthouse home",
      "findingIds": [
        "F09",
        "F11",
        "F12",
        "F13"
      ]
    },
    {
      "type": "other",
      "path": "evidence/login-probe.json",
      "caption": "login probe",
      "findingIds": [
        "F20",
        "F21",
        "F23"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/login.png",
      "caption": "login",
      "findingIds": [
        "F20",
        "F21"
      ]
    },
    {
      "type": "other",
      "path": "evidence/not-found.json",
      "caption": "not found",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/recon.json",
      "caption": "recon",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/reduced-motion.json",
      "caption": "reduced motion",
      "condition": "prefers-reduced-motion: reduce",
      "findingIds": [
        "F02"
      ]
    },
    {
      "type": "other",
      "path": "evidence/robots-headers.txt",
      "caption": "robots headers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/robots.txt",
      "caption": "robots",
      "findingIds": []
    },
    {
      "type": "dom",
      "path": "evidence/search-dom.json",
      "caption": "search dom",
      "findingIds": [
        "F04"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/search.png",
      "caption": "search",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/secrets.json",
      "caption": "secrets",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap-headers.txt",
      "caption": "sitemap headers",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/sitemap.xml",
      "caption": "sitemap",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/trackers.json",
      "caption": "trackers",
      "findingIds": [
        "F19"
      ]
    },
    {
      "type": "dom",
      "path": "evidence/video-dom.json",
      "caption": "video dom",
      "findingIds": []
    },
    {
      "type": "other",
      "path": "evidence/video-flow.json",
      "caption": "video flow",
      "findingIds": [
        "F14"
      ]
    },
    {
      "type": "other",
      "path": "evidence/video-metadata.json",
      "caption": "video metadata",
      "findingIds": [
        "F05",
        "F14",
        "F16"
      ]
    },
    {
      "type": "screenshot",
      "path": "evidence/video.png",
      "caption": "video",
      "findingIds": [
        "F05",
        "F14",
        "F22"
      ]
    }
  ],
  "config": {
    "loaded": false
  },
  "principleOutcomes": [
    {
      "principleId": "respect-user-preferences",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "expectation": "default",
      "status": "pass"
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F06",
        "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": [
        "F13",
        "F12",
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "be-discoverable",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F17",
        "F19",
        "F20",
        "F18"
      ]
    },
    {
      "principleId": "be-resilient",
      "expectation": "contextual",
      "status": "pass"
    },
    {
      "principleId": "be-internationalised",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "expectation": "default",
      "status": "issues",
      "findingIds": [
        "F22",
        "F23"
      ]
    },
    {
      "principleId": "be-sustainable",
      "expectation": "contextual",
      "status": "issues",
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "expectation": "contextual",
      "status": "not-applicable",
      "reason": "No agent-facing transaction or productivity capability is intended; ordinary crawlable content does not require WebMCP tools. No summarisation, generation or language-model task is part of the observed core experience."
    },
    {
      "principleId": "be-memory-efficient",
      "expectation": "default",
      "status": "pass"
    }
  ],
  "paths": [
    {
      "id": "home",
      "description": "Homepage and primary catalogue listing; covers first impression, navigation, search entry, responsive cards, preferences and global metadata.",
      "url": "https://www.porn300.com/",
      "conditions": [
        "desktop 1440x900",
        "mobile 360x800",
        "prefers-color-scheme: dark",
        "prefers-reduced-motion: reduce",
        "prefers-contrast: more",
        "keyboard focus"
      ],
      "result": "issues"
    },
    {
      "id": "categories",
      "description": "Categories index; represents taxonomy navigation.",
      "url": "https://www.porn300.com/categories/",
      "conditions": [
        "desktop 1440x900"
      ],
      "result": "pass"
    },
    {
      "id": "category",
      "description": "British Porn category listing; represents filtered listing templates and mobile reflow.",
      "url": "https://www.porn300.com/category/british-porn/",
      "conditions": [
        "desktop 1440x900",
        "mobile 360x800"
      ],
      "result": "issues"
    },
    {
      "id": "search",
      "description": "Search results reached through the homepage GET form; represents the primary find-content flow.",
      "url": "https://www.porn300.com/search/?q=british&bus=normal",
      "conditions": [
        "desktop 1440x900"
      ],
      "result": "pass"
    },
    {
      "id": "video",
      "description": "Representative video detail and playback start; covers the primary watch flow, media accessibility, advertising and rich metadata.",
      "url": "https://www.porn300.com/video/naughty-polish-teen-having-sex-with-a-kinky-girl-and-guy/",
      "conditions": [
        "desktop 1440x900",
        "play control activated"
      ],
      "result": "issues"
    },
    {
      "id": "login",
      "description": "Cross-origin account login widget linked from the global header; covers authentication and input assistance.",
      "url": "https://user.porn300.com/widget/login",
      "conditions": [
        "800x900"
      ],
      "result": "issues"
    },
    {
      "id": "not-found",
      "description": "Representative unknown route; covers HTTP/error recovery messaging.",
      "url": "https://www.porn300.com/does-not-exist-web-uplift",
      "conditions": [
        "desktop"
      ],
      "result": "pass"
    }
  ],
  "findings": [
    {
      "id": "F01",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-color-scheme",
      "guidanceId": "dark-mode",
      "guidanceCategory": "user-experience",
      "severity": "medium",
      "confidence": "high",
      "summary": "The site remains light when the user requests a dark color scheme.",
      "evidence": "The dark-mode screenshot remains on the same #f5f5f5 body surface as the default capture; the computed probe reports colorScheme \"normal\" and body background rgb(245,245,245).",
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/dark-motion.json"
      ],
      "suggestedFix": "Declare color-scheme: light dark and use prefers-color-scheme or light-dark() for surfaces, text, form controls and browser chrome.",
      "effort": "medium"
    },
    {
      "id": "F02",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-reduced-motion",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "low",
      "confidence": "high",
      "summary": "The page does not adapt animation when reduced motion is requested.",
      "evidence": "Under prefers-reduced-motion: reduce, the blink animation still runs with a 1000 ms duration and the probe finds no reduced-motion media rule.",
      "artifacts": [
        "evidence/reduced-motion.json"
      ],
      "suggestedFix": "Add a prefers-reduced-motion: reduce rule that removes the non-essential blink and suppresses non-essential transitions and autoplay motion.",
      "effort": "small"
    },
    {
      "id": "F03",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "respect-user-preferences",
      "principleCheckId": "respects-contrast",
      "guidanceId": "adapt-scrollbar-to-contrast-preferences",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "The UI does not explicitly adapt to increased-contrast or forced-color preferences.",
      "evidence": "The prefers-contrast: more probe is active but finds no prefers-contrast or forced-colors media rule; the page capture is visually unchanged.",
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/contrast-probe.json"
      ],
      "suggestedFix": "Add forced-colors and prefers-contrast styles that preserve boundaries, focus indicators, text and control visibility using system colors where appropriate.",
      "effort": "small"
    },
    {
      "id": "F04",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "implement-natural-interactions",
      "principleCheckId": "view-transitions",
      "guidanceId": "cross-document-transitions",
      "guidanceCategory": "user-experience",
      "severity": "low",
      "confidence": "high",
      "summary": "MPA route changes use abrupt full-page swaps rather than cross-document View Transitions.",
      "evidence": "DOM and CSS inspection across homepage, categories, search and detail templates found no @view-transition rule, view-transition-name or transition opt-in.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/categories-dom.json",
        "evidence/search-dom.json"
      ],
      "suggestedFix": "Progressively enhance same-origin navigation with @view-transition { navigation: auto } and stable view-transition-name values for persistent header and media elements.",
      "effort": "small"
    },
    {
      "id": "F05",
      "pathId": "video",
      "url": "https://www.porn300.com/video/naughty-polish-teen-having-sex-with-a-kinky-girl-and-guy/",
      "principleId": "maximize-content-reduce-noise",
      "principleCheckId": "reduced-chrome",
      "guidanceId": "reduce-style-repetition",
      "guidanceCategory": "css",
      "severity": "medium",
      "confidence": "high",
      "summary": "Advertising and affiliate chrome competes strongly with the primary video content.",
      "evidence": "The video first viewport shows two stacked sidebar ads beside the player, while global navigation presents campaign links such as Live Sex and Sex Today as ordinary destinations; the detail probe counts 34 ad-class/id elements.",
      "artifacts": [
        "evidence/video.png",
        "evidence/video-metadata.json"
      ],
      "suggestedFix": "Reduce first-viewport ad density, reserve one clearly labelled placement, and visually separate commercial destinations from task navigation.",
      "effort": "medium"
    },
    {
      "id": "F06",
      "pathId": "category",
      "url": "https://www.porn300.com/category/british-porn/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "responsive-no-horizontal-scroll",
      "guidanceId": "fluid-scaling",
      "guidanceCategory": "css",
      "severity": "high",
      "confidence": "high",
      "summary": "The category listing overflows a 360 px mobile viewport.",
      "evidence": "The mobile layout primitive reports scrollWidth 447 px against clientWidth 360 px, producing 87 px of horizontal overflow.",
      "artifacts": [
        "evidence/category-mobile-layout.json",
        "evidence/category.png"
      ],
      "suggestedFix": "Remove the fixed/minimum width that expands the layout, use intrinsic minmax/min() sizing, and verify every listing template at 320 to 360 px without overflow.",
      "effort": "small"
    },
    {
      "id": "F07",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "component-level-responsiveness",
      "guidanceId": "size-aware-styling",
      "guidanceCategory": "css",
      "severity": "low",
      "confidence": "high",
      "summary": "Reusable cards and navigation adapt only through viewport media queries.",
      "evidence": "CSS inspection reports zero @container rules even though the same card/navigation patterns appear in different grid and sidebar contexts.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/comprehensive-probe.json"
      ],
      "suggestedFix": "Give reusable card/list containers an inline-size containment context and move local card adaptations to container queries.",
      "effort": "medium"
    },
    {
      "id": "F08",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "adapt-to-the-form-factor",
      "principleCheckId": "input-modality-aware",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Keyboard focus is suppressed and many controls are below recommended touch size.",
      "evidence": "The authored CSS contains :focus{outline:none}; focusing the first link yields outline-style none. Category links and pagination controls are roughly 30 px high, with many pagination targets near 30 by 31 px.",
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/comprehensive-probe.json"
      ],
      "suggestedFix": "Remove the blanket focus reset, add a high-contrast :focus-visible indicator, and enlarge compact controls to at least a 44 by 44 CSS pixel activation area.",
      "effort": "small"
    },
    {
      "id": "F09",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "good-core-web-vitals",
      "guidanceId": "performance",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "medium",
      "summary": "One lab run puts LCP outside the Core Web Vitals good range.",
      "evidence": "Lighthouse measured LCP at 2.8 s, above the 2.5 s good threshold, although the raw trace measured 1.10 s; CLS was 0.018 and TBT 0 ms.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "suggestedFix": "Prioritise the true LCP element, preserve the efficient main thread, and validate the improvement with repeated mobile Lighthouse runs and field data.",
      "effort": "small"
    },
    {
      "id": "F10",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "efficient-resource-delivery",
      "guidanceId": "optimize-script-priority",
      "guidanceCategory": "performance",
      "severity": "low",
      "confidence": "high",
      "summary": "A parser-inserted preload script can delay initial parsing.",
      "evidence": "HAR identifies preload-4eaff90568.min.js as a high-priority parser-inserted candidate; DOM confirmation shows a classic script without async, defer or type=module. Main JS is correctly deferred and the ad script is dynamically async.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Defer the preload helper or inline only the minimal critical portion, then verify that initialization order remains correct.",
      "effort": "small"
    },
    {
      "id": "F11",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-fast-and-stable",
      "principleCheckId": "trim-unused-and-duplicate-code",
      "guidanceId": "identify-heavy-scripts",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "The homepage ships avoidable unused JavaScript and CSS.",
      "evidence": "Lighthouse unused-code audits fail with two JavaScript items and one CSS item; HAR shows scripts account for 133 KB transferred and third parties account for 156 KB overall.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Use coverage results to split template-specific code, remove unused selectors, and load advertising or account code only when its surface is reached.",
      "effort": "medium"
    },
    {
      "id": "F12",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "sufficient-contrast",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "Many text and UI color combinations fail minimum contrast.",
      "evidence": "Lighthouse color-contrast fails with 66 affected nodes on the homepage.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.json",
        "evidence/home-desktop.png"
      ],
      "suggestedFix": "Rework muted text, metadata, chips and controls against their actual backgrounds to meet WCAG AA, then rerun automated and visual checks in all preference modes.",
      "effort": "medium"
    },
    {
      "id": "F13",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-inclusive",
      "principleCheckId": "names-roles-labels",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "medium",
      "confidence": "high",
      "summary": "At least one homepage link has no discernible accessible name.",
      "evidence": "Lighthouse link-name fails with one affected element; the DOM recon also includes multiple empty-text outbound anchors.",
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Give every linked image or advertising destination a meaningful accessible name and remove empty anchors that do not perform a user action.",
      "effort": "small"
    },
    {
      "id": "F14",
      "pathId": "video",
      "url": "https://www.porn300.com/video/naughty-polish-teen-having-sex-with-a-kinky-girl-and-guy/",
      "principleId": "be-inclusive",
      "principleCheckId": "zoom-reflow-targets-and-media",
      "guidanceId": "accessibility",
      "guidanceCategory": "accessibility",
      "severity": "high",
      "confidence": "high",
      "summary": "The representative video exposes no captions or equivalent track.",
      "evidence": "Before and after playback, all inspected video elements have zero track elements; the Video.js captions menu exists but contains only the off/settings entries.",
      "artifacts": [
        "evidence/video-flow.json",
        "evidence/video-metadata.json",
        "evidence/video.png"
      ],
      "suggestedFix": "Provide accurate WebVTT captions for each video and expose the track through the player; add transcripts where captions cannot convey all relevant information.",
      "effort": "large"
    },
    {
      "id": "F15",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "follow-best-practices",
      "principleCheckId": "sound-document-and-assets",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "low",
      "confidence": "high",
      "summary": "One above-the-fold image lacks explicit intrinsic dimensions.",
      "evidence": "The images primitive finds one image without width and height attributes. The page otherwise has a valid HTML doctype, UTF-8 charset and correct sampled image aspect ratios.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-dom.json"
      ],
      "suggestedFix": "Add intrinsic width and height to the logo/source candidate while retaining responsive CSS sizing.",
      "effort": "trivial"
    },
    {
      "id": "F16",
      "pathId": "video",
      "url": "https://www.porn300.com/video/naughty-polish-teen-having-sex-with-a-kinky-girl-and-guy/",
      "principleId": "be-discoverable",
      "principleCheckId": "structured-and-shareable-metadata",
      "guidanceId": "html",
      "guidanceCategory": "html",
      "severity": "medium",
      "confidence": "high",
      "summary": "Video detail pages have Open Graph tags but no VideoObject structured data.",
      "evidence": "The detail probe finds a canonical URL and og:title/og:image, but zero JSON-LD blocks for the visible video entity.",
      "artifacts": [
        "evidence/video-metadata.json"
      ],
      "suggestedFix": "Add schema.org VideoObject JSON-LD matching the visible title, thumbnail, duration, upload date and content URL, while retaining accurate Open Graph metadata.",
      "effort": "small"
    },
    {
      "id": "F17",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "secure-transport-and-headers",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "HTTPS is used, but CSP and HSTS are absent and one cookie is insecure.",
      "evidence": "The headers primitive reports no Content-Security-Policy or Strict-Transport-Security. The stop_redirect cookie is not Secure and uses SameSite=None.",
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "suggestedFix": "Deploy an enforcing nonce/hash-based CSP, enable HSTS after subdomain readiness, and set Secure with an appropriate SameSite value on every HTTPS cookie.",
      "effort": "medium"
    },
    {
      "id": "F18",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "defensive-browser-policies",
      "guidanceId": "security",
      "guidanceCategory": "security",
      "severity": "high",
      "confidence": "high",
      "summary": "The response omits the browser policies that constrain framing, referrers, MIME sniffing and permissions.",
      "evidence": "The headers primitive reports missing X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy and Permissions-Policy in addition to absent CSP/HSTS.",
      "artifacts": [
        "evidence/headers.json"
      ],
      "suggestedFix": "Add nosniff, frame-ancestors (or X-Frame-Options as compatibility defense), strict-origin-when-cross-origin or tighter Referrer-Policy, and a minimal Permissions-Policy.",
      "effort": "small"
    },
    {
      "id": "F19",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-private-and-secure",
      "principleCheckId": "data-minimisation-and-third-parties",
      "guidanceId": "privacy",
      "guidanceCategory": "privacy",
      "severity": "high",
      "confidence": "high",
      "summary": "Third-party advertising and analytics receive a large default-load footprint.",
      "evidence": "HAR records 9 third-party requests and 155,798 transferred bytes, about 44% of the 357,312-byte load. A Matomo request includes the full page URL, detailed user-agent data and screen resolution; tracker recon identifies five third-party origins.",
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "suggestedFix": "Gate non-essential advertising/analytics behind explicit consent where required, minimise event fields, batch analytics, and defer third-party code until it provides direct user value.",
      "effort": "large"
    },
    {
      "id": "F20",
      "pathId": "login",
      "url": "https://user.porn300.com/widget/login",
      "principleId": "be-private-and-secure",
      "principleCheckId": "in-context-permissions-and-modern-auth",
      "guidanceId": "passkeys",
      "guidanceCategory": "security",
      "severity": "medium",
      "confidence": "high",
      "summary": "The account widget offers password-only authentication with no passkey path.",
      "evidence": "The linked login widget contains username and password fields; its rendered source has no PublicKeyCredential or navigator.credentials authentication flow. No permission prompt was observed on page load.",
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json"
      ],
      "suggestedFix": "Add passkey registration and authentication as the preferred path, with password recovery retained as a fallback.",
      "effort": "large"
    },
    {
      "id": "F21",
      "pathId": "login",
      "url": "https://user.porn300.com/widget/login",
      "principleId": "be-internationalised",
      "principleCheckId": "lang-dir-and-logical-properties",
      "guidanceId": "translator",
      "guidanceCategory": "internationalization",
      "severity": "medium",
      "confidence": "high",
      "summary": "Internationalisation foundations are inconsistent across linked surfaces.",
      "evidence": "The main document declares lang=\"en\", but the linked login widget has an empty html lang. CSS inspection of the main page found no logical inline/block properties despite a visible language selector.",
      "artifacts": [
        "evidence/comprehensive-probe.json",
        "evidence/login-probe.json",
        "evidence/login.png"
      ],
      "suggestedFix": "Set the correct lang and dir on every document, propagate locale into the account widget, and migrate directional spacing/positioning to logical properties.",
      "effort": "medium"
    },
    {
      "id": "F22",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-trustworthy",
      "principleCheckId": "no-dark-patterns",
      "guidanceId": "custom-button-actions",
      "guidanceCategory": "user-experience",
      "severity": "high",
      "confidence": "high",
      "summary": "Commercial campaign links are disguised as ordinary primary navigation.",
      "evidence": "Live Sex and Sex Today appear alongside Categories, Pornstars, Tags and Channels, but resolve to bannerator.com campaign URLs; the detail sidebar is labelled Advertisement, showing that the site can distinguish ads when it chooses.",
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/video.png"
      ],
      "suggestedFix": "Label sponsored/affiliate destinations clearly, visually separate them from first-party navigation, and disclose the external destination before activation.",
      "effort": "small"
    },
    {
      "id": "F23",
      "pathId": "login",
      "url": "https://user.porn300.com/widget/login",
      "principleId": "be-trustworthy",
      "principleCheckId": "trustworthy-input-assistance",
      "guidanceId": "autofill-sign-in-form",
      "guidanceCategory": "forms",
      "severity": "medium",
      "confidence": "high",
      "summary": "Sign-in fields omit autocomplete tokens, and search explicitly disables autocomplete.",
      "evidence": "The login probe reports blank autocomplete values for username and password; both homepage search inputs use autocomplete=\"off\".",
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/forms.json"
      ],
      "suggestedFix": "Use autocomplete=\"username\" and autocomplete=\"current-password\" on sign-in fields; avoid disabling autocomplete on search unless there is a demonstrated privacy need.",
      "effort": "trivial"
    },
    {
      "id": "F24",
      "pathId": "home",
      "url": "https://www.porn300.com/",
      "principleId": "be-sustainable",
      "principleCheckId": "optimised-assets",
      "guidanceId": "optimize-image-priority",
      "guidanceCategory": "performance",
      "severity": "medium",
      "confidence": "high",
      "summary": "Thumbnail delivery lacks responsive image candidates and modern formats.",
      "evidence": "The images primitive reports 30 of 31 images without srcset, six legacy-format resources and zero modern-format images. Below-fold thumbnails are lazy-loaded and sampled images are not oversized.",
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "suggestedFix": "Generate AVIF/WebP thumbnail variants and width-based srcset/sizes so each grid density downloads the smallest suitable image.",
      "effort": "medium"
    }
  ],
  "taskList": [
    {
      "id": "T01",
      "title": "Restore keyboard/touch accessibility and color contrast",
      "priority": 1,
      "findingIds": [
        "F08",
        "F12",
        "F13",
        "F14"
      ],
      "guidanceId": "accessibility",
      "status": "open"
    },
    {
      "id": "T02",
      "title": "Deploy a complete security-header and cookie baseline",
      "priority": 2,
      "findingIds": [
        "F17",
        "F18"
      ],
      "guidanceId": "security",
      "status": "open"
    },
    {
      "id": "T03",
      "title": "Minimise and gate third-party advertising and analytics",
      "priority": 3,
      "findingIds": [
        "F19",
        "F05"
      ],
      "guidanceId": "privacy",
      "status": "open"
    },
    {
      "id": "T04",
      "title": "Remove disguised affiliate navigation",
      "priority": 4,
      "findingIds": [
        "F22"
      ],
      "guidanceId": "custom-button-actions",
      "status": "open"
    },
    {
      "id": "T05",
      "title": "Fix the 360 px category overflow and component adaptation",
      "priority": 5,
      "findingIds": [
        "F06",
        "F07"
      ],
      "guidanceId": "fluid-scaling",
      "status": "open"
    },
    {
      "id": "T06",
      "title": "Add responsive modern thumbnail delivery",
      "priority": 6,
      "findingIds": [
        "F24",
        "F15"
      ],
      "guidanceId": "optimize-image-priority",
      "status": "open"
    },
    {
      "id": "T07",
      "title": "Add dark, reduced-motion and increased-contrast preference support",
      "priority": 7,
      "findingIds": [
        "F01",
        "F02",
        "F03"
      ],
      "guidanceId": "dark-mode",
      "status": "open"
    },
    {
      "id": "T08",
      "title": "Improve LCP and remove avoidable load-time code",
      "priority": 8,
      "findingIds": [
        "F09",
        "F10",
        "F11"
      ],
      "guidanceId": "performance",
      "status": "open"
    },
    {
      "id": "T09",
      "title": "Modernise login with passkeys and autofill",
      "priority": 9,
      "findingIds": [
        "F20",
        "F23"
      ],
      "guidanceId": "passkeys",
      "status": "open"
    },
    {
      "id": "T10",
      "title": "Add VideoObject structured data",
      "priority": 10,
      "findingIds": [
        "F16"
      ],
      "guidanceId": "html",
      "status": "open"
    },
    {
      "id": "T11",
      "title": "Fix language and bidirectional layout foundations",
      "priority": 11,
      "findingIds": [
        "F21"
      ],
      "guidanceId": "translator",
      "status": "open"
    },
    {
      "id": "T12",
      "title": "Add progressive cross-document transitions",
      "priority": 12,
      "findingIds": [
        "F04"
      ],
      "guidanceId": "cross-document-transitions",
      "status": "open"
    }
  ],
  "budget": {
    "wallClockSeconds": 900,
    "pathCount": 7,
    "auditPasses": 1
  },
  "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": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The dark-mode screenshot remains on the same #f5f5f5 body surface as the default capture; the computed probe reports colorScheme \"normal\" and body background rgb(245,245,245).",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dark.png",
        "evidence/dark-motion.json"
      ],
      "findingIds": [
        "F01"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-reduced-motion",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Under prefers-reduced-motion: reduce, the blink animation still runs with a 1000 ms duration and the probe finds no reduced-motion media rule.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/reduced-motion.json"
      ],
      "findingIds": [
        "F02"
      ]
    },
    {
      "principleId": "respect-user-preferences",
      "checkId": "respects-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The prefers-contrast: more probe is active but finds no prefers-contrast or forced-colors media rule; the page capture is visually unchanged.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-high-contrast.png",
        "evidence/contrast-probe.json"
      ],
      "findingIds": [
        "F03"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "view-transitions",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "DOM and CSS inspection across homepage, categories, search and detail templates found no @view-transition rule, view-transition-name or transition opt-in.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/categories-dom.json",
        "evidence/search-dom.json"
      ],
      "findingIds": [
        "F04"
      ]
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "scroll-driven-animations",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "The audited templates have no scroll-linked animation or scrollytelling surface, so there is no scroll animation implementation to judge.",
      "reason": "The audited templates have no scroll-linked animation or scrollytelling surface, so there is no scroll animation implementation to judge."
    },
    {
      "principleId": "implement-natural-interactions",
      "checkId": "physical-gestures",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "The MPA catalogue exposes no swipe, pull, carousel or gesture-driven interaction requiring custom physics.",
      "reason": "The MPA catalogue exposes no swipe, pull, carousel or gesture-driven interaction requiring custom physics."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "scroll-state-aware-chrome",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "The rendered templates include a persistent sticky header/search treatment and clear scrollable document structure without a detached floating obstruction.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json"
      ]
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "anchored-positioning",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "No tooltip, popover or floating menu that must anchor near a viewport edge was present on the representative paths.",
      "reason": "No tooltip, popover or floating menu that must anchor near a viewport edge was present on the representative paths."
    },
    {
      "principleId": "provide-guided-navigation",
      "checkId": "directs-attention",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Selected navigation, descriptive page headings, category chips and conventional pagination make destination and next step visible across listing/detail paths.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/categories.png",
        "evidence/category.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "no-intrusive-interruptions",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Load screenshots across homepage, listing, search and detail show no full-viewport interstitial obscuring core content.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/video.png"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "semantic-dismissible-primitives",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "DOM inspection found no custom in-page modal or transient overlay on the representative first-party templates; ordinary navigation and the native media player are used.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/comprehensive-probe.json"
      ]
    },
    {
      "principleId": "maximize-content-reduce-noise",
      "checkId": "reduced-chrome",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The video first viewport shows two stacked sidebar ads beside the player, while global navigation presents campaign links such as Live Sex and Sex Today as ordinary destinations; the detail probe counts 34 ad-class/id elements.",
      "pathIds": [
        "video"
      ],
      "artifacts": [
        "evidence/video.png",
        "evidence/video-metadata.json"
      ],
      "findingIds": [
        "F05"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "responsive-no-horizontal-scroll",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The mobile layout primitive reports scrollWidth 447 px against clientWidth 360 px, producing 87 px of horizontal overflow.",
      "pathIds": [
        "category"
      ],
      "artifacts": [
        "evidence/category-mobile-layout.json",
        "evidence/category.png"
      ],
      "findingIds": [
        "F06"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "component-level-responsiveness",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "CSS inspection reports zero @container rules even though the same card/navigation patterns appear in different grid and sidebar contexts.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/comprehensive-probe.json"
      ],
      "findingIds": [
        "F07"
      ]
    },
    {
      "principleId": "adapt-to-the-form-factor",
      "checkId": "input-modality-aware",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The authored CSS contains :focus{outline:none}; focusing the first link yields outline-style none. Category links and pagination controls are roughly 30 px high, with many pagination targets near 30 by 31 px.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/comprehensive-probe.json"
      ],
      "findingIds": [
        "F08"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-purpose-and-primary-action",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Homepage and detail first viewports clearly present a searchable catalogue and a prominent play action respectively.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/video.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "primary-flow-completion",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Homepage video link opened a detail page and activating the prominent play control started a muted video element (paused=false, currentTime advanced).",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/video-flow.json",
        "evidence/video.png"
      ]
    },
    {
      "principleId": "support-core-task-success",
      "checkId": "clear-system-state-and-recovery",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "The unknown route shows a specific not-found explanation and a direct Return to main page recovery link.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/not-found.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "good-core-web-vitals",
      "status": "issues",
      "confidence": "medium",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Lighthouse measured LCP at 2.8 s, above the 2.5 s good threshold, although the raw trace measured 1.10 s; CLS was 0.018 and TBT 0 ms.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/home-trace-summary.json",
        "evidence/home-mobile-layout.json"
      ],
      "findingIds": [
        "F09"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "visual-stability",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Mobile layout observer measured CLS 0.014 and Lighthouse measured 0.018, both in the good range; thumbnail dimensions reserve most media space.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-mobile-layout.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-main-thread",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Trace and Lighthouse both measured zero long tasks/TBT during load.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "efficient-resource-delivery",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "HAR identifies preload-4eaff90568.min.js as a high-priority parser-inserted candidate; DOM confirmation shows a classic script without async, defer or type=module. Main JS is correctly deferred and the ad script is dynamically async.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F10"
      ]
    },
    {
      "principleId": "be-fast-and-stable",
      "checkId": "trim-unused-and-duplicate-code",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Lighthouse unused-code audits fail with two JavaScript items and one CSS item; HAR shows scripts account for 133 KB transferred and third parties account for 156 KB overall.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F11"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "names-roles-labels",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Lighthouse link-name fails with one affected element; the DOM recon also includes multiple empty-text outbound anchors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F13"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "sufficient-contrast",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Lighthouse color-contrast fails with 66 affected nodes on the homepage.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/lighthouse-details.json",
        "evidence/home-desktop.png"
      ],
      "findingIds": [
        "F12"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "structure-and-focus",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Heading order and landmarks passed Lighthouse and DOM inspection; the focus visibility defect is recorded under input-modality-aware rather than duplicated here.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/comprehensive-probe.json"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "legible-text",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Screenshots show unclipped, consistently aligned headings and card labels across desktop and mobile; the separate contrast failures are recorded explicitly.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-mobile.png"
      ]
    },
    {
      "principleId": "be-inclusive",
      "checkId": "zoom-reflow-targets-and-media",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Before and after playback, all inspected video elements have zero track elements; the Video.js captions menu exists but contains only the off/settings entries.",
      "pathIds": [
        "video"
      ],
      "artifacts": [
        "evidence/video-flow.json",
        "evidence/video-metadata.json",
        "evidence/video.png"
      ],
      "findingIds": [
        "F14"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "no-console-errors",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Lighthouse reported no browser console errors or uncaught exceptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "sound-document-and-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The images primitive finds one image without width and height attributes. The page otherwise has a valid HTML doctype, UTF-8 charset and correct sampled image aspect ratios.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-dom.json"
      ],
      "findingIds": [
        "F15"
      ]
    },
    {
      "principleId": "follow-best-practices",
      "checkId": "browser-platform-hygiene",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Lighthouse best-practices scored 1.00 with no inspector issues or observed prompt-on-load behavior.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "title-and-description",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Homepage, listing, search and detail templates expose descriptive titles; homepage and detail include descriptive meta descriptions.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-dom.json",
        "evidence/video-metadata.json"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "crawlable-and-mobile-friendly",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Lighthouse SEO scored 1.00; anchors use real href values, viewport metadata exists, and robots allows general crawlers.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/lighthouse-home.json",
        "evidence/robots.txt"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "canonical-and-indexing-signals",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Homepage/detail expose canonicals, return successful content, and robots.txt plus sitemap index are consistent; only Amazonbot is intentionally disallowed.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/recon.json",
        "evidence/robots.txt",
        "evidence/sitemap.xml"
      ]
    },
    {
      "principleId": "be-discoverable",
      "checkId": "structured-and-shareable-metadata",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The detail probe finds a canonical URL and og:title/og:image, but zero JSON-LD blocks for the visible video entity.",
      "pathIds": [
        "video"
      ],
      "artifacts": [
        "evidence/video-metadata.json"
      ],
      "findingIds": [
        "F16"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "secure-transport-and-headers",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The headers primitive reports no Content-Security-Policy or Strict-Transport-Security. The stop_redirect cookie is not Secure and uses SameSite=None.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json",
        "evidence/cookies.json"
      ],
      "findingIds": [
        "F17"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "data-minimisation-and-third-parties",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "HAR records 9 third-party requests and 155,798 transferred bytes, about 44% of the 357,312-byte load. A Matomo request includes the full page URL, detailed user-agent data and screen resolution; tracker recon identifies five third-party origins.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home.har",
        "evidence/home-summary.json",
        "evidence/trackers.json"
      ],
      "findingIds": [
        "F19"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "in-context-permissions-and-modern-auth",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The linked login widget contains username and password fields; its rendered source has no PublicKeyCredential or navigator.credentials authentication flow. No permission prompt was observed on page load.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json"
      ],
      "findingIds": [
        "F20"
      ]
    },
    {
      "principleId": "be-private-and-secure",
      "checkId": "defensive-browser-policies",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The headers primitive reports missing X-Content-Type-Options, X-Frame-Options/frame-ancestors, Referrer-Policy and Permissions-Policy in addition to absent CSP/HSTS.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/headers.json"
      ],
      "findingIds": [
        "F18"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "progressive-enhancement",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Discoverability fetched 182,763 bytes of raw server HTML with 100% rendered-word coverage and no JS shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/discoverability.json",
        "evidence/discoverability-rendered.png",
        "evidence/discoverability-crawler.png"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "resilient-runtime-behaviour",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Search, categories, detail/player and account widget rendered usable states; the temporary rate limit recovered and no persistent broken shell remained.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/search.png",
        "evidence/video-flow.json"
      ]
    },
    {
      "principleId": "be-resilient",
      "checkId": "offline-and-installable",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "This is a public server-rendered media catalogue rather than an installable application; offline playback is not a proportionate requirement.",
      "reason": "This is a public server-rendered media catalogue rather than an installable application; offline playback is not a proportionate requirement."
    },
    {
      "principleId": "be-resilient",
      "checkId": "network-and-http-failure-states",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "A representative unknown route renders an explanatory not-found state and a direct recovery link rather than a blank shell.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/not-found.json"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "lang-dir-and-logical-properties",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The main document declares lang=\"en\", but the linked login widget has an empty html lang. CSS inspection of the main page found no logical inline/block properties despite a visible language selector.",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/comprehensive-probe.json",
        "evidence/login-probe.json",
        "evidence/login.png"
      ],
      "findingIds": [
        "F21"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "locale-aware-data",
      "status": "pass",
      "confidence": "medium",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "The English catalogue renders abbreviated view counts and percentages consistently and offers a language selector; no currency/date input was present to expose hand-rolled locale errors.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-internationalised",
      "checkId": "time-zone-correctness",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "Representative content contains no scheduled events, local times or recurring time-zone-sensitive data.",
      "reason": "Representative content contains no scheduled events, local times or recurring time-zone-sensitive data."
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "no-dark-patterns",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "Live Sex and Sex Today appear alongside Categories, Pornstars, Tags and Channels, but resolve to bannerator.com campaign URLs; the detail sidebar is labelled Advertisement, showing that the site can distinguish ads when it chooses.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-desktop.png",
        "evidence/home-dom.json",
        "evidence/video.png"
      ],
      "findingIds": [
        "F22"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "humane-error-handling",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "The required search input uses native required validation, labels are present, and the tested not-found state uses neutral explanatory language plus recovery.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/forms.json",
        "evidence/not-found.json"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "trustworthy-input-assistance",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The login probe reports blank autocomplete values for username and password; both homepage search inputs use autocomplete=\"off\".",
      "pathIds": [
        "login"
      ],
      "artifacts": [
        "evidence/login-probe.json",
        "evidence/forms.json"
      ],
      "findingIds": [
        "F23"
      ]
    },
    {
      "principleId": "be-trustworthy",
      "checkId": "safe-commercial-and-account-flows",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "The login widget clearly identifies login, registration, password recovery, persistence choice, and Cancel and close; no paid subscription or checkout was present.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/login.png",
        "evidence/login-probe.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "optimised-assets",
      "status": "issues",
      "confidence": "high",
      "method": "Active browser evidence and guidance-backed inspection as referenced",
      "evidence": "The images primitive reports 30 of 31 images without srcset, six legacy-format resources and zero modern-format images. Below-fold thumbnails are lazy-loaded and sampled images are not oversized.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/images.json",
        "evidence/home-summary.json"
      ],
      "findingIds": [
        "F24"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "no-wasteful-work",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Trace found zero long tasks and HAR contained only 21 requests; below-fold images are lazy-loaded and ad code uses visibility-triggered loading.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-trace-summary.json",
        "evidence/home-summary.json"
      ]
    },
    {
      "principleId": "be-sustainable",
      "checkId": "third-party-and-media-budget",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "The default homepage transfers 357 KB with no autoplay media; third-party privacy concerns are recorded separately, but total transfer and idle work remain proportionate for a media listing.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/home-summary.json",
        "evidence/home-desktop.png"
      ]
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "structured-agent-capabilities",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "No agent-facing transaction or productivity capability is intended; ordinary crawlable content does not require WebMCP tools.",
      "reason": "No agent-facing transaction or productivity capability is intended; ordinary crawlable content does not require WebMCP tools."
    },
    {
      "principleId": "be-agent-ready",
      "checkId": "on-device-inference",
      "status": "not-applicable",
      "confidence": "high",
      "method": "Applicability judgement after route and interaction recon",
      "evidence": "No summarisation, generation or language-model task is part of the observed core experience.",
      "reason": "No summarisation, generation or language-model task is part of the observed core experience."
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-leak-under-repeated-interaction",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "After ten full-page scroll cycles, heap self-size rose only 34,563 bytes (0.44%) and node count by 338 (0.27%), consistent with bounded lazy-load state rather than unbounded growth.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "bounded-footprint",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Baseline heap self-size is 7,778,953 bytes with 124,755 V8 snapshot nodes, proportionate for a 902-element media catalogue.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/comprehensive-probe.json"
      ]
    },
    {
      "principleId": "be-memory-efficient",
      "checkId": "no-detached-dom-or-unbounded-listeners",
      "status": "pass",
      "confidence": "high",
      "method": "Screenshots, DOM, Lighthouse and/or active CDP probe as referenced",
      "evidence": "Before/after summaries show no Detached* constructor among top retained constructors and only minimal growth after repeated scrolling.",
      "pathIds": [
        "home"
      ],
      "artifacts": [
        "evidence/heap-baseline.json",
        "evidence/heap-post-scroll.json"
      ]
    }
  ],
  "agent": "pi",
  "runId": "2026-07-25T21-21-48-483Z"
}
