Manifest position 102 · CrUX rank bucket 1000

https://www.twitch.tv

Coverage complete

Coverage-complete anonymous public-surface audit across homepage, directory, live channel, narrow viewport, preference conditions, and an error route.

Attempts
1 / 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 light-preference screenshot remains dark, and computed CSS reports body color-scheme: dark with no prefers-color-scheme rule.
TW-01 medium: The interface stays in its dark theme when the user requests a light color scheme.
respect-user-preferences
respects-reduced-motion
issueshighThe reduced-motion probe found thirteen running animations, mostly 2 seconds long, and no prefers-reduced-motion rule in accessible stylesheets.
TW-02 medium: Continuous animations remain active under reduced-motion.
respect-user-preferences
respects-contrast
passhighUnder prefers-contrast:more and forced-colors:active, text, controls, player chrome, links, and focus-relevant edges remain visible with strong system colors.
implement-natural-interactions
view-transitions
issueshighCSS inspection found no view-transition rules or names across the rendered homepage.
TW-03 low: Route and major state changes do not use View Transitions.
implement-natural-interactions
scroll-driven-animations
not-applicablehighNo parallax, scrollytelling, or entry/exit reveal surface was present on the representative routes, so there is no scroll-linked animation to implement declaratively.
implement-natural-interactions
physical-gestures
passmediumRepresentative discovery and channel paths expose standard click, keyboard, range, and native scroll interactions; no custom pointer-drag surface fighting native scrolling was observed.
provide-guided-navigation
scroll-state-aware-chrome
issueshighDOM/CSS inspection found no scroll-state container query, progress cue, or declarative scroll-position response on a long discovery feed.
TW-04 low: Navigation chrome does not expose scroll-aware feedback.
provide-guided-navigation
anchored-positioning
not-applicablemediumNo edge-positioned tooltip or context-menu state was opened in the audited anonymous discovery/watch journey; the observed consent surface is not an anchored overlay.
provide-guided-navigation
directs-attention
passhighBrowse tabs, live-state badges, channel identity, active category tabs, and the unavailable-content recovery CTA consistently direct attention after navigation.
maximize-content-reduce-noise
no-intrusive-interruptions
passmediumThe consent surface is large but does not fully interstitial-block the product, offers equally visible Accept/Customize/Reject actions, and the stream discovery UI remains visible.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighThe live DOM reported 0 dialog elements and 0 popover elements while the page displayed a large consent surface and custom transient controls.
TW-05 medium: Consent and transient surfaces are implemented without native dialog/popover primitives.
maximize-content-reduce-noise
reduced-chrome
passhighHomepage, directory, and channel layouts devote the central region to streams/categories/player while persistent chrome is compact and functional.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
issueshighAt a requested 360x800 viewport, layout reported hasViewportMeta:false and a 980 CSS-pixel layout viewport; the screenshot shows tiny desktop text and controls.
TW-06 high: The desktop page omits the viewport meta tag and is scaled down on a 360px screen.
adapt-to-the-form-factor
component-level-responsiveness
issueshighAccessible stylesheet inspection found no @container rules while the same cards/sidebar patterns appear across homepage and directory layouts.
TW-07 low: Reusable discovery components show no container-query adaptation.
adapt-to-the-form-factor
input-modality-aware
issueshighThe interaction probe found many controls below 24px high, including 17px links and 20px tags; shrink-to-fit mobile rendering makes them smaller still.
TW-08 high: Many controls become undersized for touch and several controls have very small hit boxes.
support-core-task-success
clear-purpose-and-primary-action
passhighThe homepage immediately exposes live streams and Browse/Search; directory says Browse and channel pages center the live player.
support-core-task-success
primary-flow-completion
passhighThe representative flow from homepage to directory to a live channel completes without login; a live player and channel details are visible on the channel route.
support-core-task-success
clear-system-state-and-recovery
passhighA nonexistent channel renders a clear unavailable state and a prominent Browse channels recovery action rather than a blank shell.
be-fast-and-stable
good-core-web-vitals
issueshighLighthouse measured LCP 9.2s, FCP 6.4s, TBT 540ms, and time-to-interactive 12.3s, producing a 0.44 performance score.
TW-09 high: Cold-load performance is poor under Lighthouse mobile conditions.
be-fast-and-stable
visual-stability
issueshighThe layout primitive measured CLS 0.373 on the homepage mobile condition and 1.122 on the directory, with multiple shifts after 1.3s.
TW-10 high: Large layout shifts occur during representative page loads.
be-fast-and-stable
efficient-main-thread
issueshighThe trace recorded 8 long tasks, a 179ms longest task, and 399.76ms total blocking time; Lighthouse independently measured 540ms TBT.
TW-11 high: Heavy scripting blocks the main thread.
be-fast-and-stable
efficient-resource-delivery
issueshighHAR recorded 252 requests and 2.92MB transferred, including 148 scripts totaling 2.02MB; numerous parser-inserted classic scripts were confirmed in the body without async/defer.
TW-12 high: The initial route ships an expensive script-heavy dependency graph.
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighHAR shows 148 scripts and 2.02MB of script transfer; DOM inspection confirms both nomodulePolyfills and a separate polyfills bundle on the page.
TW-13 medium: JavaScript dominates the initial transfer and includes legacy/polyfill bundles.
be-inclusive
names-roles-labels
passhighLighthouse accessibility scored 1.00. Search has an accessible name and meaningful stream/category imagery generally carries descriptive alt; no audit violation was reported.
be-inclusive
sufficient-contrast
passhighLighthouse accessibility scored 1.00 and the forced-colors capture preserves readable text and control contrast across the first viewport.
be-inclusive
structure-and-focus
passmediumA focused first interactive element reports a visible auto outline, route landmarks/headings are present, and Lighthouse accessibility found no structural failure.
be-inclusive
legible-text
passmediumAt desktop width, headings, stream titles, channel metadata, and error copy are readable and not visibly clipped; the separate narrow reflow failure is recorded under zoom/reflow.
be-inclusive
zoom-reflow-targets-and-media
issueshighThe 360px capture is a 980px desktop canvas scaled to 0.367, making text and interactive targets materially too small even though no horizontal scrollbar is exposed.
TW-14 medium: Mobile reflow and target sizing are not usable at the requested narrow viewport.
follow-best-practices
no-console-errors
passmediumLighthouse did not report its errors-in-console audit as failed during the captured run.
follow-best-practices
sound-document-and-assets
issueshighThe images primitive found all 31 images missing both width and height, 15 missing srcset, 13 oversized, and 5 missing alt attributes; Lighthouse also flagged low-resolution images.
TW-15 medium: Images omit intrinsic dimensions and responsive delivery metadata.
follow-best-practices
browser-platform-hygiene
issueshighLighthouse failed valid-source-maps, inspector-issues, and BFCache, reporting one back/forward cache failure reason.
TW-16 medium: Browser hygiene issues include BFCache prevention and missing source maps.
be-discoverable
title-and-description
passhighThe rendered page has title Twitch and a descriptive meta description explaining the livestreaming service.
be-discoverable
crawlable-and-mobile-friendly
issueshighDiscoverability measured only 1% rendered-word coverage, isJsShell:true, and a crawler screenshot with no meaningful stream/category content; the viewport meta is also absent.
TW-17 high: Public content is effectively absent from raw HTML and the mobile viewport signal is missing.
be-discoverable
canonical-and-indexing-signals
passhighThe homepage returns 200, declares canonical https://www.twitch.tv/, robots index, 28 hreflang links, and robots.txt advertises sitemapv2_index.xml.gz.
be-discoverable
structured-and-shareable-metadata
passhighThe homepage exposes JSON-LD and Open Graph site_name, title, URL, type, image, and description matching the visible Twitch service.
be-private-and-secure
secure-transport-and-headers
issueshighHeaders show no CSP, Referrer-Policy, or Permissions-Policy. Cookie evidence includes a non-Secure country cookie and an api_token cookie without HttpOnly; all six use SameSite=None.
TW-18 high: Security headers and cookie attributes leave material gaps.
be-private-and-secure
data-minimisation-and-third-parties
issueshighNetwork capture recorded 249 cross-origin requests and 2.85MB cross-origin transfer, including ad and telemetry endpoints; the consent panel names up to 109 partners.
TW-19 medium: The pre-choice load has a broad data and third-party request surface.
be-private-and-secure
in-context-permissions-and-modern-auth
passmediumNo notification, geolocation, camera, or microphone permission prompt appeared on load. Authentication is optional for the core anonymous browse/watch flow.
be-private-and-secure
defensive-browser-policies
issueshighHSTS, nosniff, and SAMEORIGIN are present, but CSP/frame-ancestors, Referrer-Policy, and Permissions-Policy are absent from the main response.
TW-20 medium: Defensive browser policy coverage is incomplete.
be-resilient
progressive-enhancement
issueshighRaw HTML contains 1% of rendered content words and is classified as a JS shell; the crawler screenshot lacks streams, categories, and useful navigation content.
TW-21 high: Core public content disappears without JavaScript.
be-resilient
resilient-runtime-behaviour
passmediumDiscovery, channel, and missing-channel routes reached stable, bounded states; the custom player and navigation remained within the viewport at desktop conditions.
be-resilient
offline-and-installable
not-applicablehighTwitch live playback is intrinsically online and no installability intent is declared; offline media playback is not a meaningful expectation for this audited public web surface.
be-resilient
network-and-http-failure-states
passhighA missing channel produces an intentional unavailable state with a Browse channels recovery action.
be-internationalised
lang-dir-and-logical-properties
passhighThe page declares lang=en-GB, exposes 28 hreflang variants, and accessible CSS inspection found logical inline/block properties.
be-internationalised
locale-aware-data
passmediumThe en-GB route renders compact locale-appropriate viewer counts and exposes localized language metadata rather than hard-coding an unlabeled locale.
be-internationalised
time-zone-correctness
not-applicablehighNo calendar event, scheduled date/time entry, or user-editable time concept was present in the audited anonymous discovery/watch surfaces.
be-trustworthy
no-dark-patterns
passhighAccept, Customize, and Reject are equally prominent; viewing does not require signup, and the unavailable state offers a direct recovery route.
be-trustworthy
humane-error-handling
passmediumThe representative invalid channel error uses neutral language, explains unavailability, and offers a clear recovery action without blaming the user.
be-trustworthy
trustworthy-input-assistance
not-applicablemediumThe audited anonymous surfaces contain search and media controls but no address, payment, sign-in, or sign-up data-entry form requiring autofill tokens.
be-trustworthy
safe-commercial-and-account-flows
not-applicablehighCheckout, subscription purchase, cancellation, and authenticated account management require credentials/payment and were explicitly not exercised in this anonymous public-surface audit.
be-sustainable
optimised-assets
issueshighImage evidence found 31 legacy PNG/JPEG images, no modern-format images, 13 oversized images, and 15 without responsive sources.
TW-22 medium: Image delivery is not resolution- or format-efficient.
be-sustainable
no-wasteful-work
issueshighThe page makes 252 requests and loads 148 scripts before a user chooses a stream; trace evidence shows 399.76ms blocking time.
TW-23 medium: Initial background and non-critical work is excessive.
be-sustainable
third-party-and-media-budget
issueshighThe initial route transfers 2.92MB and starts a featured live player while also loading ad, telemetry, casting, and extensive discovery code.
TW-24 medium: The homepage media/script budget is heavy before explicit interaction.
be-agent-ready
structured-agent-capabilities
issueshighNo structured agent capability was detected, and raw HTML exposes only 1% of rendered words despite public discovery and channel actions being useful to agents.
TW-25 low: Agent access relies on scraping a JavaScript-rendered shell.
be-agent-ready
on-device-inference
not-applicablehighNo summarization or language-model task is exposed in the representative anonymous surfaces where on-device inference would clearly improve the current core journey.
be-memory-efficient
no-leak-under-repeated-interaction
passmediumAfter ten bottom/top feed traversals, heap self size rose from 55,406,433 to 56,122,869 bytes (1.29%) and nodes from 975,917 to 989,962 (1.44%), bounded growth rather than an obvious runaway leak.
be-memory-efficient
bounded-footprint
passmediumBaseline V8 heap self size was 55.4MB for a complex React livestream discovery page with player, images, and extensive UI; no single application constructor dominated the snapshot.
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passmediumNeither heap summary lists a Detached* constructor among the top retained constructors, and the repeated traversal produced only 1.29% total self-size growth.

Provenance

Canonical report: results/atomic/reports/0102-www_twitch_tv.json
Report SHA-256: aa4219af1df16500ca9add05d8b7e675c67f28770b782eca7dea4b59b20a1222
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_twitch_tv/2026-07-18T10-45-50-962Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_twitch_tv/2026-07-18T10-45-50-962Z
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.