Manifest position 980 · CrUX rank bucket 1000

https://www.boyfriendtv.com

Partial after retries

Mandatory external age verification redirects to Agerify and requires a selfie or government ID. The audit did not submit personal identity data, so listing, video detail/playback, search, account, and post-consent templates remain unexamined.

Attempts
3 / 3
Judged checks
31 / 58
Blocked
27
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 normal and prefers-color-scheme: dark screenshots are visually identical, while the computed root color-scheme is "normal" and no preference-driven scheme is declared.
F001 low: The gate uses a fixed dark palette instead of responding to the user’s color-scheme preference.
respect-user-preferences
respects-reduced-motion
passhighThe gate reports zero active animations and the reduced-motion-sensitive surface is static.
respect-user-preferences
respects-contrast
passhighThe forced-colors screenshot preserves all gate text, links, boundaries, and primary actions.
implement-natural-interactions
view-transitions
blockedhighRoute, scroll, and gesture interactions exist behind mandatory external age verification, so representative interaction evidence could not be gathered.
implement-natural-interactions
scroll-driven-animations
blockedhighRoute, scroll, and gesture interactions exist behind mandatory external age verification, so representative interaction evidence could not be gathered.
implement-natural-interactions
physical-gestures
blockedhighRoute, scroll, and gesture interactions exist behind mandatory external age verification, so representative interaction evidence could not be gathered.
provide-guided-navigation
scroll-state-aware-chrome
blockedhighNavigation chrome and content routes are hidden behind mandatory external age verification; only the gate was observable.
provide-guided-navigation
anchored-positioning
blockedhighNavigation chrome and content routes are hidden behind mandatory external age verification; only the gate was observable.
provide-guided-navigation
directs-attention
blockedhighNavigation chrome and content routes are hidden behind mandatory external age verification; only the gate was observable.
maximize-content-reduce-noise
no-intrusive-interruptions
passhighThe blocking surface is the legally purposeful age gate, is visually restrained, and does not layer ads or unrelated interruptions over it.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighDOM evidence shows #cbDocumentViewer and the chat panel as DIV elements with role=dialog; #cbDocumentViewer is not hidden even when visually closed.
F002 low: Modal surfaces are implemented as custom divs rather than native dialog/popover primitives.
maximize-content-reduce-noise
reduced-chrome
passhighThe gate dedicates the viewport to age notice, verification, and login with minimal decorative chrome.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
passhighAt 360x800, scrollWidth equals clientWidth (360 px), horizontal overflow is 0, and the gate reflows into one column.
adapt-to-the-form-factor
component-level-responsiveness
blockedhighRepresentative reusable content components are behind the age-verification wall, preventing container-level comparison.
adapt-to-the-form-factor
input-modality-aware
issueshighThe visible LOGIN control is an <a> without href. Calling focus() leaves document.activeElement elsewhere and its computed outline is none; Lighthouse also identifies it as a non-crawlable anchor.
F003 high: The existing-user Login action is not keyboard focusable.
support-core-task-success
clear-purpose-and-primary-action
passhighThe first viewport clearly states Adults Only Website and presents Accept & Verify age as the primary action.
support-core-task-success
primary-flow-completion
blockedhighAttempting the primary action redirects to Agerify and requires a selfie or government ID; the audit did not submit personal identity data.
support-core-task-success
clear-system-state-and-recovery
blockedhighAttempting the primary action redirects to Agerify and requires a selfie or government ID; the audit did not submit personal identity data.
be-fast-and-stable
good-core-web-vitals
issueshighLighthouse measured LCP/FCP at 2.65 s and the CDP trace measured LCP/FCP at 2.95 s; the good LCP threshold is 2.5 s.
F004 medium: Even the lightweight age gate misses the good LCP threshold.
be-fast-and-stable
visual-stability
passhighThe mobile layout observer recorded CLS 0 with no layout-shift entries; Lighthouse CLS was effectively 0.
be-fast-and-stable
efficient-main-thread
passhighThe trace recorded no long tasks and 0 ms TBT; Lighthouse TBT was 3 ms.
be-fast-and-stable
efficient-resource-delivery
issueshighLighthouse reports the 93 KiB black-blue.min.css as render-blocking with an estimated 1,180 ms saving; the HAR also records the stylesheet as the largest transferred resource.
F005 medium: A large site-wide stylesheet delays rendering of the age gate.
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighLighthouse estimates 89 KiB unused CSS and 66 KiB unused JavaScript, including about 75% of scripts.min.js and 64% of jQuery.
F006 medium: The gate downloads substantial code that it does not use.
be-inclusive
names-roles-labels
issueshighThe Login and Manage Cookies controls are <a> elements without href or an explicit button role; direct DOM inspection shows Login cannot receive programmatic focus.
F007 high: Visible onclick-only anchors are not exposed with the semantics of their intended controls.
be-inclusive
sufficient-contrast
passhighLighthouse accessibility scored 1.0 and the forced-colors capture retains readable text and control boundaries.
be-inclusive
structure-and-focus
issueshighA direct focus probe on .cb-age-login a reports isFocused=false and outline "none" because the anchor has no href.
F008 high: Keyboard users cannot reach the visible Login action on the blocking gate.
be-inclusive
legible-text
passhighDesktop and mobile captures show unclipped copy, comfortable line spacing, and readable wrapping on the gate.
be-inclusive
zoom-reflow-targets-and-media
blockedhighVideos and other core media are behind mandatory external age verification, so zoom/reflow and caption equivalence could not be judged for them.
follow-best-practices
no-console-errors
passhighLighthouse did not report browser console errors or uncaught exceptions during the gate load.
follow-best-practices
sound-document-and-assets
blockedhighThe gate prevents inspection of document/assets across the actual listing, detail, search, and account templates.
follow-best-practices
browser-platform-hygiene
issueshighLighthouse reports three deprecation warnings, including Shared Storage, persistent StorageType, and Protected Audience API usage in the Cloudflare challenge script.
F009 low: The loaded Cloudflare challenge script triggers deprecated API warnings.
be-discoverable
title-and-description
passhighThe server-rendered page includes a descriptive title and meta description, both present in raw HTML.
be-discoverable
crawlable-and-mobile-friendly
issueshighrobots.txt returns age-gate HTML rather than robots directives, producing 13 Lighthouse parse errors; Lighthouse also flags Login and Manage Cookies as non-crawlable anchors.
F010 medium: robots.txt is invalid and action-like anchors lack href values.
be-discoverable
canonical-and-indexing-signals
issueshighThe page declares index,follow and hreflang variants but has no canonical link; /robots.txt returns gate prose and /sitemap.xml produced a Cloudflare challenge/noindex response in direct retrieval.
F011 medium: Indexing signals are inconsistent at the public entry point.
be-discoverable
structured-and-shareable-metadata
issueshighThe DOM probe found zero JSON-LD blocks and zero Open Graph tags, despite the page being presented as an indexable public video service.
F012 low: The public homepage exposes no structured data or social preview metadata.
be-private-and-secure
secure-transport-and-headers
issueshighHeader evidence records Content-Security-Policy: frame-ancestors 'self' with no default-src, script-src, object-src, or base-uri directives; the page contains many inline scripts.
F013 medium: The Content-Security-Policy only controls framing and does not mitigate script injection.
be-private-and-secure
data-minimisation-and-third-parties
blockedhighAuthentication and the external verifier require credentials or biometric/identity data; those flows were not entered.
be-private-and-secure
in-context-permissions-and-modern-auth
blockedhighAuthentication and the external verifier require credentials or biometric/identity data; those flows were not entered.
be-private-and-secure
defensive-browser-policies
issueshighThe response uses Referrer-Policy: no-referrer-when-downgrade rather than a privacy-preserving strict-origin policy; the mandatory flow navigates to an external age-verification provider.
F014 medium: The referrer policy permits full HTTPS URLs to be sent to other HTTPS origins.
be-resilient
progressive-enhancement
issueshighRaw HTML includes a noscript warning that the site cannot be used without JavaScript, while the visible verification button relies on onclick=startAgeVerification(); the crawler view can render gate copy but cannot enter.
F015 high: The mandatory age-verification flow cannot proceed without JavaScript.
be-resilient
resilient-runtime-behaviour
blockedhighRuntime and network-failure behavior of the core site cannot be exercised before completing external age verification.
be-resilient
offline-and-installable
issueshighThe page links /manifest.json and declares mobile-web-app-capable, but the HAR records two 403 responses for the manifest and no controlling service worker is present.
F016 medium: The site advertises an app manifest that is not reliably retrievable.
be-resilient
network-and-http-failure-states
blockedhighRuntime and network-failure behavior of the core site cannot be exercised before completing external age verification.
be-internationalised
lang-dir-and-logical-properties
blockedhighLocalized content templates and locale-sensitive data remain behind mandatory external age verification.
be-internationalised
locale-aware-data
blockedhighLocalized content templates and locale-sensitive data remain behind mandatory external age verification.
be-internationalised
time-zone-correctness
blockedhighLocalized content templates and locale-sensitive data remain behind mandatory external age verification.
be-trustworthy
no-dark-patterns
blockedhighError, autofill, commercial, and account flows require external verification or credentials and could not be exercised safely.
be-trustworthy
humane-error-handling
blockedhighError, autofill, commercial, and account flows require external verification or credentials and could not be exercised safely.
be-trustworthy
trustworthy-input-assistance
blockedhighError, autofill, commercial, and account flows require external verification or credentials and could not be exercised safely.
be-trustworthy
safe-commercial-and-account-flows
blockedhighError, autofill, commercial, and account flows require external verification or credentials and could not be exercised safely.
be-sustainable
optimised-assets
blockedhighImage/video delivery and media budgets cannot be observed before completing external age verification.
be-sustainable
no-wasteful-work
issueshighThe gate transfers 262 KiB across 14 requests while Lighthouse finds 89 KiB unused CSS and 66 KiB unused JavaScript; jQuery and the full site bundle load before access is granted.
F017 medium: The pre-verification gate performs avoidable network and code work.
be-sustainable
third-party-and-media-budget
blockedhighImage/video delivery and media budgets cannot be observed before completing external age verification.
be-agent-ready
structured-agent-capabilities
not-applicablehighThis age-gated content site exposes no agent-facing transactional capability, and the emerging WebMCP check is contextual rather than an obligation.
be-agent-ready
on-device-inference
not-applicablehighNo on-device inference use case is necessary to complete the public age-gate task; absence is a contextual non-issue.
be-memory-efficient
no-leak-under-repeated-interaction
blockedhighA representative core interaction cannot be repeated without completing external age verification; gate-only memory would not establish the site footprint.
be-memory-efficient
bounded-footprint
blockedhighA representative core interaction cannot be repeated without completing external age verification; gate-only memory would not establish the site footprint.
be-memory-efficient
no-detached-dom-or-unbounded-listeners
blockedhighA representative core interaction cannot be repeated without completing external age verification; gate-only memory would not establish the site footprint.

Provenance

Canonical report: results/atomic/reports/0980-www_boyfriendtv_com.json
Report SHA-256: 6812a670afdb3e25cfb416f7b1bd73c25ca7611c1c8e8ff2a69675e0c77b6da1
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_boyfriendtv_com/2026-07-28T13-16-53-500Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_boyfriendtv_com/2026-07-28T13-16-53-500Z
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.