Manifest position 840 · CrUX rank bucket 1000

https://nl.xhamster.com

Coverage complete

Coverage-complete model-led audit of six representative paths; account-only, payment, playback-after-verification, and destructive account actions were not exercised.

Attempts
1 / 3
Judged checks
58 / 58
Blocked
0
Not run
0
This report has no published overall score. Blocked and not-run checks are not passes. A coverage-complete report means every check has a judged outcome; it does not mean every check passed.

All 58 atomic check outcomes

Principle / checkStatusConfidenceEvidence or reason
respect-user-preferences
respects-color-scheme
passhighLight and dark emulation changed foreground colors (48,48,48 vs 245,245,245), and CSS included a color-scheme preference signal.
respect-user-preferences
respects-reduced-motion
issueshighUnder prefers-reduced-motion: reduce, eight 2-second animations remained running; CSS inspection found no prefers-reduced-motion rule.
F01 medium: Reduced-motion preference is ignored.
respect-user-preferences
respects-contrast
issueshighCSS inspection found no prefers-contrast or forced-colors handling. Lighthouse measured ratios as low as 1.75:1 on the age banner and 3.29:1 on view counts.
F02 high: High-contrast users receive low-contrast text and no contrast-specific adaptation.
implement-natural-interactions
view-transitions
issueshighRendered CSS contained no view-transition declarations and representative routes are full-document navigations with abrupt swaps.
F03 low: Route changes have no continuity transition.
implement-natural-interactions
scroll-driven-animations
passhighCSS/animation inspection found no scroll-linked decorative motion, so no main-thread scroll animation anti-pattern was active on sampled pages.
implement-natural-interactions
physical-gestures
passhighSampled flows use native scrolling and links; no custom swipe/pointer gesture surface that fights platform behavior was observed.
provide-guided-navigation
scroll-state-aware-chrome
issueshighAt scrollY 1200 the 84px age-verification bar remained sticky at top; CSS had no scroll-state query or scroll progress treatment.
F04 low: Sticky chrome does not adapt as content scrolls.
provide-guided-navigation
anchored-positioning
issueshighThe page exposes multiple header/dropdown controls, while CSS inspection found no anchor-name, position-anchor, or position-try rules.
F05 low: Menus and transient controls do not use resilient anchor positioning.
provide-guided-navigation
directs-attention
passhighActive navigation is underlined, category tabs expose current state, and the 404 route provides a clear return-to-home link.
maximize-content-reduce-noise
no-intrusive-interruptions
passhighThe required consent modal presents equal Accept/Reject actions; an active rejection probe confirmed it dismisses fully and restores page hit-testing.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighThe visible modal blocks the page, but DOM inspection found 0 dialog, 0 popover, and 0 details elements.
F06 medium: The consent modal and menu overlays are custom rather than semantic primitives.
maximize-content-reduce-noise
reduced-chrome
issueshighDesktop screenshots show two navigation rows, a persistent verification banner, a 190px sidebar, consent UI, and promotional cards surrounding the video grid/player.
F07 medium: Dense chrome and promotions crowd the primary content.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
issueshighLayout measurements on both home and video pages reported scrollWidth 1024, visual viewport 360, and 664px horizontal overflow. The mobile screenshot shows clipped navigation and cards.
F08 critical: The mobile layout renders a 1024px desktop canvas inside a 360px viewport.
adapt-to-the-form-factor
component-level-responsiveness
issueshighCSS inspection found no @container rules, while the same sidebar/card layout remains desktop-sized and clipped in the 360px condition.
F09 high: Reused content components do not adapt to their available container.
adapt-to-the-form-factor
input-modality-aware
issueshighProgrammatically focusing the first visible link produced outline-style none and no box shadow. Lighthouse also found 20px-high targets and insufficient spacing.
F10 high: Keyboard focus is invisible and some touch targets are undersized.
support-core-task-success
clear-purpose-and-primary-action
passhighHomepage/category/detail pages expose descriptive H1s, clear media cards, search, and direct primary actions in the first viewport.
support-core-task-success
primary-flow-completion
passhighHomepage links lead to a representative detail route; category browsing, sign-up method selection, and 404 recovery remained navigable.
support-core-task-success
clear-system-state-and-recovery
passhighThe unknown route presents a localized not-found explanation, contact/return action, and alternative content rather than a blank shell.
be-fast-and-stable
good-core-web-vitals
issueshighLighthouse measured LCP 3.9s and FCP 3.0s (performance 0.83); the separate trace measured LCP 1.98s, showing condition-sensitive performance.
F11 high: Mobile largest-contentful paint misses the good threshold.
be-fast-and-stable
visual-stability
passhighLayout observer measured CLS 0 on home and video samples; Lighthouse also reported CLS 0.
be-fast-and-stable
efficient-main-thread
issueshighThe trace recorded 2 long tasks, a longest task of 188.28ms, and 151.79ms total blocking time.
F12 medium: Startup JavaScript creates blocking main-thread work.
be-fast-and-stable
efficient-resource-delivery
issueshighHAR recorded 144 requests, 62 scripts, 11 stylesheets, 1.77MB transferred, and multiple parser-inserted VeryHigh-priority stylesheets; Lighthouse LCP was 3.9s.
F13 high: The startup dependency graph is request-heavy and delays rendering.
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighLighthouse found 26,972 wasted JS bytes in assetsLoader and 94.9%/89.7% waste in two mobile stylesheets; HAR recorded 62 scripts.
F14 medium: Substantial unused CSS and JavaScript ship on mobile.
be-inclusive
names-roles-labels
issueshighLighthouse failed button-name and label-content-name-mismatch, including an unnamed filter button and video links whose accessible name omits visible duration text.
F15 high: Some interactive controls lack or mismatch accessible names.
be-inclusive
sufficient-contrast
issueshighLighthouse reported 1.75:1 age-banner secondary text, 2.15:1 banner primary text, and 3.29:1 view counts against their backgrounds.
F16 high: Text and essential UI fail WCAG contrast.
be-inclusive
structure-and-focus
issueshighThe focused GB link had no visible outline. Lighthouse found a ul with direct div, complementary, and role=button children instead of li elements.
F17 high: Focus and list semantics do not provide a reliable keyboard/AT structure.
be-inclusive
legible-text
passhighDesktop content uses readable sizing and clear hierarchy, with headings and labels remaining legible outside the separately reported contrast/reflow failures.
be-inclusive
zoom-reflow-targets-and-media
issueshighLighthouse found user-scalable=no in the effective mobile viewport and undersized targets; 360px layout evidence recorded 664px horizontal overflow.
F18 critical: Zoom/reflow is restricted and mobile content does not reflow.
follow-best-practices
no-console-errors
passhighLighthouse errors-in-console audit passed with no logged browser errors.
follow-best-practices
sound-document-and-assets
issueshighThe image audit found 29 of 36 images missing dimensions and 12 oversized relative to display size, despite valid doctype/charset and correct sampled aspect ratios.
F19 medium: Image markup does not reserve or consistently right-size media.
follow-best-practices
browser-platform-hygiene
passhighLighthouse passed deprecations, BFCache, valid source maps and prompt-related best-practice audits; no permission prompt appeared on load.
be-discoverable
title-and-description
passhighHomepage and video detail expose unique descriptive titles and localized meta descriptions.
be-discoverable
crawlable-and-mobile-friendly
passhighLinks have real href values, a viewport meta exists, and robots.txt permits the homepage and primary public routes.
be-discoverable
canonical-and-indexing-signals
issueshighThe page had a canonical URL and robots.txt allowed core pages, but exposed no hreflang links across its many language hosts; /sitemap.xml returned 404.
F20 medium: Localized indexing signals are incomplete.
be-discoverable
structured-and-shareable-metadata
issueshighThe representative detail page had useful Open Graph metadata but no JSON-LD VideoObject; og:image:type declared image/jpeg for a .webp URL.
F21 low: Video pages omit structured entity data.
be-private-and-secure
secure-transport-and-headers
issueshighCSP is only frame-ancestors self, offering no script/style XSS policy. The settings and x_csrf_token cookies were not Secure; settings also used SameSite=None.
F22 high: Transport is HTTPS, but CSP and cookie protection are incomplete.
be-private-and-secure
data-minimisation-and-third-parties
issueshighHAR attributed 117 of 144 requests and 1.66MB of 1.77MB to non-main origins; tracker enumeration found 14 third-party origins, including Google, tsydndicate and collector endpoints.
F23 high: The initial page makes a very broad cross-origin request set.
be-private-and-secure
in-context-permissions-and-modern-auth
issueshighNo permission prompt appeared on load, but the sign-up surface offered Google, X and email/password only; no passkey text or WebAuthn flow was exposed.
F24 medium: Authentication offers federated/email methods but no phishing-resistant passkey path.
be-private-and-secure
defensive-browser-policies
issueshighHeaders lacked X-Content-Type-Options and Referrer-Policy. Permissions-Policy only set two client-hint directives and the CSP had no broader XSS controls.
F25 medium: Several browser-enforced defenses are absent or too narrow.
be-resilient
progressive-enhancement
passhighDiscoverability fetch found 88% raw/rendered content overlap, no empty app mount, and a usable crawler screenshot.
be-resilient
resilient-runtime-behaviour
passhighConsent rejection fully removed the fixed overlay, representative menus/content rendered, and recovery routes remained usable.
be-resilient
offline-and-installable
passhighA manifest is linked, an active pwa.js service worker is registered, and xh-offline-cache-1.6.5 exists.
be-resilient
network-and-http-failure-states
passhighA real unknown URL returns a localized 404 state with explanation, home recovery and alternatives.
be-internationalised
lang-dir-and-logical-properties
issueshighhtml lang was correctly nl, but inspected CSS contained about 695 physical left/right declarations versus 26 logical inline/block declarations.
F26 medium: Localized markup relies heavily on physical CSS directions.
be-internationalised
locale-aware-data
issueshighThe Dutch page renders values such as 8.7M and 600.5K; Dutch formatting convention uses comma decimals and locale-aware compact notation.
F27 medium: Abbreviated counts are not formatted for the Dutch locale.
be-internationalised
time-zone-correctness
not-applicablehighSampled public pages expose durations and relative counts but no dates, appointments, recurring events, or user-entered time-zone data to judge.
be-trustworthy
no-dark-patterns
passhighConsent Accept and Reject have equal prominence, privacy explanations are linked, and sign-up disclosure states public/partner data use.
be-trustworthy
humane-error-handling
issueshighEmpty submission displayed Dutch required/password messages, but inputs had no aria-invalid and no role=alert/live-region messages were found.
F28 medium: Sign-up errors are visible but not programmatically announced.
be-trustworthy
trustworthy-input-assistance
issueshighThe email input used autocomplete=off while the password correctly used new-password; required semantics were not exposed on either field.
F29 medium: The sign-up email field disables useful autofill.
be-trustworthy
safe-commercial-and-account-flows
passhighThe sampled sign-up flow labels free registration, exposes login alternatives, states age verification and data-use terms before commitment.
be-sustainable
optimised-assets
issueshighImage inspection found 12 oversized images, 29 missing dimensions, 8 below-fold images not lazy, and 16 legacy-format detections.
F30 medium: Thumbnail delivery wastes image bytes and omits layout reservations.
be-sustainable
no-wasteful-work
issueshighThe page loaded 62 scripts totaling about 1.01MB and the trace recorded 151.79ms blocking time, while Lighthouse identified large unused CSS/JS portions.
F31 medium: Startup does disproportionate script work for a content listing.
be-sustainable
third-party-and-media-budget
issueshighNon-main origins accounted for 1.66MB and 117 requests; scripts alone transferred 1.01MB before a video was played.
F32 medium: Cross-origin scripts and media dominate the transfer budget.
be-agent-ready
structured-agent-capabilities
not-applicablehighNo declared agent-facing transaction or productivity capability was identified; this emerging check is not required for the sampled adult media publication surface.
be-agent-ready
on-device-inference
not-applicablehighNo summarisation, composition, or inference task is part of the sampled core journeys, so on-device inference is not applicable.
be-memory-efficient
no-leak-under-repeated-interaction
passmediumAfter ten bottom/top scroll cycles, heap self size increased about 3.2MB (8.9%), consistent with lazy-loaded feed content rather than demonstrated unbounded growth; no Detached constructor dominated.
be-memory-efficient
bounded-footprint
issueshighBaseline heap summary contained 678,439 nodes and 36.1MB self size; after repeated scrolling it reached 743,136 nodes and 39.3MB.
F33 medium: The initial heap footprint is large for a listing before playback.
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passmediumBaseline/post heap summaries showed no Detached constructor among dominant populations; no evidence of accumulating detached DOM was observed.

Provenance

Canonical report: results/atomic/reports/0840-nl_xhamster_com.json
Report SHA-256: 257322a9e190fb37c6c577ac35f4d671040ef13714e685dc740c939ae89b81f0
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/nl_xhamster_com/2026-07-23T08-45-22-987Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/nl_xhamster_com/2026-07-23T08-45-22-987Z
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.