Manifest position 338 · CrUX rank bucket 1000
https://xham.live
Coverage complete
Atomic coverage complete across 58/58 checks; dynamic model availability and content may vary by visit.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The dark-mode screenshot is visually identical to the default light page; the DOM reports color-scheme: normal and the stylesheet probe found no prefers-color-scheme rule. F01 medium: The interface ignores the user’s dark-color preference. |
respect-user-preferencesrespects-reduced-motion | issues | high | The normal and prefers-reduced-motion probes both report two 250 ms animations, and the stylesheet probe found no reduced-motion media query. F02 low: Non-essential animation is not reduced when requested. |
respect-user-preferencesrespects-contrast | issues | high | The stylesheet probe found no prefers-contrast or forced-colors rule; the contrast-conditioned screenshot remains unchanged, while Lighthouse identifies foreground/background failures as low as 2.55:1. F03 medium: The page does not adapt to increased-contrast preferences. |
implement-natural-interactionsview-transitions | issues | high | The CSS/source probe found no view-transition declarations on this multi-page browsing experience. F04 low: Route changes do not use view transitions. |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No parallax, scrollytelling, reveal or other scroll-linked animation was observed on the representative pages, so there is no scroll animation implementation to assess. |
implement-natural-interactionsphysical-gestures | pass | high | Mobile listing interaction uses native scrolling; no custom pointermove gesture implementation or platform-fighting overscroll was observed. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The long listing keeps fixed header/banner chrome, and CSS inspection found no scroll-state or scroll-progress implementation. F05 low: Persistent chrome does not react to scroll position. |
provide-guided-navigationanchored-positioning | issues | high | The site exposes header/menu overlays, but the CSS probe found no anchor-name, position-anchor or fallback-position rules. F06 low: Menus and transient controls lack anchor-positioning support. |
provide-guided-navigationdirects-attention | pass | high | Active category tabs are underlined, section headings label each content group, and the 404 view presents a clear return action. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | The 360×800 screenshot shows a 116 px age banner plus a fixed cookie panel covering the lower model cards on first load. F07 medium: Stacked age and cookie prompts obscure primary content on mobile. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The initial screenshot shows a fixed consent panel with Manage and Accept All but no direct dismiss/reject action; the DOM probe found popover=0. F08 low: The cookie prompt behaves as custom fixed chrome rather than a clearly dismissible semantic primitive. |
maximize-content-reduce-noisereduced-chrome | issues | high | Before the first complete content row, the mobile view spends 212 px on two nav rows and age verification, while the cookie panel overlays another 115 px. F09 medium: Navigation and notices consume a large share of the first mobile viewport. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | At 360×800 the layout primitive measured scrollWidth=clientWidth=360 with zero horizontal overflow and a viewport meta tag; the screenshot shows a usable two-column listing. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | Desktop and mobile screenshots show adaptation, but CSS inspection found no @container declarations despite cards/nav components appearing in differently sized contexts. F10 low: Responsive changes rely on viewport layouts rather than component-level adaptation. |
adapt-to-the-form-factorinput-modality-aware | issues | high | A programmatic focus walk found outline-style:none and box-shadow:none on the sampled navigation links; 123 of 160 rendered controls were also under 44 px in one dimension. F11 high: Keyboard focus is not visibly indicated on many interactive elements. |
support-core-task-successclear-purpose-and-primary-action | pass | high | The first viewport clearly presents live webcam categories, named listing sections and direct model cards, plus an explicit age-verification action where required. |
support-core-task-successprimary-flow-completion | pass | high | The browse path reaches a category and live detail directly; signup presents social, passwordless and account-creation routes with visible terms and a bot check rather than an unexplained dead end. |
support-core-task-successclear-system-state-and-recovery | pass | high | The detail clearly explains the age-locked state and action, and a nonexistent route returns a legible 404 with Go to Main Page and featured alternatives. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 4.0 s, CLS 0.125 and TBT 650 ms; the independent trace measured LCP 4.46 s and 318 ms total blocking time. F12 high: Loading performance misses the good Core Web Vitals range. |
be-fast-and-stablevisual-stability | issues | high | The mobile layout observer measured CLS 0.1277, including a single 0.1276 shift at 3.7 s; all 36 audited images lacked width/height attributes. F13 medium: Late content causes visible layout shift. |
be-fast-and-stableefficient-main-thread | issues | high | Lighthouse measured 650 ms TBT; the trace found four long tasks up to 172.6 ms, and the layout observer recorded 143 ms and 100 ms tasks. F14 high: JavaScript blocks the main thread during startup. |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR captured 163 requests and 2.57 MB transferred, including 463 KB of fonts and 1.35 MB of scripts; two VeryHigh stylesheets load before first content. F15 medium: The critical load is large and dependency-heavy. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimates 1,148 KiB unused JavaScript and 124 KiB unused CSS; the largest bootstrap script transfers 724,642 bytes. F16 high: The page ships substantial unused code. |
be-inclusivenames-roles-labels | issues | high | Lighthouse failed link-name for model-card anchors. Signup/login probes found username, email and password fields with no label or aria-label. F17 high: Important links and account inputs lack accessible names or labels. |
be-inclusivesufficient-contrast | issues | high | Lighthouse found multiple failures, including Join Free at 2.58:1, age-banner copy at 2.55:1 and the 18+ highlight at 2.74:1. F18 high: Text and controls fail WCAG contrast minimums. |
be-inclusivestructure-and-focus | issues | high | The focus probe reported no outline and no box shadow for the sampled focused links, preventing keyboard users from tracking position. F19 high: Focus visibility is missing across navigation. |
be-inclusivelegible-text | pass | high | Desktop and mobile screenshots show stable, unclipped headings and compact but readable listing labels; no text overlap was observed. |
be-inclusivezoom-reflow-targets-and-media | pass | high | The viewport allows scaling, the 360 px layout reflows without horizontal overflow, and Lighthouse target-size passed; the live video is visual user-generated media rather than prerecorded dialogue. |
follow-best-practicesno-console-errors | pass | high | Lighthouse reports “No browser errors logged to the console” with score 1 and zero items. |
follow-best-practicessound-document-and-assets | issues | high | The images primitive found width and height missing on all 36 images, even though the document otherwise has a valid HTML doctype and UTF-8 charset. F20 medium: Images omit intrinsic dimensions. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse found three deprecated API warnings, inspector issues, a BFCache blocker and third-party-cookie use. F21 medium: The runtime has platform hygiene failures. |
be-discoverabletitle-and-description | pass | high | Home, detail, signup and login probes all expose descriptive titles; the audited public pages include meta descriptions. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | The discoverability primitive received HTTP 403, measured 5% raw/rendered word coverage, and classified the response as a JS shell; title, H1 and description were absent from raw HTML. Lighthouse also failed crawlable-anchors. F22 high: Non-JavaScript crawlers receive almost none of the listing content. |
be-discoverablecanonical-and-indexing-signals | issues | high | The page at xham.live declares https://xhamsterlive.com/ canonical, while /sitemap.xml returns 404; robots.txt otherwise allows the public paths. F23 medium: Indexing signals are inconsistent for the audited host. |
be-discoverablestructured-and-shareable-metadata | issues | high | The metadata probe found an Open Graph title/description but an empty og:image value; one JSON-LD block is present. F24 low: Share metadata has no preview image. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS and HSTS are present, but CSP and X-Content-Type-Options are missing; the cookie audit reports 25 cookies without Secure, including long-lived experiment cookies. F25 high: Security headers and cookie flags are incomplete. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The HAR attributes 148 of 163 requests and 2.43 of 2.57 MB to third-party origins; the DOM loads FingerprintJS and the tracker probe sees eight third-party origins. F26 high: The initial page has a broad third-party and fingerprinting footprint. |
be-private-and-securein-context-permissions-and-modern-auth | pass | high | No permission prompt appeared on load. Login offers Google/xHamster federation and “Continue without Password” in addition to password login, so authentication is not password-only. |
be-private-and-securedefensive-browser-policies | issues | high | Headers inspection found no CSP, frame-ancestors/X-Frame-Options, Referrer-Policy, Permissions-Policy or nosniff; only HSTS was present. F27 high: Browser-enforced defensive policies are mostly absent. |
be-resilientprogressive-enhancement | issues | high | The raw/crawler response is a 403 JS shell with only 5% content coverage, while the browser-rendered page contains the listings and headings. F28 high: Core public content does not progressively enhance from usable HTML. |
be-resilientresilient-runtime-behaviour | pass | high | Menus, listings, detail state and account panels rendered without clipped active overlays or blank runtime states in desktop and mobile captures. |
be-resilientoffline-and-installable | pass | medium | The app supplies a valid standalone manifest with 192/512 icons and has an active scoped service worker registration. Offline response content was not deeply exercised, so confidence is medium. |
be-resilientnetwork-and-http-failure-states | pass | high | A representative invalid route renders a dedicated 404 explanation, a primary recovery link and alternative content instead of a broken shell. |
be-internationalisedlang-dir-and-logical-properties | pass | high | The document declares lang=en and resolves to ltr; 34 hreflang variants and an in-page language control demonstrate translated variants for the current surface. |
be-internationalisedlocale-aware-data | not-applicable | high | The representative public surfaces expose no dates, currencies, durations or calendar values requiring locale-sensitive formatting; live counts are simple dimensionless values. |
be-internationalisedtime-zone-correctness | not-applicable | high | No event scheduling, timestamps or recurring time concepts appear in the representative public surfaces. |
be-trustworthyno-dark-patterns | issues | high | Every captured page shows a green Accept All button and a lower-emphasis Manage action, but no Reject All control at the same level. F29 high: Consent presents Accept All prominently without an equivalent Reject action. |
be-trustworthyhumane-error-handling | pass | high | The observed account forms use a visible Cloudflare verification state and do not display premature blame/error text before interaction; native/custom validation can proceed at submit. |
be-trustworthytrustworthy-input-assistance | issues | high | Signup has username/email inputs without labels and with autocomplete off/empty; login username and password fields have empty autocomplete tokens. F30 medium: Account fields do not expose useful autofill semantics. |
be-trustworthysafe-commercial-and-account-flows | pass | high | Signup and login state account creation clearly, show terms/privacy copy, provide password recovery and passwordless/federated alternatives, and do not expose an unexpected purchase step. |
be-sustainableoptimised-assets | issues | high | Of 36 images, 36 lack intrinsic dimensions, 22 lack srcset, 13 are more than 2× display width, 15 below-fold images are not lazy and 15 use legacy formats. F31 medium: Listing images are not delivered responsively. |
be-sustainableno-wasteful-work | issues | high | The page transfers 1.35 MB of script and Lighthouse estimates 1,148 KiB is unused, alongside 46 XHR/fetch requests in the initial HAR. F32 high: Unused scripts and startup work consume unnecessary resources. |
be-sustainablethird-party-and-media-budget | issues | high | Third parties account for 148 requests and 2.43 MB, or about 95% of transferred bytes; 2.12 MB comes from assets.chapturist.com alone. F33 high: Third-party code dominates the page budget. |
be-agent-readystructured-agent-capabilities | not-applicable | high | This public browsing site does not declare an agent-facing capability or intent; emerging WebMCP exposure is therefore treated as out of scope, not a failure. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation, language-model or inference task is part of the observed core journey, so on-device inference is not applicable. |
be-memory-efficientno-leak-under-repeated-interaction | issues | low | A prewarmed full-scroll heap was 61.2 MB/1.27M nodes; after 10 down/up cycles it was 73.2 MB/1.58M nodes, about 19.5% more bytes and 24.7% more nodes. Separate browser runs and intentional caches lower confidence. F34 medium: Repeated full-list scrolling retains a materially larger heap. |
be-memory-efficientbounded-footprint | pass | high | The settled homepage used about 52 MB JS heap by performance.memory and a 53.6 MB heap snapshot. This is substantial but proportionate to a live, media-rich, multi-card application and below an obvious device-risk threshold. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | low | Neither heap summary’s top constructors contained Detached* nodes, EventListener or Timer populations. This is a low-confidence pass because constructor summaries are not retaining-path analysis. |
Provenance
Canonical report: results/atomic/reports/0338-xham_live.json
Report SHA-256: ca4e50294e76237e462a305652658c3a533a9d5871faa524176d263ce6573e78
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/xham_live/2026-07-20T01-36-06-560Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/xham_live/2026-07-20T01-36-06-560Z
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.