Manifest position 135 · CrUX rank bucket 1000
https://www.sofascore.com
Coverage complete
Atomic coverage complete across 58 checks and five representative public paths.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | pass | high | Screenshot comparison under explicit light and dark media conditions shows the application surface switches between light and dark themes. |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion probe still found three running animations with 800 to 1000 ms durations after prefers-reduced-motion: reduce was emulated. F01 medium: Motion continues under reduced-motion |
respect-user-preferencesrespects-contrast | issues | high | Under prefers-contrast: more, only third-party sign-in rules referenced prefers-contrast, while axe found app and consent text as low as 1.82:1. F02 high: High-contrast preference is not applied across the app |
implement-natural-interactionsview-transitions | issues | high | Stylesheet inspection on home and match pages found zero view-transition rules, so route and state swaps do not use the platform View Transitions API. F03 low: Route and state changes omit View Transitions |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No parallax, scrollytelling, or other scroll-linked animation was present on the representative pages, so there is no scroll animation implementation to assess. |
implement-natural-interactionsphysical-gestures | pass | high | Stylesheet inspection found six scroll-snap or overscroll rules, showing native scroll behavior is used for horizontal score and sport navigation. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The mobile layout has sticky top and bottom chrome, but stylesheet inspection found no scroll-state queries or scroll-timeline behavior to adapt it as the page moves. F04 low: Fixed navigation does not react to scroll state |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip or edge-positioned transient menu was encountered in the representative public score, match, tournament, or news paths. |
provide-guided-navigationdirects-attention | pass | high | Screenshots show selected sport, date, live-state, and bottom-navigation items with persistent active styling, and match detail exposes clear tab labels. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Every fresh-load screenshot is covered by a consent modal before interaction, including the core scores, match, tournament, and news paths. F05 high: Consent wall obscures every primary path on first load |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | DOM inspection found the consent and promotional overlays implemented as role=dialog DIV elements rather than native dialog or popover primitives. F06 medium: Overlays use custom role=dialog DIVs |
maximize-content-reduce-noisereduced-chrome | pass | high | Behind the consent layer, the score list and match information dominate the viewport; navigation chrome is compact and content-specific. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | Layout at 360x800 reported scrollWidth 360, clientWidth 360, zero horizontal overflow, and a viewport meta element on home, match, and news paths. |
adapt-to-the-form-factorcomponent-level-responsiveness | pass | high | Live stylesheet inspection found four container-query rules, and narrow screenshots show score and navigation components reflowing without overflow. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe reported outline style none on the first focused score link, and the target probe found many visible links only 14 to 16 CSS pixels high. F07 high: Keyboard focus and target sizing are inadequate |
support-core-task-successclear-purpose-and-primary-action | pass | high | The title, first-page heading, selected Football tab, date controls, and score list make the live-score purpose and next actions immediately identifiable behind the consent layer. |
support-core-task-successprimary-flow-completion | issues | high | A full-viewport consent wall interrupts every primary public journey before users can inspect scores, match detail, tournament tables, or news. F08 high: Primary score and content journeys are interrupted |
support-core-task-successclear-system-state-and-recovery | pass | high | Score cards visibly distinguish live, finished, and upcoming states; match detail exposes overview, lineups, matches, knockout, and media states with persistent controls. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 22.4 s, TBT 860 ms, Speed Index 8.0 s, and a 0.44 performance score; match mobile layout separately measured CLS 0.641. F09 critical: Core load performance is far outside the good range |
be-fast-and-stablevisual-stability | issues | high | The match-detail mobile layout observer measured CLS 0.641, including a single 0.467 shift around 5.65 seconds. F10 high: Match detail has severe layout shift |
be-fast-and-stableefficient-main-thread | issues | high | Lighthouse measured 860 ms TBT. The trace found two long tasks up to 117 ms, and mobile layout observation found six long tasks up to 100 ms. F11 high: Main-thread work delays interactivity |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR recorded 409 requests and 4.27 MB transferred, including 92 scripts and 272 images; the largest app bundle transferred 421 KB. F12 high: Initial delivery is excessively heavy |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimated 686 KiB unused JavaScript and 76 KiB unused CSS, including 46% waste in the 421 KB app chunk and 70% waste in ad code. F13 high: Large amounts of unused code ship on first load |
be-inclusivenames-roles-labels | issues | high | axe reported critical missing button names, a switch without a label, invalid aria-selected use on buttons, and a scrollbar role missing aria-valuenow. F14 critical: Core controls have invalid or missing accessible semantics |
be-inclusivesufficient-contrast | issues | high | axe found serious contrast failures, including 3.43:1 live-state text and 1.82:1 consent text, below WCAG AA. F15 high: Text and controls fail WCAG contrast |
be-inclusivestructure-and-focus | issues | high | axe found content outside landmarks and nested interactive controls; the keyboard focus probe computed no visible outline style on the first focused score link. F16 high: Landmarks and keyboard focus are unreliable |
be-inclusivelegible-text | pass | high | Desktop and mobile screenshots show readable score labels and article headlines without clipping or horizontal overflow across the representative layouts. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Reflow itself succeeds, but the target probe found many visible links only 14 to 16 CSS pixels high, and Lighthouse accessibility scored 0.70. F17 medium: Many visible targets are too short |
follow-best-practicesno-console-errors | issues | high | Lighthouse captured failed 403 and 404 resources plus an uncaught TypeError reading stages during application migration. F18 medium: The page logs runtime and network errors |
follow-best-practicessound-document-and-assets | issues | high | Doctype and UTF-8 charset are valid, but the image audit found 98 of 100 images without width and height and 32 oversized images. F19 high: Most images lack intrinsic dimensions |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse reported a WebSocket preventing back-forward cache restoration. It also captured runtime and network errors, although no notification prompt appeared on load. F20 low: A persistent WebSocket blocks BFCache |
be-discoverabletitle-and-description | pass | high | Home and match pages expose descriptive, route-specific titles and meta descriptions. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | Lighthouse passed crawlable anchors, robots validity, viewport, and indexing audits; the DOM contained 1,477 real links and no anchor without href. |
be-discoverablecanonical-and-indexing-signals | issues | high | The raw discoverability fetch received HTTP 403 with zero content coverage, and robots.txt explicitly disallows Bytespider, so important non-JavaScript and AI crawlers cannot retrieve public content. F21 high: Non-JavaScript and AI crawler access is blocked |
be-discoverablestructured-and-shareable-metadata | pass | high | The home page includes Organization and WebSite JSON-LD, canonical and hreflang links; match detail has two JSON-LD blocks and route-specific metadata. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS and nosniff are present, but HSTS is missing, CSP only declares frame-ancestors, and the FCCDCF cookie is not Secure while using SameSite=None. F22 high: Transport policy and cookie flags are incomplete |
be-private-and-securedata-minimisation-and-third-parties | issues | high | The load contacted ten third-party origins, included DoubleClick and Google ad trackers, and the consent layer names 357 partners and possible precise geolocation use. F23 high: The first load has a large tracking and partner footprint |
be-private-and-securein-context-permissions-and-modern-auth | not-applicable | high | No browser permission prompt fired on load. Authentication is optional for the public scoring journey and the observed sign-in surface delegates to Apple and Facebook rather than collecting a password. |
be-private-and-securedefensive-browser-policies | issues | high | Clickjacking and nosniff protections are present, but HSTS and Referrer-Policy are absent and CSP is limited to frame-ancestors rather than script or Trusted Types defenses. F24 medium: Browser-enforced defenses are incomplete |
be-resilientprogressive-enhancement | issues | high | The discoverability primitive fetched only a 48-byte HTTP 403 response with zero raw-content coverage while the rendered page contains 8,974 text characters. F25 high: Core public content is unavailable to the raw client |
be-resilientresilient-runtime-behaviour | pass | high | Consent, sign-in, and match-detail overlays remained within the 360px viewport, navigation state survived route changes, and no horizontal clipping was observed. |
be-resilientoffline-and-installable | issues | high | A valid standalone web app manifest exists, but no service-worker controller or registration was observed, so the app has no evidenced offline fallback. F26 medium: The installable app has no evidenced offline fallback |
be-resilientnetwork-and-http-failure-states | pass | medium | A representative missing route and a background API 404 did not crash the application shell; persistent navigation remained available and the HAR showed the page continued loading. |
be-internationalisedlang-dir-and-logical-properties | pass | high | The Arabic route sets lang=ar and dir=rtl, renders Arabic labels in RTL order, and stylesheet inspection found 315 logical-property rules. |
be-internationalisedlocale-aware-data | pass | high | The Arabic route localizes sport names and renders times with Arabic AM/PM markers while preserving the same live-score content. |
be-internationalisedtime-zone-correctness | pass | high | Match metadata supplies an absolute UTC start time, while the Arabic and English home routes render localized display times for the same event. |
be-trustworthyno-dark-patterns | issues | high | The consent wall offers Consent and Manage options but no equally immediate reject action, while describing sharing with 357 partners and precise geolocation use. F27 high: Consent has no first-layer reject choice |
be-trustworthyhumane-error-handling | not-applicable | high | The representative public paths contain no user-submitted transactional form. Search is an immediate query field, not a validated submission flow. |
be-trustworthytrustworthy-input-assistance | not-applicable | high | No address, payment, sign-up, or password input is present in the representative public flow. |
be-trustworthysafe-commercial-and-account-flows | pass | high | The optional sign-in dialog uses Apple and Facebook federation, states agreement to Terms and Privacy Policy, and does not collect a password on-site. |
be-sustainableoptimised-assets | issues | high | The image audit found 98 missing dimensions, 84 below-fold images without lazy loading, and 32 oversized images; images transferred 1.94 MB. F28 high: Image delivery wastes bandwidth and layout stability |
be-sustainableno-wasteful-work | issues | high | The initial page issued 409 requests, loaded 92 scripts, and Lighthouse estimated 686 KiB unused JavaScript and 76 KiB unused CSS. F29 high: The initial route performs substantial avoidable work |
be-sustainablethird-party-and-media-budget | issues | high | Third parties accounted for 282 requests and 2.51 MB, or 59% of transferred bytes, with ad, consent, identity, and font origins active on load. F30 high: Third parties consume most transferred bytes |
be-agent-readystructured-agent-capabilities | not-applicable | high | WebMCP is emerging and no declared agent-facing intent exists. The public sports site can reasonably omit structured agent tools today. |
be-agent-readyon-device-inference | not-applicable | high | No on-device inference use case is required for the core live-score journey, and the emerging API is not an audit obligation without declared intent. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | In one browser session, 20 search open and Escape cycles grew DOM nodes only on the first open, then plateaued at 7,686; heap samples similarly levelled near 70.2 MB. |
be-memory-efficientbounded-footprint | issues | high | The baseline heap contained 1,456,507 V8 nodes and 78.9 MB self size before interaction, which is disproportionate for the initial score-list surface. F31 medium: Initial memory footprint is disproportionate |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Across 20 repeated search cycles, live DOM count remained 7,686 after the first state transition and heap growth flattened, providing no signal of accumulating nodes or listeners in that flow. |
Provenance
Canonical report: results/atomic/reports/0135-www_sofascore_com.json
Report SHA-256: ed4a0a162cb8695ea49737f3fedd7f78869421efdbf9ccf7a61b97e2abade7c6
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_sofascore_com/2026-07-18T16-03-51-302Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_sofascore_com/2026-07-18T16-03-51-302Z
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.