Manifest position 337 · CrUX rank bucket 1000
https://xhamster.com
Coverage complete
Coverage-complete representative-template audit; no source changes requested.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | pass | high | Light and dark emulation produced deliberately retinted light and dark themes with readable content. |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion evaluate probe found eight running 2,000 ms placeholder animations and zero accessible prefers-reduced-motion rules while the emulated preference was active. F01 medium: Loading placeholders continue animating when reduced motion is requested. |
respect-user-preferencesrespects-contrast | pass | medium | Under prefers-contrast: more, controls and text remained visible; the capture showed no disappearing essential affordances. |
implement-natural-interactionsview-transitions | issues | high | DOM snapshots identify a multi-page site with ordinary links, while route screenshots show independent full loads and no view-transition declaration was present in the rendered document. F02 low: Navigation uses abrupt full-document swaps without a declared cross-document transition. |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No parallax, scrollytelling, or scroll-linked animation was present on the audited listing, detail, search, signup, or error templates. |
implement-natural-interactionsphysical-gestures | not-applicable | high | The audited core paths use links, buttons, search, and native scrolling; no swipe, pull, carousel, or gesture-driven control was present. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The categories DOM computed nav as position: sticky with a fixed 40 px height; mobile and desktop captures show the same large two-row header regardless of content depth. F03 low: Persistent navigation is sticky but does not adapt to scroll position. |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip, transient popover, or edge-positioned menu was encountered in the representative paths. |
provide-guided-navigationdirects-attention | pass | high | Active navigation uses a clear red underline/highlight, the newest page highlights its selected destination, and the 404 state exposes a Return to Home action. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Desktop, detail, search, signup, and 404 screenshots show a large centered consent panel covering the page before interaction; on the default viewport it occupies most of the usable content area. F04 medium: The cookie prompt obscures the primary content on every fresh page load. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The screenshot shows modal behavior, but the recon probe found no dialog element and no element with role=dialog; keyboard and assistive-technology modal semantics therefore are not inherent. F05 medium: The blocking consent UI is not exposed as a dialog. |
maximize-content-reduce-noisereduced-chrome | issues | high | The desktop and mobile screenshots devote substantial first-viewport area to two navigation rows, a bright age-verification banner, a promotion strip, a permanent category rail, and the consent overlay. F06 medium: Navigation, promotion bars, side rails and consent chrome crowd the content. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | The mobile layout primitive measured scrollWidth 1,024 px against a 360 px visual viewport, 664 px of horizontal overflow; the screenshot shows the sidebar consuming most of the screen and clipped content. F07 high: The desktop layout is forced into a 360 px mobile viewport. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | At 360 px the same 1,024 px desktop body, permanent sidebar, and content grid remain, demonstrating that reused layout components do not adapt to their available container. F07 high: The desktop layout is forced into a 360 px mobile viewport. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe focused the first visible link and computed outline: none and box-shadow: none; it also counted 53 visible targets under 24 px in at least one dimension. Lighthouse separately failed target-size. F08 high: Keyboard focus is invisible and many targets are undersized. |
support-core-task-successclear-purpose-and-primary-action | pass | high | The first viewport clearly identifies a media catalogue, exposes search and category navigation, and presents recognizable content cards. |
support-core-task-successprimary-flow-completion | pass | medium | A listing route, category index, individual detail route, search request, and signup entry route all loaded without a dead end. |
support-core-task-successclear-system-state-and-recovery | pass | high | An invalid URL produced a clear Page not found state with explanatory copy, a Return to Home action, and alternative content. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured FCP 10.3 s, LCP 10.6 s and Speed Index 12.5 s (performance score 0.55); the first-party trace also measured LCP 3.58 s, above the 2.5 s good threshold. F09 high: Largest Contentful Paint is slow under a throttled mobile audit. |
be-fast-and-stablevisual-stability | pass | high | The layout observer recorded CLS 0 with no shifts, and Lighthouse independently reported CLS 0. |
be-fast-and-stableefficient-main-thread | pass | medium | The trace recorded two long tasks, 101 ms total blocking time and a 139 ms longest task; Lighthouse measured 0 ms TBT under its run. |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR recorded 154 requests and 1,959,472 transferred bytes, including 65 scripts totaling 1,167,373 bytes and three parser-inserted VeryHigh-priority stylesheets. Lighthouse estimated 26 KiB unused JS and 57 KiB unused CSS. F10 medium: The entry page ships a large, script-dominated request graph. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimated 26 KiB unused JavaScript and 57 KiB unused CSS while the HAR recorded 65 script requests and 1.17 MB of script transfer. F10 medium: The entry page ships a large, script-dominated request graph. |
be-inclusivenames-roles-labels | issues | high | Lighthouse accessibility scored 0.72 and found two unnamed buttons, two unnamed links, and nine visible-label/accessibility-name mismatches. F11 high: Interactive controls have missing or mismatched accessible names. |
be-inclusivesufficient-contrast | issues | high | Lighthouse found 13 contrast failures, including age-verification copy at 2.15:1 and 1.75:1 and video metadata at 3.29:1, below the required 4.5:1 for normal text. F12 high: Important text does not meet minimum color contrast. |
be-inclusivestructure-and-focus | issues | high | Lighthouse found invalid list structure and the keyboard probe computed no outline or box shadow on the first focused interactive element. F08 high: Keyboard focus is invisible and many targets are undersized. |
be-inclusivelegible-text | issues | high | Lighthouse found 13 low-contrast text instances and the narrow capture shows clipped, cramped content beside a fixed sidebar. F12 high: Important text does not meet minimum color contrast. F07 high: The desktop layout is forced into a 360 px mobile viewport. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Lighthouse failed meta-viewport because the served mobile metadata includes user-scalable=no; the independent 360 px layout test also found 664 px horizontal overflow. F13 high: The mobile viewport disables user scaling and the page does not reflow. |
follow-best-practicesno-console-errors | pass | high | Lighthouse errors-in-console scored 1 with no collected console error items. |
follow-best-practicessound-document-and-assets | pass | high | Rendered DOM has an HTML doctype, UTF-8 charset and viewport metadata; Lighthouse passed image aspect ratio and responsive image sizing. |
follow-best-practicesbrowser-platform-hygiene | pass | medium | Lighthouse best-practices scored 1.0 and no permission prompt appeared on load across fresh sessions. |
be-discoverabletitle-and-description | pass | high | Home, category and detail DOM snapshots contain unique descriptive titles; home and detail expose descriptive meta descriptions. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | Lighthouse SEO scored 1.0, crawlable anchors and robots passed, and DOM snapshots contain viewport metadata and real href links. |
be-discoverablecanonical-and-indexing-signals | pass | high | Home and detail expose canonical links, robots.txt is reachable and permits public catalogue paths, and both discoverability fetches returned HTTP 200. |
be-discoverablestructured-and-shareable-metadata | pass | medium | The detail DOM contains accurate Open Graph and Twitter title, description, image, URL and video-type metadata matching visible content. |
be-private-and-securesecure-transport-and-headers | issues | high | The headers primitive found no CSP, HSTS, nosniff, clickjacking, Referrer-Policy, or Permissions-Policy headers. The cookies primitive found three cookies without Secure, including two SameSite=None cookies. F14 high: Security headers are absent and three first-party cookies lack Secure. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The tracker primitive observed 13 third-party origins among 17 total and an active Google Tag Manager request; the HAR recorded 154 requests before any consent choice. F15 medium: The initial load contacts a broad third-party surface before consent. |
be-private-and-securein-context-permissions-and-modern-auth | pass | medium | No permission prompt appeared on load; the signup surface offers federated/email choices and rendered markup includes passkey/WebAuthn capability text. |
be-private-and-securedefensive-browser-policies | issues | high | The header probe found no HSTS, clickjacking defense, Referrer-Policy, Permissions-Policy or CSP frame-ancestors policy. F14 high: Security headers are absent and three first-party cookies lack Secure. |
be-resilientprogressive-enhancement | pass | high | Raw HTML retained 89% of home content and 100% of category content; neither route was a JS shell and both retained title, H1 and description without JavaScript. |
be-resilientresilient-runtime-behaviour | pass | medium | Listing, category, detail, search, signup and error routes rendered stable content; the consent overlay remained contained within the desktop viewport. |
be-resilientoffline-and-installable | pass | medium | The page links a complete web app manifest and a live service-worker registration at /pwa.js; continuous video delivery is intrinsically online, so the installability evidence is judged proportionally. |
be-resilientnetwork-and-http-failure-states | pass | high | A deliberately invalid route returned a branded 404 with useful explanation, Return to Home recovery and alternative content rather than a blank shell. |
be-internationalisedlang-dir-and-logical-properties | pass | medium | All sampled templates declare lang=en, use implicit LTR direction, and expose a prominent language selector; text and controls remained ordered correctly. |
be-internationalisedlocale-aware-data | not-applicable | high | The audited catalogue, search, signup and detail states did not expose dates, currency, numeric input, durations requiring localization, or calendar selection as user-entered locale-sensitive data. |
be-internationalisedtime-zone-correctness | not-applicable | high | No scheduled events, user-entered times, recurring intervals, or time-zone-sensitive primary flow was present on the audited paths. |
be-trustworthyno-dark-patterns | pass | high | The consent surface gives Accept and Reject equal visual prominence and links privacy/cookie policies; the signup surface clearly labels its choices. |
be-trustworthyhumane-error-handling | pass | medium | The only directly exercised error state was an invalid route, which used neutral explanatory language and provided immediate recovery rather than blame. |
be-trustworthytrustworthy-input-assistance | pass | medium | The search input has a descriptive placeholder and accessible label; the signup entry offers explicit sign-up methods rather than forcing hidden data entry. |
be-trustworthysafe-commercial-and-account-flows | pass | medium | The sampled account entry clearly offers social and email sign-up methods, while consent is reversible through a Manage cookies link and equal Reject action. |
be-sustainableoptimised-assets | issues | high | The images primitive found 29 of 36 images without dimensions, 13 oversized images, 16 legacy-format resources, eight below-fold images not lazy-loaded, and three images without responsive sources. F16 medium: Image delivery wastes bytes and omits layout dimensions. |
be-sustainableno-wasteful-work | issues | high | The initial idle load issued 154 requests, including 65 scripts and known-tracker traffic, before the user selected a consent choice. F10 medium: The entry page ships a large, script-dominated request graph. F15 medium: The initial load contacts a broad third-party surface before consent. |
be-sustainablethird-party-and-media-budget | issues | high | The initial catalogue transferred 1.96 MB and contacted 13 third-party origins; one uncached third-party image alone transferred 94 KB. F15 medium: The initial load contacts a broad third-party surface before consent. F16 medium: Image delivery wastes bytes and omits layout dimensions. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No developer intent to expose agent-executable account, publishing, or commerce capabilities was available, and this emerging capability is not required for a public media catalogue. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation, generation, translation, or other inference task is part of the representative media-browsing and account-entry journeys. |
be-memory-efficientno-leak-under-repeated-interaction | pass | medium | After ten top-to-bottom scroll cycles, heap self-size was 42.08 MB versus a 40.59 MB baseline (+3.68%) and nodes were +3.15%; no Detached constructor appeared in either summary. The bounded increase is consistent with loaded feed content, not unbounded retention. |
be-memory-efficientbounded-footprint | pass | medium | Heap summaries measured 40.59 MB baseline and 42.08 MB after repeated feed scrolling, proportionate to a media-rich catalogue with hundreds of interactive elements. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | medium | Neither heap summary contained a Detached constructor and repeated scrolling did not produce disproportionate node growth; nodes increased 3.15% after loading additional feed states. |
Provenance
Canonical report: results/atomic/reports/0337-xhamster_com.json
Report SHA-256: a96881f920d62057412bde65dac6f1aa6fce9311fb9640ee63cfa0274c360840
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/xhamster_com/2026-07-20T01-16-51-227Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/xhamster_com/2026-07-20T01-16-51-227Z
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.