Manifest position 162 · CrUX rank bucket 1000

https://www.eporner.com

Coverage complete

Coverage-complete audit of the public age gate and representative public legal/support templates. Porn listing, playback, biometric submission, and authenticated account completion were excluded.

Attempts
2 / 3
Judged checks
58 / 58
Blocked
0
Not run
0
This report has no published overall score. Blocked and not-run checks are not passes. A coverage-complete report means every check has a judged outcome; it does not mean every check passed.

All 58 atomic check outcomes

Principle / checkStatusConfidenceEvidence or reason
respect-user-preferences
respects-color-scheme
issueshighThe UI remains the same hard-coded black theme and the CSS probe found no color-scheme, prefers-color-scheme, or light-dark() support; the only theme switch is a cookie.
F01 medium: Hard-coded theme ignores the system color preference
respect-user-preferences
respects-reduced-motion
issueshighThe age gate contains an indefinitely repeating SVG <animate>; the only prefers-reduced-motion rule found targets an unrelated view counter, so the age animation continues under reduce.
F02 medium: Indefinite age-gate animation continues under reduced motion
respect-user-preferences
respects-contrast
passhighThe terms page remains readable and controls remain visible under forced-colors: active and prefers-contrast: more.
implement-natural-interactions
view-transitions
issuesmediumNo view-transition CSS or API use was found; the primary gate-to-account state swaps abruptly into a custom overlay.
F03 low: Primary state changes are abrupt
implement-natural-interactions
scroll-driven-animations
passhighNo scroll-linked animation or parallax was present on the representative templates, so no main-thread scroll animation anti-pattern was observed.
implement-natural-interactions
physical-gestures
passmediumNo custom pointermove, swipe, pull, carousel, or other gesture-driven interaction was present on the audited paths; native scrolling remained in control.
provide-guided-navigation
scroll-state-aware-chrome
issuesmediumThe 10,158px terms page provides no scroll progress or scroll-state-aware header behavior; CSS inspection found no scroll-state/container mechanism.
F04 low: Long legal pages offer no scroll-state guidance
provide-guided-navigation
anchored-positioning
not-applicablehighThe audited templates expose no tooltip, anchored popover, or edge-positioned menu for which CSS anchor positioning is applicable.
provide-guided-navigation
directs-attention
passmediumLegal pages use a prominent page heading and section headings, and opening the account overlay moves focus into its login input, giving a visible destination after navigation.
maximize-content-reduce-noise
no-intrusive-interruptions
passmediumThe age gate is a legally required access boundary rather than an advertising interstitial; legal content is not obscured on load apart from a shallow dismissible cookie strip.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighThe account flow uses #EPmodal-overlay custom divs, has no <dialog> or role=dialog, exposes no close/cancel control, and remains open after Escape.
F05 high: Custom account overlay traps the user
maximize-content-reduce-noise
reduced-chrome
passmediumThe age gate and legal pages devote most of the viewport to the primary content; navigation chrome is compact rather than dominating the page.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
passhighHome, terms, and contact each reported scrollWidth 360, clientWidth 360, horizontalOverflowPx 0, with a valid viewport meta tag.
adapt-to-the-form-factor
component-level-responsiveness
issuesmediumThe CSS probe found no @container or container-type use; reused header and content components depend only on viewport media queries.
F06 low: Components only adapt at viewport breakpoints
adapt-to-the-form-factor
input-modality-aware
issueshighMobile footer links are only 14px high and several header controls are 30x30px; Lighthouse failed target-size while keyboard focus itself remained visible.
F07 high: Many touch targets are too small
support-core-task-success
clear-purpose-and-primary-action
passhighThe entry page clearly explains the age requirement and gives one prominent verification action; legal/support pages use descriptive H1 headings.
support-core-task-success
primary-flow-completion
issueshighThe verification CTA first opens a registration/sign-in wall with multiple identity providers before the advertised selfie verification step, adding an avoidable account detour to the core flow.
F08 high: Verification CTA inserts an account wall
support-core-task-success
clear-system-state-and-recovery
issueshighThe account overlay cannot be cancelled with Escape and has no close control; an arbitrary missing URL also returns HTTP 200 with the age gate instead of an actionable not-found state.
F09 high: Recovery states are missing or misleading
be-fast-and-stable
good-core-web-vitals
issueshighHome Lighthouse measured LCP 2.95s, outside the good <=2.5s range; contact measured 2.38s and the trace measured 1.87s, so the regression is concentrated on the entry gate.
F10 medium: Entry-page LCP misses the good threshold
be-fast-and-stable
visual-stability
passhighAll three mobile layout captures and both Lighthouse runs reported CLS 0 with no observed layout shifts.
be-fast-and-stable
efficient-main-thread
passhighThe trace and layout observers found no long tasks, and Lighthouse reported total blocking time 0ms on home and contact.
be-fast-and-stable
efficient-resource-delivery
issueshighHome loads parser-blocking jQuery 3.4.1 and ajax3.js without async/defer; Lighthouse attributes 2.16s of home LCP to render delay.
F11 medium: Legacy scripts block parsing on the entry gate
be-fast-and-stable
trim-unused-and-duplicate-code
passmediumAudited pages transfer 74-93KB of JavaScript and Lighthouse did not report a large unused/duplicate-code opportunity; no third-party script dominates total weight.
be-inclusive
names-roles-labels
issueshighHome logo lacks alt text, contact mobile header links lack accessible names, and the custom account overlay lacks dialog semantics.
F12 high: Images and controls lack accessible names
be-inclusive
sufficient-contrast
issueshighThe green age-estimation message is #0a910a on #222 at 3.83:1, below the required 4.5:1 for its text size.
F13 medium: Age-estimation status text fails contrast
be-inclusive
structure-and-focus
issueshighThe entry page has no main landmark or H1, its UL directly contains a BR, and the custom modal has no dialog role or keyboard dismissal even though initial button focus is visible.
F14 high: Entry semantics and modal focus behavior are incomplete
be-inclusive
legible-text
issueshighLegal and support copy is rendered around 12.5px with dense justified paragraphs; the fixed cookie strip overlaps the last visible lines on mobile.
F15 medium: Legal/support text is cramped
be-inclusive
zoom-reflow-targets-and-media
issueshighReflow succeeds and scaling is not disabled, but numerous footer/content links are only 14px high and mobile header controls are 30x30px, below accessible target guidance.
F07 high: Many touch targets are too small
follow-best-practices
no-console-errors
passmediumBoth Lighthouse runs scored Best Practices 1.00 and reported no console-error or uncaught-exception failure.
follow-best-practices
sound-document-and-assets
issueshighAlthough doctype and UTF-8 are valid, all 2 home images and all 23 contact images omit intrinsic width/height; the entry UL also contains an invalid BR child.
F16 low: Image sizing and list markup are unsound
follow-best-practices
browser-platform-hygiene
passmediumNo deprecated-API, paste-prevention, notification/geolocation-on-load, or BFCache issue was surfaced on the representative pages.
be-discoverable
title-and-description
issueshighThe public entry page has a descriptive title but no meta description; Lighthouse failed the meta-description audit.
F17 medium: Homepage has no meta description
be-discoverable
crawlable-and-mobile-friendly
passhighRepresentative links use real href values, viewport meta is present, robots.txt allows the public site and declares a sitemap, and contact Lighthouse SEO scored 1.00.
be-discoverable
canonical-and-indexing-signals
issueshighThe homepage has no canonical URL, and an arbitrary nonexistent URL returns HTTP 200 with the age gate, creating a soft-404/indexing ambiguity despite a valid sitemap.
F18 medium: Canonical and 404 indexing signals are ambiguous
be-discoverable
structured-and-shareable-metadata
passmediumThe contact entity exposes six Open Graph tags and eleven hreflang links; the generic age gate has no rich entity requiring JSON-LD.
be-private-and-secure
secure-transport-and-headers
issueshighHTTPS and HSTS are present, but CSP only says upgrade-insecure-requests, X-Content-Type-Options and Referrer-Policy are absent, and epcolor is neither Secure nor SameSite-protected.
F19 high: Browser defenses and cookie flags are incomplete
be-private-and-secure
data-minimisation-and-third-parties
issueshighSelf-hosted Piwik analytics loads before choice while the only cookie notice action is [X] and continued use is treated as consent; the modal also loads Google identity iframes.
F20 high: Analytics runs before meaningful consent
be-private-and-secure
in-context-permissions-and-modern-auth
passmediumCamera access is behind explicit verification and Start camera actions, not requested on load; authentication offers several federated providers in addition to password login.
be-private-and-secure
defensive-browser-policies
issueshighHSTS and SAMEORIGIN framing protection are present, but the CSP has no source restrictions or frame-ancestors, and Referrer-Policy/nosniff are missing.
F19 high: Browser defenses and cookie flags are incomplete
be-resilient
progressive-enhancement
issueshighCore text is server-rendered, but the only age-verification action is an onclick button with no form or href fallback, so the primary flow cannot proceed without JavaScript.
F21 high: Core age verification has no no-JS path
be-resilient
resilient-runtime-behaviour
issueshighThe custom account overlay remains after Escape and offers no close/cancel control, so runtime state can trap users rather than recovering predictably.
F05 high: Custom account overlay traps the user
be-resilient
offline-and-installable
not-applicablehighThe audited product is an intrinsically network-dependent streaming service, not an installable/offline app; no offline product intent was declared.
be-resilient
network-and-http-failure-states
issueshighA nonexistent route returns HTTP 200 and the normal age gate, with no not-found explanation, back link, search, or recovery state.
F09 high: Recovery states are missing or misleading
be-internationalised
lang-dir-and-logical-properties
issueshighLegal pages declare lang=en and expose hreflang, but the entry page has no lang or dir and CSS contains no logical-property strategy.
F22 medium: Entry language and bidirectional foundations are missing
be-internationalised
locale-aware-data
not-applicablehighThe representative gate, legal and support pages display no dates, currencies, localized numbers, durations, or calendars requiring locale-aware formatting.
be-internationalised
time-zone-correctness
not-applicablehighThe representative paths contain no events, schedules, stored times, or recurring time concepts for which time-zone/DST handling applies.
be-trustworthy
no-dark-patterns
issueshighThe gate promises a simple AI verification but first opens registration/sign-in and only later reveals live-selfie/AgeGo options; the cookie notice equates continued use with consent and offers no reject/settings choice.
F23 high: Verification and consent disclosures are not transparent
be-trustworthy
humane-error-handling
passmediumThe camera flow contains role=status, role=alert, aria-live messaging, Retry and Stop camera controls, plus a detailed camera-access help disclosure.
be-trustworthy
trustworthy-input-assistance
issueshighLogin and password fields omit appropriate autocomplete tokens, and the focused login input is explicitly autocomplete=off, obstructing password-manager/autofill assistance.
F24 medium: Sign-in fields block autofill assistance
be-trustworthy
safe-commercial-and-account-flows
issueshighAccount registration is inserted before verification and the resulting overlay has no close control or Escape dismissal, making the commitment neither clear nor easily reversible.
F23 high: Verification and consent disclosures are not transparent
be-sustainable
optimised-assets
issuesmediumThe entry spends 169KB on a JPEG background, retains a legacy GIF badge, and contact loads legacy JPEG thumbnails; image elements lack intrinsic dimensions and responsive source selection.
F25 low: Decorative and thumbnail assets use avoidable legacy delivery
be-sustainable
no-wasteful-work
issueshighThe contact page fetches multiple adult gallery thumbnails that render at 0x0 on the support template, while analytics also starts before a user choice.
F26 medium: Support page fetches invisible media
be-sustainable
third-party-and-media-budget
passmediumThe audited static paths transfer 202-284KB, autoplay no media, and contact uses a self-hosted analytics endpoint; overall media/script weight is modest for the product.
be-agent-ready
structured-agent-capabilities
not-applicablehighNo developer intent or user journey indicates that this age-gated media site should expose transactional WebMCP capabilities; its public static content is already server-rendered and it exposes a conventional webmaster API.
be-agent-ready
on-device-inference
not-applicablehighNo summarisation, writing, classification, or other user task on the audited gate/legal/support paths would clearly benefit from built-in on-device inference.
be-memory-efficient
no-leak-under-repeated-interaction
passmediumAfter loading the modal, 20 create/login switches increased heap from 33,591,228 to 33,786,970 bytes (0.6%) and nodes from 141,778 to 143,902 (1.5%), modest bounded growth rather than an unbounded pattern.
be-memory-efficient
bounded-footprint
passmediumThe loaded gate uses 4.33MB before the account/identity UI and about 33.6MB after that UI loads; the footprint is material but proportionate to the federated-login and camera-capable flow.
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passmediumNeither compared heap summary reports Detached* constructors, and Object/Array populations remain nearly flat across 20 modal mode switches; no unbounded retained-listener/timer signature was observed.

Provenance

Canonical report: results/atomic/reports/0162-www_eporner_com.json
Report SHA-256: 239ce98bb96a849597db42334cc76a6b139bcfff538087d303d8a81da8d5d34b
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_eporner_com/2026-07-25T22-16-35-992Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_eporner_com/2026-07-25T22-16-35-992Z
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.