Manifest position 230 · CrUX rank bucket 1000
https://www.fuq.com
Coverage complete
Coverage-complete audit of the publicly reachable age-verification surface. Listing, support, and unknown routes all redirected to that gate; identity submission to third-party providers was intentionally not performed.
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 effectively identical; the DOM probe detects theme CSS but no usable light presentation on the audited entry state. F01 medium: The interface is dark in both default and dark-preference conditions rather than adapting to the user’s requested scheme. |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion probe reported roughly 80 running pulse animations at 2000ms each under prefers-reduced-motion: reduce. F02 medium: Loading placeholders continue pulsing when reduced motion is requested. |
respect-user-preferencesrespects-contrast | pass | high | Forced-colors screenshot keeps text, provider outlines, and focused action visible. |
implement-natural-interactionsview-transitions | issues | high | The CSS/DOM probe found no view-transition rules while the age-provider chooser changes active state abruptly. F03 low: Provider-state changes and route changes do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | pass | high | No scroll-linked visual effects or scroll event animation behavior appears on the gate, and CSS has no animation-timeline; the anti-pattern is absent. |
implement-natural-interactionsphysical-gestures | pass | high | The covered gate uses ordinary click/focus interaction and does not replace scrolling or gestures with custom pointer handling. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The CSS probe found no scroll-state/container-query rules or scroll progress treatment on a content catalogue with long underlying pages. F04 low: The site chrome has no scroll-state-aware behavior. |
provide-guided-navigationanchored-positioning | pass | high | The covered overlay is a centered native dialog, not a manually anchored tooltip/menu, and remains within the mobile viewport. |
provide-guided-navigationdirects-attention | pass | high | Modal focus is trapped in a labelled dialog and the active AgeGO option is visibly expanded with its primary action. |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | The unavoidable regional age gate is the primary task, is concise, and keeps its required choices in one labelled dialog rather than stacking promotional interstitials. |
maximize-content-reduce-noisesemantic-dismissible-primitives | pass | high | The mandatory modal uses a native open dialog labelled by #age-verification-title; no ad-hoc full-screen overlay was used for the gate. |
maximize-content-reduce-noisereduced-chrome | pass | high | The gate devotes its surface to verification choices, privacy explanation, and required legal links with little decorative chrome. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | At 360x800 the layout reports scrollWidth 360, clientWidth 360, horizontalOverflowPx 0, and includes a viewport meta tag. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The mobile layout fits at 360px, but the CSS probe found no @container/container-type support for reused catalogue, menu, or dialog components. F05 medium: Responsive behavior is viewport-only rather than component-aware. |
adapt-to-the-form-factorinput-modality-aware | issues | high | DOM evidence shows .provider-option divs with cursor-pointer but no role or tabindex; the modal probe also measured multiple links at 14px high and controls at 36px. F06 high: AgeVerif and Yoti are mouse-only clickable divs, and many interactive targets are below 44px. |
support-core-task-successclear-purpose-and-primary-action | pass | high | The first viewport says “Please verify your age,” explains why, recommends AgeGO, and exposes “Continue with AgeGO.” |
support-core-task-successprimary-flow-completion | pass | high | The audited gate exposes three POST-backed provider routes, a recommended default, provider-specific continue actions, and required terms before handoff; no hidden required field appears in the site-controlled step. |
support-core-task-successclear-system-state-and-recovery | pass | high | The selected provider is visibly expanded, alternatives remain available, and support/legal contact links remain in the dialog. |
be-fast-and-stablegood-core-web-vitals | issues | high | The trace summary measured LCP at 3133.7ms (FCP 1951.28ms), above the 2500ms good threshold, while TBT remained 0ms. F07 medium: The age gate misses the good LCP threshold on the measured cold load. |
be-fast-and-stablevisual-stability | pass | high | The layout observer recorded CLS 0 with no shifts at mobile size; image risks did not shift the measured gate. |
be-fast-and-stableefficient-main-thread | pass | high | The trace found zero long tasks and 0ms total blocking time over a 7.25s capture. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR initiator data flags otSDKStub.js as a parser-inserted High-priority script; DOM confirms it is in head without async, defer, or module. F08 medium: A synchronous third-party consent script is parser-inserted before the gate is usable. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Scripts transfer 303,149 bytes; GTM alone is 154,526 bytes and CookiePro’s banner SDK is 126,321 bytes, far larger than the 11,351-byte first-party app script. F09 medium: Third-party JavaScript dominates a simple gate load. |
be-inclusivenames-roles-labels | issues | high | AgeVerif and Yoti are clickable div.provider-option elements with no role, tabindex, aria-expanded, or button semantics. F10 high: Two age-verification choices are not exposed as controls to assistive technology. |
be-inclusivesufficient-contrast | pass | high | Text, outlines, and the active control remain distinguishable in forced-colors mode. |
be-inclusivestructure-and-focus | issues | high | The DOM probe starts at h2 and contains no h1; dialog focus outlines are 1px and legal links have 14px-high boxes. F11 high: The document has no h1 and relies on weak, very small focus indicators for several dialog links. |
be-inclusivelegible-text | pass | high | Gate copy uses readable line lengths, clear labels, and no clipping at desktop or 360px mobile widths. |
be-inclusivezoom-reflow-targets-and-media | issues | high | The dialog focus probe measured the language and primary action controls at 36px high and legal links at 14px high, below the recommended 44px target area. F12 medium: Touch targets in the primary dialog are undersized. |
follow-best-practicesno-console-errors | pass | medium | The page completed its first-party render and provider-state interaction; required first-party assets returned successfully and no uncaught failure surfaced during active probes. |
follow-best-practicessound-document-and-assets | issues | high | The image probe found six oversized images, five without width/height, seven legacy-format assets, and a 500px logo displayed at 64px. F13 medium: Image delivery is wasteful and several images lack intrinsic dimensions. |
follow-best-practicesbrowser-platform-hygiene | pass | medium | No notification/geolocation prompt appeared on load; Notification.permission remained default and the page uses HTTPS, native dialog, manifest, and standard forms. |
be-discoverabletitle-and-description | pass | high | The rendered and raw HTML include “Porn Videos @ Fuq.com” and a descriptive meta description. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | The page has viewport metadata, real href links, robots allows normal crawling, and sitemap.xml is declared. |
be-discoverablecanonical-and-indexing-signals | pass | high | The final public gate returns 200, canonicals to /age-verification, robots permits it, and sitemap.xml is valid and current. |
be-discoverablestructured-and-shareable-metadata | issues | high | The metadata probe found valid Organization JSON-LD but no Open Graph properties on the canonical age-verification page. F14 low: The public gate lacks social-share metadata. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS, HSTS, nosniff, and X-Frame-Options are present, but CSP permits unsafe-inline styles; OptanonConsent is not Secure and analytics cookies use SameSite=None for 400 days. F15 high: Cookie and CSP settings weaken otherwise solid transport security. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The initial HAR contains a Google Analytics page_view and GTM load while the cookie controls are behind the mandatory age dialog; 347,415 of 434,348 transferred bytes are third-party. F16 high: Analytics runs before the user can act on the obscured cookie banner. |
be-private-and-securein-context-permissions-and-modern-auth | pass | high | No permission prompt appeared on load and Notification.permission remained default; the covered public gate has no site account/authentication surface requiring passkeys. |
be-private-and-securedefensive-browser-policies | issues | high | The headers probe reports no Permissions-Policy; two analytics cookies are SameSite=None and live for 400 days. F17 medium: Permissions-Policy is missing and privacy cookie posture is permissive. |
be-resilientprogressive-enhancement | pass | high | Raw HTML contains 88% of rendered content tokens, title and description, and is not a JS shell. |
be-resilientresilient-runtime-behaviour | issues | high | The two inactive provider rows are custom clickable divs with no keyboard semantics, making the runtime behavior fragile for keyboard and assistive-technology users. F18 medium: Provider chooser behavior depends on non-semantic div click handlers. |
be-resilientoffline-and-installable | not-applicable | high | The audited public media catalogue gate is intrinsically online and no offline core task was declared; offline/installable behavior is contextual here. |
be-resilientnetwork-and-http-failure-states | issues | high | A request to a deliberately nonexistent path ended at /age-verification with the normal gate and no not-found message or recovery context. F19 medium: Unknown routes are silently replaced by the age gate rather than preserving an error/recovery state. |
be-internationalisedlang-dir-and-logical-properties | pass | high | The document declares lang=en, offers a multi-locale form, and the CSS probe found logical inline/block properties. |
be-internationalisedlocale-aware-data | not-applicable | high | The covered gate renders no dates, numbers, currency, duration, or calendar data requiring locale formatting. |
be-internationalisedtime-zone-correctness | not-applicable | high | The covered gate has no time or event concepts, so time-zone/DST handling does not apply. |
be-trustworthyno-dark-patterns | issues | high | Visible copy says data is used only for age verification and identity stays unlinked, yet the initial network capture sends a GA page_view before the cookie banner can be acted on. F20 high: The gate promises verification-only data use while analytics collection starts before consent is reachable. |
be-trustworthyhumane-error-handling | pass | high | The site-controlled gate contains no user-entered validation form; provider selection changes state without premature validation or blame. |
be-trustworthytrustworthy-input-assistance | not-applicable | high | The site-controlled gate has no user-entry address, payment, sign-in, or sign-up field requiring autofill assistance. |
be-trustworthysafe-commercial-and-account-flows | not-applicable | high | No checkout, subscription, authentication, or account-management flow is present on the covered public gate. |
be-sustainableoptimised-assets | issues | high | The image probe found the 500px PNG logo displayed at 64px and provider images up to 400px displayed at 20px; seven images use legacy formats. F21 medium: Small logos and provider marks are served at far larger intrinsic sizes in legacy formats. |
be-sustainableno-wasteful-work | issues | high | Fourteen third-party requests transfer 347,415 bytes, including GTM and eleven CookiePro requests, on a page whose core task is three provider choices. F22 medium: Consent and analytics work consumes most of the entry-load transfer before user interaction. |
be-sustainablethird-party-and-media-budget | issues | high | Third parties account for about 80% of transferred bytes (347,415 of 434,348), despite no media playing on the gate. F23 medium: Third-party payload is disproportionate to the age gate’s user value. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No agent-facing transaction or productivity capability is intended on the mandatory age-verification gate; the emerging WebMCP check is contextual. |
be-agent-readyon-device-inference | not-applicable | high | The gate has no summarisation or language-model task where on-device inference would improve the experience. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | Baseline vs ten provider-row switches changed node count only 172,342→172,830 while total self size fell 10,167,518→10,134,800 bytes, with no unbounded retained growth signal. |
be-memory-efficientbounded-footprint | pass | high | The loaded gate retained about 10.2MB self size and 172k heap nodes, proportionate to the DOM plus consent tooling. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Ten real provider-row state switches did not produce material retained-heap growth; constructor summaries expose no growing Detached* population among dominant constructors. |
Provenance
Canonical report: results/atomic/reports/0230-www_fuq_com.json
Report SHA-256: 560dc327a4cf4b670817d9b03dc4d06be9660227609b51f2c0a172d93fd21017
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_fuq_com/2026-07-19T07-38-22-092Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_fuq_com/2026-07-19T07-38-22-092Z
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.