Manifest position 860 · CrUX rank bucket 1000
https://fra.xhamster.com
Coverage complete
Coverage-complete audit of six representative public paths. Excluded authenticated account history, upload completion, payment completion and post-age-verification playback because they require identity, payment or regulated age-verification data.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The rendered DOM always has the class dark; the light-preference probe reports colorScheme normal, while dark and default screenshots are visually identical. F01 medium: Theme is fixed rather than following the system color preference. |
respect-user-preferencesrespects-reduced-motion | issues | high | Under prefers-reduced-motion: reduce, eight animations remain running with 2000 ms durations and the loaded CSS exposes no reduced-motion rule. F02 medium: Animations continue when reduced motion is requested. |
respect-user-preferencesrespects-contrast | pass | high | Forced-colors screenshot keeps navigation, controls, labels and consent actions visible with system colors. |
implement-natural-interactionsview-transitions | issues | medium | The live CSS probe found no view-transition rules or API styling across the MPA navigation surfaces. F03 low: Route and state changes do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No parallax, scrollytelling, entry reveal or other scroll-linked animation was present on the representative routes, so there is no scroll-linked implementation to assess. |
implement-natural-interactionsphysical-gestures | pass | high | The tested listing uses native document scrolling and real anchors; no custom pointer-driven gesture layer was present. |
provide-guided-navigationscroll-state-aware-chrome | issues | medium | The CSS probe found no scroll timeline or scroll-state implementation; the dense two-row header remains the dominant navigation treatment. F04 low: Navigation chrome does not react to scroll position. |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip, transient popover or edge-positioned menu was opened or present on the representative paths, so anchor positioning is not applicable to the observed surfaces. |
provide-guided-navigationdirects-attention | pass | high | Active navigation is underlined, pages expose descriptive H1 headings, and the 404 provides a direct return-home cue. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Desktop screenshots for home, categories, search and video detail show the same large centered cookie overlay covering the core content. Refuse is available but content is blocked until a choice. F05 medium: A consent modal obscures the primary content on every tested content route. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | DOM and screenshot evidence show a custom overlay; the landmark probe does not expose a dialog role or dialog element for the blocking surface. F06 medium: The blocking consent surface is implemented as custom generic containers rather than a semantic dialog. |
maximize-content-reduce-noisereduced-chrome | issues | high | The first viewport contains two global navigation rows, a full-width age banner, a permanent category sidebar and a blocking consent modal before the video grid. F07 medium: Persistent chrome crowds the content. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | Layout evidence reports scrollWidth 1024 versus visualViewportWidth 360, with 664 px overflow. The mobile screenshot shows clipped header, sidebar and cards. F08 critical: The desktop layout is forced into a 360 px viewport. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The CSS probe found no @container rules while the same sidebar and card layout remains desktop-sized in the narrow capture. F09 medium: Reusable content and navigation components do not adapt at container level. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe shows focused buttons with outline none and zero width; Lighthouse fails target-size, and the live probe found 30 of the first 200 visible targets below 24 px. F10 high: Keyboard focus and target sizing are inadequate. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Homepage, category, search and detail screenshots expose descriptive headings and obvious browse/play/account actions. |
support-core-task-successprimary-flow-completion | issues | high | The signup screenshot shows only the card frame and headings, with the registration choices absent from the visible card although body text contains them. A user cannot identify or complete the next signup step. F11 critical: The signup journey renders an apparently empty form card. |
support-core-task-successclear-system-state-and-recovery | pass | high | The exercised unknown URL renders a localized Page introuvable state with a Retour à la page d’accueil recovery link. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse reports LCP 2.6 s; the good Core Web Vitals threshold is 2.5 s. CLS is 0 and TBT is 0 ms in that run. F12 medium: Mobile LCP is just outside the good threshold. |
be-fast-and-stablevisual-stability | pass | high | Layout and Lighthouse both measured CLS 0 with no observed layout shifts. |
be-fast-and-stableefficient-main-thread | pass | high | Trace measured two long tasks, 112.48 ms total blocking, and Lighthouse measured 0 ms TBT; no sustained blocking was observed. |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR records 143 requests, 61 scripts and 1,766,838 transferred bytes. One index script is 400,248 bytes and several parser-inserted styles are VeryHigh priority. F13 medium: The initial page uses a large and fragmented dependency set. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimates 56 KiB unused CSS, including sheets 89 to 95 percent unused, and 26 KiB unused JavaScript. F14 medium: Unused CSS and JavaScript are shipped on the initial route. |
be-inclusivenames-roles-labels | issues | high | Lighthouse fails button-name and label-content-name-mismatch. It identifies an unnamed 40 by 24 button and thumbnail links whose visible duration is not included in the accessible name. F15 high: Controls and media links have incorrect or missing accessible names. |
be-inclusivesufficient-contrast | issues | high | Lighthouse reports age-banner contrast ratios of 2.15:1 and 1.75:1 where 4.5:1 is required, plus links distinguishable only by low-contrast color. F16 high: Important banner text fails WCAG contrast. |
be-inclusivestructure-and-focus | issues | high | The focus probe repeatedly reports outline none. Lighthouse also reports a ul with direct div, complementary and button-role children rather than list items. F17 high: Focus visibility and list semantics are broken. |
be-inclusivelegible-text | pass | high | Across desktop captures, headings and card text are consistently sized and readable when not obscured by the consent surface. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Lighthouse detects user-scalable=no in the effective viewport and fails target-size. The 360 px layout has 664 px overflow. F18 high: Zoom, reflow and touch target support fail. |
follow-best-practicesno-console-errors | pass | high | Lighthouse errors-in-console audit passed and reported no failing console entries. |
follow-best-practicessound-document-and-assets | issues | high | The images primitive reports 29 of 36 images without width/height and 13 oversized images; eight below-fold images are not lazy-loaded. F19 medium: Many image elements lack stable dimensions or are oversized. |
follow-best-practicesbrowser-platform-hygiene | pass | high | Lighthouse best-practices scored 1.0 with no console, deprecation, vulnerable-library or prompt-on-load failure recorded. |
be-discoverabletitle-and-description | pass | high | All five representative DOM captures have descriptive, route-specific titles and meta descriptions. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | Real href links and viewport metadata are present, and discoverability found 88 percent raw-HTML content coverage with title and H1 preserved. |
be-discoverablecanonical-and-indexing-signals | issues | high | The French document has a canonical URL but the head probe found zero hreflang links despite the navigation exposing more than 40 language hosts. F20 medium: Localized pages omit hreflang relationships. |
be-discoverablestructured-and-shareable-metadata | issues | medium | The homepage head probe found no JSON-LD and no Open Graph tags. The representative video detail is a rich VideoObject candidate with descriptive visible metadata. F21 medium: Rich media pages omit structured and social metadata. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS and HSTS are present, but CSP is only frame-ancestors self, X-Content-Type-Options and response Referrer-Policy are missing, and two first-party cookies lack Secure; settings also uses SameSite=None. F22 high: Security headers and cookie attributes are incomplete. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The tracker probe sees 15 third-party origins including Google Tag Manager. HAR attributes 116 of 143 requests and 1,654,762 of 1,766,838 bytes to origins classified as third party. F23 high: The initial load has a broad third-party and tracking footprint. |
be-private-and-securein-context-permissions-and-modern-auth | issues | medium | The signup surface advertises Google, X and email account entry, but recon and DOM evidence expose no passkey or WebAuthn route. No permission prompt fired on load. F24 medium: Account entry does not expose phishing-resistant authentication. |
be-private-and-securedefensive-browser-policies | issues | high | The CSP only restricts framing, Permissions-Policy grants client-hint features broadly, Referrer-Policy is absent at response level, and the document requests unsafe-url in markup. F25 high: Browser-enforced privacy and XSS defenses are too narrow. |
be-resilientprogressive-enhancement | pass | high | Discoverability measured 88 percent rendered-word coverage in raw HTML, no empty mount and preserved title, H1 and description. |
be-resilientresilient-runtime-behaviour | pass | high | Tested overlays remained centered and visible on all desktop templates, and direct route loads stabilized without blank content except the separately reported signup card. |
be-resilientoffline-and-installable | not-applicable | high | This streaming media service is intrinsically online for its primary playback task. A manifest, active service-worker controller and install surface exist, but offline playback is not a reasonable core requirement. |
be-resilientnetwork-and-http-failure-states | pass | high | The representative missing route renders a useful localized 404 message, support direction and return-home action rather than a broken shell. |
be-internationalisedlang-dir-and-logical-properties | pass | high | All representative DOMs declare lang=fr; the language menu exposes many localized hosts, and the CSS probe found logical properties in use. |
be-internationalisedlocale-aware-data | issues | high | Visible French content renders values such as 803.9K vues and 2.6M vues instead of locale-aware decimal separators and compact units. F26 medium: French numeric content uses English-style compact formatting. |
be-internationalisedtime-zone-correctness | not-applicable | high | No event scheduling, local date/time display, recurring interval or time-zone-sensitive transaction appeared on the representative public routes. |
be-trustworthyno-dark-patterns | pass | high | Consent presents Accept and Refuse as equally prominent adjacent actions and explains each outcome without confirmshaming. |
be-trustworthyhumane-error-handling | issues | high | The registration card appears empty in the screenshot, but the page provides no inline error, retry action or status message explaining why signup controls are unavailable. F27 high: The signup failure state provides no visible explanation or recovery. |
be-trustworthytrustworthy-input-assistance | pass | high | The visible search input has a descriptive aria-label and explicit search action; no paste prevention or obstructive input behavior was observed. |
be-trustworthysafe-commercial-and-account-flows | issues | medium | The video detail places Rejoignez maintenant and Obtenir la vidéo entière calls to action prominently, while the first viewport shows no price or commitment detail. F28 medium: Premium upsells do not show commitment or pricing in context. |
be-sustainableoptimised-assets | issues | high | The images primitive reports 13 oversized images, 16 legacy-format detections and 29 missing intrinsic dimensions among 36 images. F29 medium: Media delivery wastes image bytes. |
be-sustainableno-wasteful-work | issues | high | The HAR records 143 requests and 61 scripts before user interaction, including identity, tracking and recommendation dependencies; 26 KiB JS and 56 KiB CSS are estimated unused. F30 medium: The initial route performs disproportionate script and network work. |
be-sustainablethird-party-and-media-budget | issues | high | HAR classifies 1,654,762 of 1,766,838 transferred bytes as third party, about 94 percent, across 116 requests. F31 high: Third-party resources dominate the transfer budget. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No declared agent-facing intent or transactional agent surface was found. For this emerging contextual check, absence of WebMCP tools is treated as not applicable rather than a failure. |
be-agent-readyon-device-inference | not-applicable | high | No summarization, generation or inference feature was offered on the tested routes, so built-in on-device AI has no observed task to perform. |
be-memory-efficientno-leak-under-repeated-interaction | issues | medium | After ten bottom/top scroll cycles, the heap summary rises from 36,474,321 to 39,913,095 self bytes and from 682,502 to 749,243 nodes. Separate fresh sessions make this a medium-confidence leak signal, not a proven trace. F32 medium: Repeated feed scrolling increases retained heap and graph size. |
be-memory-efficientbounded-footprint | issues | medium | The baseline heap summary contains 682,502 nodes, 3,204,478 edges and 36,474,321 self bytes before playback. F33 medium: The initial heap and object graph are large for a listing page. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | low | Neither compact heap summary reports a Detached constructor among its retained top constructors; this is direct but low-confidence summary-level evidence. |
Provenance
Canonical report: results/atomic/reports/0860-fra_xhamster_com.json
Report SHA-256: a87fe60980c1b6b6b22de0fef7ec1b611009ff7cb52c8fdc207fb823d2568546
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/fra_xhamster_com/2026-07-23T11-46-32-537Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/fra_xhamster_com/2026-07-23T11-46-32-537Z
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.