Manifest position 681 · CrUX rank bucket 1000
https://nl.pornhub.com
Coverage complete
Coverage-complete atomic audit of the mandatory first-visit gate plus representative listing, category, video-detail and failure routes. Listing/category content remained gated or redirected in fresh sessions; DOM and metadata beneath the gate were still inspected.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | Normal and prefers-color-scheme:dark captures are identical, computed color-scheme is normal, and DOM/CSS inspection found no prefers-color-scheme rule. F08 low: The UI is hard-coded dark rather than participating in the user color-scheme preference. |
respect-user-preferencesrespects-reduced-motion | pass | high | Reduced-motion emulation showed no active animations; getAnimations() returned an empty list on the first-visit surface. |
respect-user-preferencesrespects-contrast | pass | high | The forced-colors/prefers-contrast screenshot preserved legible text, visible borders and both age actions. |
implement-natural-interactionsview-transitions | issues | medium | The platform/CSS probe found no View Transition rules, scroll timelines or scroll-state/container behavior. Clicking the age action navigated the inspected target; route changes have no transition or attention cue in the captured first-visit flow. F09 low: Route/state changes and navigation cues use abrupt legacy behavior rather than declarative transitions. |
implement-natural-interactionsscroll-driven-animations | issues | medium | The platform/CSS probe found no View Transition rules, scroll timelines or scroll-state/container behavior. Clicking the age action navigated the inspected target; route changes have no transition or attention cue in the captured first-visit flow. F09 low: Route/state changes and navigation cues use abrupt legacy behavior rather than declarative transitions. |
implement-natural-interactionsphysical-gestures | pass | high | Observed first-visit interactions use native buttons, links and scrolling; no custom pointer-driven gesture surface was present. |
provide-guided-navigationscroll-state-aware-chrome | issues | medium | The platform/CSS probe found no View Transition rules, scroll timelines or scroll-state/container behavior. Clicking the age action navigated the inspected target; route changes have no transition or attention cue in the captured first-visit flow. F09 low: Route/state changes and navigation cues use abrupt legacy behavior rather than declarative transitions. |
provide-guided-navigationanchored-positioning | issues | high | The desktop screenshot shows the mandatory age gate while DOM evidence also exposes a full cookie overlay. The platform probe found one role=dialog but zero dialog, popover or details elements; cookie controls are assembled with custom div/button scripting. F07 medium: Two custom full-screen interruptions are stacked on first visit and the age modal is not a native dialog. |
provide-guided-navigationdirects-attention | issues | medium | The platform/CSS probe found no View Transition rules, scroll timelines or scroll-state/container behavior. Clicking the age action navigated the inspected target; route changes have no transition or attention cue in the captured first-visit flow. F09 low: Route/state changes and navigation cues use abrupt legacy behavior rather than declarative transitions. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | The desktop screenshot shows the mandatory age gate while DOM evidence also exposes a full cookie overlay. The platform probe found one role=dialog but zero dialog, popover or details elements; cookie controls are assembled with custom div/button scripting. F07 medium: Two custom full-screen interruptions are stacked on first visit and the age modal is not a native dialog. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The desktop screenshot shows the mandatory age gate while DOM evidence also exposes a full cookie overlay. The platform probe found one role=dialog but zero dialog, popover or details elements; cookie controls are assembled with custom div/button scripting. F07 medium: Two custom full-screen interruptions are stacked on first visit and the age modal is not a native dialog. |
maximize-content-reduce-noisereduced-chrome | pass | high | The mandatory age gate itself is visually focused with a single bordered panel and clear legal content. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | The 360x800 screenshot shows the logo, heading, legal text, second age choice and footer cut off to the right. Layout metrics report no document overflow only because html/body are fixed to the viewport, so the clipped fixed-width panel cannot be reached by horizontal scrolling. F01 high: The mandatory age gate is fixed at desktop width and clipped on a 360px viewport. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The CSS/platform probes found no @container use; DOM computed styles show fixed 780px html/body sizing while the 360px screenshot clips the gate. F10 medium: Reusable surfaces rely on global media queries and fixed dimensions rather than container-aware adaptation. |
adapt-to-the-form-factorinput-modality-aware | issues | high | Lighthouse failed button-name, frame-title, label-content-name-mismatch and meta-viewport. The platform probe found no main/nav landmarks, no h1 on the entry page, three unnamed controls and no visible outline on the first focused link. The video detail exposed no caption tracks. F03 high: Accessible names, structure, focus, scaling and media alternatives are incomplete. |
support-core-task-successclear-purpose-and-primary-action | pass | high | The first viewport clearly states that this is an adults-only site and labels the continue and exit choices. |
support-core-task-successprimary-flow-completion | pass | high | The desktop gate presents both required age choices; activating the adult action triggered navigation, confirming the flow is wired, although CDP lost the old target. |
support-core-task-successclear-system-state-and-recovery | pass | high | The gate explains the blocked state and offers continue, exit, parental-control, legal and terms links. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 13.1s and CLS 0.626 (performance 0.43). HAR captured 170 requests and 5,408,745 transferred bytes; Lighthouse reports 178 KiB unused JS and 74 KiB unused CSS. F02 high: First-visit loading is slow and visually unstable. |
be-fast-and-stablevisual-stability | issues | high | Lighthouse measured LCP 13.1s and CLS 0.626 (performance 0.43). HAR captured 170 requests and 5,408,745 transferred bytes; Lighthouse reports 178 KiB unused JS and 74 KiB unused CSS. F02 high: First-visit loading is slow and visually unstable. |
be-fast-and-stableefficient-main-thread | pass | high | The trace recorded zero long tasks and 0ms total blocking time; Lighthouse TBT was 40ms. |
be-fast-and-stableefficient-resource-delivery | issues | high | Lighthouse measured LCP 13.1s and CLS 0.626 (performance 0.43). HAR captured 170 requests and 5,408,745 transferred bytes; Lighthouse reports 178 KiB unused JS and 74 KiB unused CSS. F02 high: First-visit loading is slow and visually unstable. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse measured LCP 13.1s and CLS 0.626 (performance 0.43). HAR captured 170 requests and 5,408,745 transferred bytes; Lighthouse reports 178 KiB unused JS and 74 KiB unused CSS. F02 high: First-visit loading is slow and visually unstable. |
be-inclusivenames-roles-labels | issues | high | Lighthouse failed button-name, frame-title, label-content-name-mismatch and meta-viewport. The platform probe found no main/nav landmarks, no h1 on the entry page, three unnamed controls and no visible outline on the first focused link. The video detail exposed no caption tracks. F03 high: Accessible names, structure, focus, scaling and media alternatives are incomplete. |
be-inclusivesufficient-contrast | pass | high | Forced-colors capture preserved high-contrast text and control outlines; Lighthouse did not flag color contrast. |
be-inclusivestructure-and-focus | issues | high | Lighthouse failed button-name, frame-title, label-content-name-mismatch and meta-viewport. The platform probe found no main/nav landmarks, no h1 on the entry page, three unnamed controls and no visible outline on the first focused link. The video detail exposed no caption tracks. F03 high: Accessible names, structure, focus, scaling and media alternatives are incomplete. |
be-inclusivelegible-text | issues | high | The 360x800 screenshot shows the logo, heading, legal text, second age choice and footer cut off to the right. Layout metrics report no document overflow only because html/body are fixed to the viewport, so the clipped fixed-width panel cannot be reached by horizontal scrolling. F01 high: The mandatory age gate is fixed at desktop width and clipped on a 360px viewport. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Lighthouse failed button-name, frame-title, label-content-name-mismatch and meta-viewport. The platform probe found no main/nav landmarks, no h1 on the entry page, three unnamed controls and no visible outline on the first focused link. The video detail exposed no caption tracks. F03 high: Accessible names, structure, focus, scaling and media alternatives are incomplete. |
follow-best-practicesno-console-errors | issues | high | Lighthouse recorded a SyntaxError, a null addEventListener TypeError, two deprecated API warnings and four BFCache failure reasons including an unload handler. F11 medium: The page emits runtime errors, deprecated API warnings and blocks BFCache. |
follow-best-practicessound-document-and-assets | issues | high | HAR transferred 5.4MB before content access, including 2.03MB third party. Image evidence found 33 of 37 images without srcset, 24 legacy-format images, three without dimensions and two below-fold images not lazy-loaded. F12 high: The first-visit resource and media budget is disproportionate to an age-gate view. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse recorded a SyntaxError, a null addEventListener TypeError, two deprecated API warnings and four BFCache failure reasons including an unload handler. F11 medium: The page emits runtime errors, deprecated API warnings and blocks BFCache. |
be-discoverabletitle-and-description | issues | high | The page has no meta description and declares noindex,nofollow; /robots.txt redirects to HTML (Lighthouse reports 4,069 parse errors), /sitemap.xml returns 404, multiple links use javascript:void(0), and discoverability coverage is 30%. The representative detail page has no JSON-LD or Open Graph metadata and canonicalizes to the homepage. F06 high: Public pages provide contradictory or missing indexing and sharing signals. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | The page has no meta description and declares noindex,nofollow; /robots.txt redirects to HTML (Lighthouse reports 4,069 parse errors), /sitemap.xml returns 404, multiple links use javascript:void(0), and discoverability coverage is 30%. The representative detail page has no JSON-LD or Open Graph metadata and canonicalizes to the homepage. F06 high: Public pages provide contradictory or missing indexing and sharing signals. F01 high: The mandatory age gate is fixed at desktop width and clipped on a 360px viewport. |
be-discoverablecanonical-and-indexing-signals | issues | high | The page has no meta description and declares noindex,nofollow; /robots.txt redirects to HTML (Lighthouse reports 4,069 parse errors), /sitemap.xml returns 404, multiple links use javascript:void(0), and discoverability coverage is 30%. The representative detail page has no JSON-LD or Open Graph metadata and canonicalizes to the homepage. F06 high: Public pages provide contradictory or missing indexing and sharing signals. |
be-discoverablestructured-and-shareable-metadata | issues | high | The page has no meta description and declares noindex,nofollow; /robots.txt redirects to HTML (Lighthouse reports 4,069 parse errors), /sitemap.xml returns 404, multiple links use javascript:void(0), and discoverability coverage is 30%. The representative detail page has no JSON-LD or Open Graph metadata and canonicalizes to the homepage. F06 high: Public pages provide contradictory or missing indexing and sharing signals. |
be-private-and-securesecure-transport-and-headers | issues | high | The headers primitive found no CSP, X-Content-Type-Options, Referrer-Policy or Permissions-Policy. Cookie evidence found the first-party rp cookie lacking Secure and seven cookies using SameSite=None; HSTS and X-Frame-Options were present. F04 high: Important browser-enforced security policies are missing and one cookie is not Secure. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | Tracker evidence observed 12 third-party origins including Google Tag Manager and DoubleClick. HAR attributed 99 requests and 2,032,739 bytes to third parties, including 31 requests and 976,157 bytes to trafficjunky. F05 high: A first visit contacts a broad advertising and tracking footprint before the user reaches content. |
be-private-and-securein-context-permissions-and-modern-auth | not-applicable | high | No permission prompt fired on load, and authentication was not part of the unauthenticated representative flow, so passkey/password posture was not applicable to this path. |
be-private-and-securedefensive-browser-policies | issues | high | The headers primitive found no CSP, X-Content-Type-Options, Referrer-Policy or Permissions-Policy. Cookie evidence found the first-party rp cookie lacking Secure and seven cookies using SameSite=None; HSTS and X-Frame-Options were present. F04 high: Important browser-enforced security policies are missing and one cookie is not Secure. |
be-resilientprogressive-enhancement | issues | high | The page has no meta description and declares noindex,nofollow; /robots.txt redirects to HTML (Lighthouse reports 4,069 parse errors), /sitemap.xml returns 404, multiple links use javascript:void(0), and discoverability coverage is 30%. The representative detail page has no JSON-LD or Open Graph metadata and canonicalizes to the homepage. F06 high: Public pages provide contradictory or missing indexing and sharing signals. |
be-resilientresilient-runtime-behaviour | issues | high | The 360x800 screenshot shows the logo, heading, legal text, second age choice and footer cut off to the right. Layout metrics report no document overflow only because html/body are fixed to the viewport, so the clipped fixed-width panel cannot be reached by horizontal scrolling. F01 high: The mandatory age gate is fixed at desktop width and clipped on a 360px viewport. F07 medium: Two custom full-screen interruptions are stacked on first visit and the age modal is not a native dialog. |
be-resilientoffline-and-installable | not-applicable | high | This streaming/media service is intrinsically network-dependent; an offline/installable experience was judged out of scope, while progressive enhancement and failure states were evaluated separately. |
be-resilientnetwork-and-http-failure-states | issues | high | A request to a deliberately nonexistent route followed redirects and ended at https://nl.pornhub.com/ with HTTP 200 and homepage HTML. /robots.txt follows the same behavior. F14 medium: Unknown routes silently return the homepage with HTTP 200 instead of a recoverable not-found state. |
be-internationalisedlang-dir-and-logical-properties | issues | high | html lang is nl, but the first-visit cookie controls are English (Accept All Cookies, Accept Only Essential Cookies, Customize Cookies), several visible content titles remain English, and no dir attribute is present. F13 medium: The Dutch locale mixes substantial untranslated English UI and content. |
be-internationalisedlocale-aware-data | not-applicable | high | No dates, currencies, numbers or durations requiring locale formatting appeared in the exercised first-visit surfaces. |
be-internationalisedtime-zone-correctness | not-applicable | high | No scheduled events or stored time concepts appeared in the exercised surfaces. |
be-trustworthyno-dark-patterns | pass | high | Consent offers Accept All, Essential Only and Customize as peer buttons, and the age gate provides clear continue and exit choices without confirmshaming. |
be-trustworthyhumane-error-handling | not-applicable | high | The exercised public first-visit surfaces contained search but no validation/submit error workflow to judge. |
be-trustworthytrustworthy-input-assistance | issues | high | The listing/home probe found a text input named search with no associated label and autocomplete=off; Lighthouse also found accessible-name mismatches. F15 medium: The primary search field is unlabeled and explicitly disables autocomplete. |
be-trustworthysafe-commercial-and-account-flows | not-applicable | high | No checkout, subscription or authenticated account-management flow was entered in the unauthenticated audit. |
be-sustainableoptimised-assets | issues | high | HAR transferred 5.4MB before content access, including 2.03MB third party. Image evidence found 33 of 37 images without srcset, 24 legacy-format images, three without dimensions and two below-fold images not lazy-loaded. F12 high: The first-visit resource and media budget is disproportionate to an age-gate view. |
be-sustainableno-wasteful-work | issues | high | HAR transferred 5.4MB before content access, including 2.03MB third party. Image evidence found 33 of 37 images without srcset, 24 legacy-format images, three without dimensions and two below-fold images not lazy-loaded. F12 high: The first-visit resource and media budget is disproportionate to an age-gate view. |
be-sustainablethird-party-and-media-budget | issues | high | HAR transferred 5.4MB before content access, including 2.03MB third party. Image evidence found 33 of 37 images without srcset, 24 legacy-format images, three without dimensions and two below-fold images not lazy-loaded. F12 high: The first-visit resource and media budget is disproportionate to an age-gate view. F05 high: A first visit contacts a broad advertising and tracking footprint before the user reaches content. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No declared agent-facing intent or safe transactional agent surface was present; this emerging contextual opportunity was judged out of scope. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation or language-model task was part of the first-visit/site-navigation experience; on-device inference was not applicable. |
be-memory-efficientno-leak-under-repeated-interaction | pass | medium | After ten open/back cookie-customisation interactions, heap self size rose only 1.48MB (about 4%) and no Detached constructor appeared; this single-window result showed no unbounded-retention signal. |
be-memory-efficientbounded-footprint | pass | high | Baseline heap self size was 37.27MB and post-interaction 38.75MB, proportionate to the media listing and not near the browser heap limit. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Neither heap summary reported Detached constructors, and closure growth was small (50,355 to 50,560) after ten panel interactions. |
Provenance
Canonical report: results/atomic/reports/0681-nl_pornhub_com.json
Report SHA-256: 8212186afcf324f46875a0743b754c72bcd95c34e02acb9b05ffbff68ebd631e
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/nl_pornhub_com/2026-07-22T09-17-39-083Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/nl_pornhub_com/2026-07-22T09-17-39-083Z
Catalog SHA-256: sha256:78ccfdb2d483f4c57d9dafed80fd86c6265585a56457c8dcfddc254b80fb44d7
Raw screenshots, HARs, traces, heaps, and other browser artifacts are retained at the local evidence root and intentionally are not committed. Artifact paths in the canonical report are relative to that root.