Manifest position 147 · CrUX rank bucket 1000
https://xhchannel.com
Coverage complete
Coverage complete across 58 registered checks and four representative page archetypes.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | pass | high | Dark preference applied an extensive dark token set and the dark screenshot remained usable. |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion evaluate probe reported eight running animations, each with a 2000 ms duration and infinite iterations, while prefers-reduced-motion: reduce matched; loaded CSS contained no reduced-motion media query. F01 medium: Animations continue when reduced motion is requested. |
respect-user-preferencesrespects-contrast | pass | high | Forced-colors/high-contrast screenshot retained visible controls, text, boundaries, and choice actions. |
implement-natural-interactionsview-transitions | issues | high | The CSS/platform probe found no view-transition rules or names; navigation is conventional multi-page replacement. F02 low: Page and state changes do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No scroll-linked motion or scrollytelling surface was observed on the representative routes. |
implement-natural-interactionsphysical-gestures | not-applicable | high | No swipe, pull, carousel gesture, or comparable physical gesture surface was present in the representative paths. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | Desktop and long category screenshots show fixed, space-heavy navigation; the CSS probe found no scroll-state container queries or scroll-timeline support. F03 low: Persistent chrome does not react to scroll state. |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip or edge-positioned transient menu requiring anchored positioning was observed in the exercised paths. |
provide-guided-navigationdirects-attention | pass | high | Real href navigation, labelled sections, a single H1, and explicit age-gate action preserve orientation across home, category, detail, and signup. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Homepage, categories, detail, and signup screenshots all open with a 525x380 centered consent surface covering the core viewport, before interaction. F04 medium: A large consent modal obscures the primary content on every fresh visit. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The platform probe found zero dialog, popover, or details elements; signup uses a DIV with role=dialog and aria-modal=true. F05 medium: Modal UI is built from generic divs rather than the native dialog primitive. |
maximize-content-reduce-noisereduced-chrome | pass | high | After consent, the primary catalogue and video information remain the dominant content, with consistent navigation and card hierarchy. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | At viewport 360x800, layout measured scrollWidth 1024 versus clientWidth 360 and 664 px horizontal overflow; the screenshot shows a cropped desktop sidebar and content grid. F06 high: The desktop layout is forced into a 360 px mobile viewport. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The CSS probe found no @container or container-type rules, and the 360 px capture retained the 1024 px desktop composition. F07 medium: Components rely on a desktop-sized global layout rather than adapting to their container. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe programmatically focused Search, Login, Get started, the promo action, and an icon button; computed outline was none/0 px and no compensating box shadow appeared on most controls. F08 high: Keyboard focus is invisible on key controls. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Home names the trending-video catalogue; detail names the selected video and presents the legally required Get started verification action. |
support-core-task-successprimary-flow-completion | pass | high | Catalogue links reach a 200-status video detail; the required UK age gate clearly explains why playback requires verification and provides Get started rather than a dead end. |
support-core-task-successclear-system-state-and-recovery | pass | high | Consent offers equal Accept/Reject actions; the gated player clearly states verification/login requirements and offers a next action. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse mobile measured LCP 2.9 s and FCP 2.8 s; the independent trace measured LCP 2.25 s, indicating a borderline experience dependent on conditions. F09 medium: Synthetic LCP misses the good threshold. |
be-fast-and-stablevisual-stability | pass | high | Layout observer and Lighthouse both measured CLS 0 with no recorded layout shifts. |
be-fast-and-stableefficient-main-thread | pass | high | Trace found two long tasks with 182 ms TBT while Lighthouse mobile measured 0 ms TBT; no sustained main-thread blockage was observed. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR recorded 143 requests and 1.80 MB transferred, including 11 stylesheets and 61 scripts; three parser-inserted high-priority stylesheets were confirmed as media=all. F10 medium: The initial route has a broad resource and blocking surface. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimated 57 KiB unused CSS (87-95% unused in two files) and 26 KiB unused JavaScript; HAR shows one index script alone transferred 402 KB. F11 medium: The initial page ships unused CSS and JavaScript. |
be-inclusivenames-roles-labels | issues | high | axe reported a critical unnamed button, an unnamed role=button video item, prohibited aria-label use, nested interactive controls, and focusable content inside aria-hidden. F12 high: Several controls have missing or invalid accessible semantics. |
be-inclusivesufficient-contrast | issues | high | axe measured ratios as low as 1.75:1 on the age-verification subtitle, 2.15:1 on its heading, 3.29:1 for view counts, and 4.04:1 for signup text. F13 high: Important text fails WCAG AA contrast. |
be-inclusivestructure-and-focus | issues | high | axe found duplicate/unlabelled landmarks, nested complementary landmarks, and focusable descendants inside aria-hidden; the focus probe found several controls with no visible focus indicator. F14 high: Landmark and focus management are not consistently accessible. |
be-inclusivelegible-text | pass | high | Representative screenshots show readable body and heading sizing with unclipped desktop typography; contrast exceptions are recorded separately. |
be-inclusivezoom-reflow-targets-and-media | issues | high | The 360 px viewport retained a 1024 px layout and overflowed by 664 px despite a valid viewport meta tag. F15 high: Narrow-screen reflow is unusable without horizontal panning. |
follow-best-practicesno-console-errors | pass | high | Lighthouse errors-in-console audit passed with no items. |
follow-best-practicessound-document-and-assets | pass | high | DOM/Lighthouse confirmed HTML doctype, UTF-8, valid image aspect ratios, and a viewport meta tag. |
follow-best-practicesbrowser-platform-hygiene | pass | high | Lighthouse found no deprecated API use or BFCache blocker and assigned best practices 1.0; no permission prompt appeared on load. |
be-discoverabletitle-and-description | pass | high | Home and video detail expose descriptive, route-specific titles and meta descriptions. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | Lighthouse confirmed crawlable links, descriptive link text, valid robots.txt, and viewport metadata; mobile reflow is recorded under the dedicated form-factor check. |
be-discoverablecanonical-and-indexing-signals | pass | high | Both representative public pages returned 200, Lighthouse validated canonical and robots signals, and canonical URLs point to the primary xhamster.com host. |
be-discoverablestructured-and-shareable-metadata | issues | high | The representative video page had no JSON-LD, and the homepage resource probe found no Open Graph or Twitter metadata; title, H1, description, and canonical were otherwise present. F16 medium: Rich video pages omit structured data and social preview metadata. |
be-private-and-securesecure-transport-and-headers | issues | high | Headers reported CSP only as frame-ancestors 'self', without script/style/default restrictions. Cookies reported x_csrf_token and settings without Secure; settings also uses SameSite=None. F17 high: The CSP is too narrow and two first-party cookies are not Secure. |
be-private-and-securedata-minimisation-and-third-parties | pass | high | No known tracker domains or exposed secrets were detected; most third-party bytes are first-party-owned xhcdn delivery, and consent provides Reject before personalised use. |
be-private-and-securein-context-permissions-and-modern-auth | pass | high | No browser permission prompt appeared on load; signup offers federated Google and X options rather than requiring a password-only path. |
be-private-and-securedefensive-browser-policies | issues | high | The headers probe found no X-Content-Type-Options and no response Referrer-Policy; Permissions-Policy only declared two UA client-hint features, while the document itself requests unsafe-url referrer behavior. F18 medium: Several browser-enforced defenses are missing or under-scoped. |
be-resilientprogressive-enhancement | pass | high | Raw HTML retained 86% of homepage and 77% of detail content; title, H1, and description survive without JavaScript. |
be-resilientresilient-runtime-behaviour | pass | high | Consent and account overlays remained bounded in desktop captures; navigation is composed of real links and no runtime console errors were observed. |
be-resilientoffline-and-installable | pass | high | A valid manifest is linked, an active service worker controls the page, and an xh-offline-cache-1.6.5 cache exists. |
be-resilientnetwork-and-http-failure-states | pass | high | The active service worker and named offline cache provide direct evidence of offline fallback infrastructure; the player also presents an explicit blocked state rather than a blank shell. |
be-internationalisedlang-dir-and-logical-properties | pass | high | English uses lang=en, Indonesian uses lang=id, and Arabic uses lang=ar with dir=rtl; translated headings and RTL reading direction rendered. |
be-internationalisedlocale-aware-data | pass | high | Indonesian and Arabic hosts localise UI, headings, category names, and compact view-count labels rather than serving English-only markup. |
be-internationalisedtime-zone-correctness | not-applicable | high | The representative catalogue, video, and signup surfaces expose no dates, scheduled events, or time-zone-sensitive concepts. |
be-trustworthyno-dark-patterns | pass | high | Consent Accept and Reject actions have equal visual prominence, signup clearly discloses public/partner data use, and required UK verification is explained. |
be-trustworthyhumane-error-handling | not-applicable | high | No editable required-field form was exposed in the representative public flow; search has no required validation and signup initially offers identity-provider actions. |
be-trustworthytrustworthy-input-assistance | not-applicable | high | No address, payment, password, or profile input fields were exposed in the representative unauthenticated flow. |
be-trustworthysafe-commercial-and-account-flows | pass | high | Signup offers login, multiple identity choices, terms/privacy links, and an explicit data-use disclosure before account creation; no forced continuity was exercised. |
be-sustainableoptimised-assets | issues | high | The images primitive found 29 of 36 images without width/height attributes, 13 oversized images, 15 legacy-format images, 8 below-fold images without lazy loading, and 3 without responsive sources. F19 medium: Many images are oversized or lack intrinsic sizing and modern delivery hints. |
be-sustainableno-wasteful-work | pass | high | No autoplay media was instantiated on home or gated detail, and trace did not show sustained background long-task activity. |
be-sustainablethird-party-and-media-budget | pass | high | The 1.8 MB homepage is proportionate to a media catalogue, uses mostly WebP thumbnails, instantiates no autoplay video on the gated detail, and reports no known trackers. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No declared agent-facing intent or transactional agent tool surface was evident; this emerging capability is not required for this media catalogue. |
be-agent-readyon-device-inference | not-applicable | high | No experience in the audited media catalogue requires on-device language-model or summarisation inference. |
be-memory-efficientno-leak-under-repeated-interaction | pass | medium | After ten repeated language-menu toggles, retained heap was 37.9 MB versus 35.8 MB baseline (5.8% growth), with no Detached constructor among top populations; this bounded one-pass delta does not indicate unbounded retention. |
be-memory-efficientbounded-footprint | pass | medium | Baseline retained self-size was 35.8 MB for a rich catalogue page; this is proportionate to the rendered surface and script set. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | medium | Neither heap summary listed Detached constructors among the largest populations, and repeated menu toggling produced only bounded aggregate growth. |
Provenance
Canonical report: results/atomic/reports/0147-xhchannel_com.json
Report SHA-256: 94a84f299023b6c8158dc48b62ad57328f9fc95703027922b8a54ef1052b39df
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/xhchannel_com/2026-07-18T18-23-28-159Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/xhchannel_com/2026-07-18T18-23-28-159Z
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.