Manifest position 370 · CrUX rank bucket 1000
https://lichess.org
Coverage complete
Coverage-complete representative audit of seven public archetypes. Authenticated play/account management, live multiplayer completion, checkout/donation completion, and destructive account actions were not exercised because they require credentials, another player, payment, or side effects.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The light and dark captures are byte-identical and both retain the dark palette; the DOM reports html class="dark" rather than a system-driven theme. F01 medium: System light preference is ignored |
respect-user-preferencesrespects-reduced-motion | pass | high | The preference matched, no active animations were returned, and the fetched site stylesheet contains four prefers-reduced-motion rules. |
respect-user-preferencesrespects-contrast | issues | high | Lighthouse found 11 low-contrast text/control cases, while the fetched stylesheets contain no prefers-contrast or forced-colors adaptation. F02 medium: High-contrast preferences have no dedicated adaptation |
implement-natural-interactionsview-transitions | issues | high | Home, training, analysis and article surfaces use abrupt document/state changes; fetched CSS contains no @view-transition or view-transition-name usage. F03 low: Route and state changes are abrupt |
implement-natural-interactionsscroll-driven-animations | pass | high | No parallax, scrollytelling or scroll-linked animation is present on the representative pages, so there is no main-thread scroll-animation anti-pattern to replace. |
implement-natural-interactionsphysical-gestures | pass | high | The site stylesheet uses overscroll-behavior and the chess/puzzle surfaces use direct board interaction without a competing scroll or pointer-driven page effect. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The 2,957 px mobile lobby and 7,501 px mobile tournament listing retain static chrome with no scroll progress/state response; no scroll-state query was found. F04 low: Long pages provide no scroll-state guidance |
provide-guided-navigationanchored-positioning | issues | high | Navigation/preferences use fixed/custom dropdown containers; fetched CSS contains no anchor-name, position-anchor or position-try fallback positioning. F05 low: Custom dropdown positioning does not use anchors |
provide-guided-navigationdirects-attention | issues | medium | Representative navigation uses abrupt page replacement and long listings expose no progress marker, transition cue or destination highlight beyond the current tab underline. F06 low: Navigation gives limited destination cues |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | No consent wall, ad interstitial or load-time modal obscured the lobby, puzzle, analysis board, article or login form. |
maximize-content-reduce-noisesemantic-dismissible-primitives | pass | high | No modal overlay was present on load; the visible disclosure/navigation controls are native buttons, inputs and links and did not block content. |
maximize-content-reduce-noisereduced-chrome | pass | high | The board and article content dominate their viewports; there are no ads and only compact global chrome. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | Lobby and tournament pages both report scrollWidth 360, clientWidth 360 and zero horizontal overflow with a viewport meta tag. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | medium | No @container or container-type rules were found in the three page stylesheets; complex lobby cards, carousels and board sidebars adapt only at page/viewport level. F07 low: Complex reused components rely only on viewport layout |
adapt-to-the-form-factorinput-modality-aware | pass | high | The login username receives a strong blue focus ring, controls remain operable as buttons/links, and primary mobile actions have generous target sizes. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Quick pairing, puzzle instruction, analysis board, tournament heading, article title and sign-in form each make their purpose and next action apparent. |
support-core-task-successprimary-flow-completion | pass | high | An anonymous user can select a pairing, solve a loaded puzzle and open the analysis board without registration; sign-in is confined to account-specific activity. |
support-core-task-successclear-system-state-and-recovery | pass | high | Puzzle state says “Your turn” and identifies the side to move; the 404 clearly says Page not found and links back to the homepage. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 3.7 s (outside the good <=2.5 s range), although CLS was 0 and TBT 0 ms; a warm trace measured LCP 1.06 s. F08 medium: Cold-load LCP misses the good threshold |
be-fast-and-stablevisual-stability | pass | high | Mobile lobby and tournament observers both report CLS 0 with no shifts; Lighthouse also reports CLS 0. |
be-fast-and-stableefficient-main-thread | pass | high | The trace reports zero long tasks and 0 ms total blocking time; both mobile layout captures also observed no long tasks. |
be-fast-and-stableefficient-resource-delivery | pass | high | The load transfers about 440 KB with no errors or redirects; scripts are modules/deferred in DOM. Lighthouse estimates only 130 ms render-blocking savings. |
be-fast-and-stabletrim-unused-and-duplicate-code | pass | high | The 440 KB load has no tracker bundles and Lighthouse did not report unused or duplicated JavaScript/CSS audits as failures. |
be-inclusivenames-roles-labels | issues | high | Lighthouse found two unnamed carousel buttons and nine content/flair images without alt; training and analysis probes also enumerate icon-only buttons without accessible names. F09 high: Primary interactive surfaces contain unnamed controls |
be-inclusivesufficient-contrast | issues | high | Lighthouse reports insufficient contrast for Register, feed timestamps/links and tournament text (11 affected nodes). F10 medium: Several text and control colors fail WCAG contrast |
be-inclusivestructure-and-focus | issues | high | The homepage, puzzle, analysis and login rendered with no h1; complex board tools expose many icon-only controls. The login field itself has a clear visible focus ring. F11 medium: Key app pages lack a clear top-level heading and expose weak control structure |
be-inclusivelegible-text | pass | high | Body copy, board coordinates, form labels and article text are readable without clipping; mobile layout remains single-column and stable. |
be-inclusivezoom-reflow-targets-and-media | pass | high | The viewport allows user scaling (no maximum-scale/user-scalable=no), and tested mobile pages reflow with zero horizontal overflow. No essential timed media appears on tested paths. |
follow-best-practicesno-console-errors | pass | high | Lighthouse scored Best Practices 1.00 and did not report console errors or uncaught exceptions. |
follow-best-practicessound-document-and-assets | issues | high | Doctype and UTF-8 are valid, but 9 images lack intrinsic dimensions and 3 are over 2x display size; the load happened to record CLS 0. F12 low: Image markup omits sizing and responsive-delivery hints |
follow-best-practicesbrowser-platform-hygiene | pass | high | Best Practices scored 1.00; BFCache exclusions are WebSocket/no-store constraints, and no permission prompt or paste prevention appeared. |
be-discoverabletitle-and-description | pass | high | Homepage and article have descriptive unique titles and meta descriptions, all present in raw HTML. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | Robots allows crawling and no-JS coverage is 95%, but Lighthouse flags the search trigger implemented as an <a> with no href as non-crawlable. F13 low: The search affordance is an href-less anchor |
be-discoverablecanonical-and-indexing-signals | issues | high | Both homepage and sampled article return 200 and robots allows them, with extensive hreflang on home, but neither exposes rel=canonical and robots.txt declares no Sitemap URL. F14 medium: Canonical and sitemap signals are incomplete |
be-discoverablestructured-and-shareable-metadata | issues | high | The article has accurate Open Graph title, description, URL, type and image, but has no JSON-LD or microdata for its Article entity. F15 low: Article metadata lacks structured data |
be-private-and-securesecure-transport-and-headers | pass | high | HTTPS, HSTS, X-Frame-Options DENY, secure HttpOnly SameSite=Lax cookie and a nonce-based meta CSP are present; secret scan found none. |
be-private-and-securedata-minimisation-and-third-parties | pass | high | No known trackers were found; external traffic is confined to Lichess-owned asset/image/socket origins and no third-party cookies were set. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | No permission prompt occurred on load, but the public sign-in UI exposes password plus one-time code only and no passkey/WebAuthn option. F17 medium: Public authentication offers passwords but no passkey path |
be-private-and-securedefensive-browser-policies | issues | high | HSTS, X-Frame-Options and Permissions-Policy are present, but response CSP, X-Content-Type-Options and Referrer-Policy are absent; the meta CSP cannot provide all header-only protections. F16 medium: Several response-level browser defenses are missing |
be-resilientprogressive-enhancement | pass | high | Raw HTML preserves 95% of homepage and 97% of article content; neither page is a JS shell. |
be-resilientresilient-runtime-behaviour | pass | high | Lobby, puzzle, analysis and listing loaded into stable, usable states without cut-off overlays or fragile blank shells. |
be-resilientoffline-and-installable | pass | high | A complete standalone web app manifest with 32–1024 px icons is linked and a service worker registration controls the lichess.org scope. |
be-resilientnetwork-and-http-failure-states | pass | high | An invalid route renders a clear 404/Page not found state and a direct homepage recovery link rather than a blank shell. |
be-internationalisedlang-dir-and-logical-properties | pass | high | The document declares en-US and exposes hreflang variants including Arabic and Persian; language-specific routes are server-rendered. |
be-internationalisedlocale-aware-data | pass | high | Live dates and times use semantic <time datetime=UTC> values with localized display strings (for example “in 12 hours” and localized titles). |
be-internationalisedtime-zone-correctness | pass | high | Event timestamps are stored as unambiguous Z/UTC datetime values and localized for display with explicit UTC context. |
be-trustworthyno-dark-patterns | pass | high | The service is ad-free, exposes Donate rather than disguised sponsorship, and presents sign-in/register choices without consent nags or forced continuity. |
be-trustworthyhumane-error-handling | pass | high | Sign-in fields use labels and required constraints, password reset is visible, and the failure route provides a clear recovery action. |
be-trustworthytrustworthy-input-assistance | pass | high | Username, current password and authentication code use autocomplete=username, current-password and one-time-code respectively. |
be-trustworthysafe-commercial-and-account-flows | pass | high | The sampled sign-in screen clearly separates Sign in/Register, offers password reset and does not obscure pricing or introduce a subscription commitment. |
be-sustainableoptimised-assets | issues | high | All sampled raster content uses WebP, but 18 below-fold images omit lazy loading, 9 omit srcset, 3 are oversized and Lighthouse estimates 18 KiB savings. F18 low: Below-fold images are not deferred or responsively selected |
be-sustainableno-wasteful-work | pass | high | The trace records no long tasks/TBT, the 440 KB load has no repeated errors or redirects, and no tracker-driven background work was detected. |
be-sustainablethird-party-and-media-budget | pass | high | The initial page transfers about 440 KB, has no autoplay media and no known trackers; asset traffic is hosted on Lichess-owned domains. |
be-agent-readystructured-agent-capabilities | not-applicable | high | Agent-facing WebMCP tools and on-device inference are emerging and not required for this public chess experience; crawler-readable content is evaluated separately under discoverability. |
be-agent-readyon-device-inference | not-applicable | high | Agent-facing WebMCP tools and on-device inference are emerging and not required for this public chess experience; crawler-readable content is evaluated separately under discoverability. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | A one-time preferences load raised snapshot size from 6.43 MB to 6.69 MB; 50 cycles remained bounded at 6.57 MB. The 10-cycle in-page probe grew only 640 bytes and 22 DOM nodes. |
be-memory-efficientbounded-footprint | pass | high | The interactive lobby snapshot remains about 6.4–6.7 MB self size with roughly 104k–111k heap nodes, proportionate to a live chess lobby. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Growth plateaus between 10 and 50 repeated menu cycles rather than scaling with cycle count; the menu closes and DOM count remains near baseline. |
Provenance
Canonical report: results/atomic/reports/0370-lichess_org.json
Report SHA-256: 6e4bc783f28042f474d88556c01295df771410367b1cebffa2156e7f591ec603
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/lichess_org/2026-07-20T07-38-16-173Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/lichess_org/2026-07-20T07-38-16-173Z
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.