Manifest position 550 · CrUX rank bucket 1000
https://xhamster19.com
Coverage complete
All 58 catalog checks were judged across five representative paths. Search results, authenticated account areas, payment, upload/creator onboarding, and post-verification playback were not covered because they are separate templates or require account/identity state.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | Default and prefers-color-scheme:dark screenshots are visually identical; under dark emulation computed colorScheme is normal and theme-color remains #ffffff. hardcoded-theme medium: The dark presentation is hard-coded rather than preference-driven. |
respect-user-preferencesrespects-reduced-motion | issues | high | With prefers-reduced-motion:reduce active, getAnimations() still returned eight running animations, each with a 2000 ms duration. reduced-motion medium: Animations continue under reduced-motion preference. |
respect-user-preferencesrespects-contrast | pass | high | Forced-colors/prefers-contrast screenshot keeps navigation, consent actions, titles and cards visibly separated with system colors. |
implement-natural-interactionsview-transitions | issues | medium | CSS inspection found zero view-transition rules on a multi-page experience with frequent route and modal state changes. no-view-transitions low: Route and state changes do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | pass | high | CSS probe found no scroll-linked animation and the audited listing uses ordinary native scrolling, so there is no main-thread scroll animation to replace. |
implement-natural-interactionsphysical-gestures | pass | high | Audited discovery/watch/signup journeys use native links, buttons and scrolling; no custom pointermove/swipe surface was observed fighting browser gestures. |
provide-guided-navigationscroll-state-aware-chrome | issues | medium | The homepage is 4615 px tall, but CSS inspection found no scroll timeline/state query and the captured chrome remains static. static-scroll-chrome low: Long listing pages provide no scroll-position feedback. |
provide-guided-navigationanchored-positioning | pass | high | Representative header/category navigation remained attached and within the viewport; no tooltip or detachable edge overlay was part of the core paths. |
provide-guided-navigationdirects-attention | pass | high | Active navigation uses a red underline, pages have a single descriptive heading, cards expose clear titles, and the 404 provides a Return to Home Page action. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Desktop screenshots show a large centered consent prompt covering cards, category navigation, video playback and signup before interaction. load-interruption high: A consent modal obscures the primary content on every sampled public page. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | The homepage probe found one full-viewport overlay but zero dialog, role=dialog or popover elements. custom-consent-overlay medium: The consent overlay is custom div chrome rather than a semantic modal primitive. |
maximize-content-reduce-noisereduced-chrome | pass | high | Behind the consent prompt, desktop listing/category/detail templates devote the primary pane to content cards or the player with restrained borders. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | issues | high | The 360x800 layout primitive reports scrollWidth 1024, clientWidth 360 and 664 px horizontal overflow on both home and video detail; screenshots show navigation, content and signup controls clipped off-canvas. mobile-fixed-canvas critical: The desktop canvas is forced into mobile viewports. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | CSS inspection found zero @container rules while the same navigation, card and account components overflow in narrow containers. component-responsiveness medium: Reusable surfaces do not adapt at component level. |
adapt-to-the-form-factorinput-modality-aware | issues | high | Computed focus probes showed outline style none on search and Login; Lighthouse failed target-size, and the DOM probe found at least 30 interactive elements below 24 px. input-modality high: Focus visibility and target sizing are unreliable. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Homepage H1 is “Trending Free Porn Videos”; category and video detail have specific H1/title text and the age gate exposes a prominent Get started action. |
support-core-task-successprimary-flow-completion | issues | high | At 360x800, the fixed desktop canvas leaves the signup card mostly off-screen; users see only a narrow clipped strip of the primary flow. signup-mobile-flow critical: The signup journey is not usable at the audited mobile viewport. |
support-core-task-successclear-system-state-and-recovery | pass | high | The age gate explains why playback is blocked, blank signup submission gives field requirements, and the sampled 404 clearly says Page not found with a home recovery link. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 2.7 s and FCP 2.6 s on the homepage; the separate desktop trace measured LCP 1.62 s, so the mobile condition is the concern. lcp-borderline medium: Synthetic mobile LCP misses the good threshold. |
be-fast-and-stablevisual-stability | pass | high | Desktop layout observation measured CLS 0.00051 and Lighthouse measured CLS 0; no visible jump occurred in sampled screenshots. |
be-fast-and-stableefficient-main-thread | issues | high | The trace recorded two long tasks, longest 160.84 ms, and 125.36 ms total blocking time; layout observation independently saw a 153 ms task. main-thread-bursts medium: Startup includes avoidable long main-thread tasks. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR recorded 147 requests and 1.78 MB transferred; three parser-inserted VeryHigh-priority stylesheets were confirmed as render-blocking candidates, alongside 66 scripts. resource-delivery medium: The initial dependency set is broad and includes blocking CSS. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | HAR attributes 1,017,548 transferred bytes to 66 scripts; index.js alone is 400,257 bytes and third-party Google code adds 98,484 bytes. script-payload medium: JavaScript dominates initial transfer. |
be-inclusivenames-roles-labels | issues | high | Lighthouse failed button-name on a visible control; the image audit found one missing alt among 36 images. accessible-names high: Some controls lack accessible names and one image lacks alt text. |
be-inclusivesufficient-contrast | issues | high | Lighthouse measured 2.15:1 and 1.75:1 on the age-verification banner, 3.29:1 on view counts, and 3.29:1 on signup legal copy, below 4.5:1. color-contrast high: Important text fails WCAG contrast. |
be-inclusivestructure-and-focus | issues | high | Computed focus probes show outline none and no box-shadow on search and Login; several top navigation links also have outline style none. focus-structure high: Keyboard focus is not visibly indicated on core controls. |
be-inclusivelegible-text | issues | high | The mobile screenshots cut off headings, banner copy, cards and the account panel because content remains 1024 px wide. legibility-clipping high: Text and controls are clipped at narrow widths. |
be-inclusivezoom-reflow-targets-and-media | issues | high | At 360 CSS px, 664 px overflow remains and Lighthouse target-size fails; the viewport meta itself permits scaling, so layout is the blocker. zoom-reflow high: The experience fails reflow and includes undersized targets. |
follow-best-practicesno-console-errors | pass | high | Lighthouse errors-in-console audit passed on homepage and signup with no logged browser errors. |
follow-best-practicessound-document-and-assets | pass | high | Doctype, UTF-8 charset and main landmark are present; Lighthouse passed doctype, charset, image aspect-ratio and responsive-image rendering audits. |
follow-best-practicesbrowser-platform-hygiene | pass | high | Lighthouse passed BFCache, deprecations, permission-on-start and DevTools inspector-issues audits on homepage and signup. |
be-discoverabletitle-and-description | pass | high | Homepage, category, video and signup expose descriptive titles/meta descriptions; raw-HTML discoverability confirms title and description survive without JS. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | Viewport meta and real href links are present; robots.txt is valid, homepage is indexable, and raw HTML contains 77–100% of representative rendered content. |
be-discoverablecanonical-and-indexing-signals | issues | high | robots.txt is valid and pages are indexable, but GET /sitemap.xml returned HTTP/2 404 with an empty body. missing-sitemap medium: The conventional sitemap endpoint returns 404. |
be-discoverablestructured-and-shareable-metadata | issues | high | The representative detail page has accurate Open Graph tags but zero application/ld+json blocks, despite representing a VideoObject. missing-video-structured-data medium: Video detail pages omit structured data. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS/HSTS are present, but CSP only declares frame-ancestors; four of five cookies were flagged insecure and several use SameSite=None, including settings and g_state. transport-cookies high: Cookie and CSP transport protections are incomplete. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | HAR recorded 118 third-party requests transferring 1.59 MB across 11 third-party origins, including identity, recommendation and ad endpoints while the consent prompt was still open. third-party-collection high: The pre-consent page has a large third-party/network footprint. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | No permission prompt fired on load, but signup offers Google, X and email/password; probes found no WebAuthn/passkey affordance or autocomplete=webauthn. password-only-auth medium: Account creation exposes no phishing-resistant passkey path. |
be-private-and-securedefensive-browser-policies | issues | high | Headers omit X-Content-Type-Options and Referrer-Policy; HSTS max-age is only 86400 seconds; Permissions-Policy only configures client hints and CSP lacks broader XSS directives. defensive-policies high: Several browser-enforced defenses are weak or absent. |
be-resilientprogressive-enhancement | pass | high | Raw server HTML contains 84% of homepage, 100% of categories and 77% of video-detail rendered words; all retain title/H1/description without JavaScript. |
be-resilientresilient-runtime-behaviour | pass | high | Consent, age-gate and 404 states render stable, offer explicit actions and do not produce console/Inspector errors in the sampled runtime. |
be-resilientoffline-and-installable | not-applicable | high | The core product is network-streamed media, so offline playback is not a reasonable requirement; a manifest and active service worker are nevertheless present. |
be-resilientnetwork-and-http-failure-states | pass | high | The deliberate missing route renders a clear Page not found state, support guidance and Return to Home Page recovery instead of a blank shell. |
be-internationalisedlang-dir-and-logical-properties | issues | high | The English page declares lang=en, but stylesheet inspection counted 684 physical left/right declarations versus 19 logical-property occurrences on a site linking dozens of languages including RTL locales. physical-i18n-css medium: CSS remains heavily dependent on physical left/right properties. |
be-internationalisedlocale-aware-data | not-applicable | high | No dates, currencies, numeric entry or locale-sensitive data were present in the representative public and signup surfaces. |
be-internationalisedtime-zone-correctness | not-applicable | high | No event scheduling, time-zone display or recurring-time concept was present in the representative surfaces. |
be-trustworthyno-dark-patterns | issues | high | After choosing Reject and opening email signup, the page displays “Some features may not be available… For a better user experience, please accept all cookies” with an Accept all cookies action. consent-nagging high: Rejecting optional cookies triggers a new accept-all prompt. |
be-trustworthyhumane-error-handling | issues | high | Blank email submission shows “This field is required” and a password requirement, but the probe found no role=alert, aria-live or aria-invalid=true elements. form-errors-unannounced medium: Signup validation messages are not exposed as live errors. |
be-trustworthytrustworthy-input-assistance | issues | high | The revealed signup form contains duplicate text inputs named email with autocomplete=off; password correctly uses new-password, but neither input has an associated label. email-autocomplete medium: The email signup field disables autofill. |
be-trustworthysafe-commercial-and-account-flows | issues | medium | Signup clearly discloses public data use and offers reversible login navigation, but only federated and email/password enrollment are visible. account-auth-safety medium: Account flow lacks a passkey option despite handling sensitive identity and age state. |
be-sustainableoptimised-assets | issues | high | The image audit found 13 oversized images, 29 missing width/height attributes, 15 legacy-format URLs, and 8 below-fold images without lazy loading. oversized-assets medium: Image delivery wastes bytes and dimensions. |
be-sustainableno-wasteful-work | issues | high | The initial HAR contains 147 requests, 66 scripts and long recommendation/ad requests around 2.4–2.8 s, before the user has selected content. wasteful-background-work medium: Recommendation and advertising work starts broadly on initial load. |
be-sustainablethird-party-and-media-budget | issues | high | Third parties account for 1,588,914 of 1,781,408 transferred bytes (89%) and 118 of 147 requests. third-party-budget medium: Third-party code consumes most initial network bytes. |
be-agent-readystructured-agent-capabilities | not-applicable | high | This public media catalogue exposes no declared agent-facing transaction or productivity capability; emerging WebMCP support is therefore not required. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation or language-model task was part of the audited core watch/discovery journey; on-device inference is not applicable. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After ten Login/Escape plus scroll-to-end/back cycles, heap grew from 36.27 MB to 40.70 MB with no Detached constructor in top summaries; growth is bounded and partly explained by lazy-loaded content. |
be-memory-efficientbounded-footprint | pass | high | Baseline heap self-size is 36.27 MB with 681,252 snapshot nodes and live performance.memory used heap about 23.3 MB, proportionate to a media listing. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Neither baseline nor post-interaction top constructor summaries contain Detached* populations; post state has no open dialogs after repeated Escape cycles. |
Provenance
Canonical report: results/atomic/reports/0550-xhamster19_com.json
Report SHA-256: 6ce0d880bc45b6fbf7d55041b0c93d932f52955e6ce0e71f08bf836c43096ec9
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/xhamster19_com/2026-07-21T12-28-42-363Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/xhamster19_com/2026-07-21T12-28-42-363Z
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.