Manifest position 475 · CrUX rank bucket 1000
https://www.thscore99.com
Coverage complete
Coverage-complete audit of six representative paths. Not covered: authenticated account state, destructive account actions, live notification permission prompts, checkout, and sports/templates that duplicate the audited score-list archetypes.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | The dark-emulated screenshot is pixel-identical to the light screenshot; white score rows and pale chrome remain unchanged. F01 medium: The site ignores the user’s dark color-scheme preference. |
respect-user-preferencesrespects-reduced-motion | issues | high | The reduced-motion probe reports matchMedia reduce=true while the timeMin animation remains running with an infinite iteration count; no reduced-motion CSS was found. F02 medium: The loading animation continues under reduced-motion. |
respect-user-preferencesrespects-contrast | pass | high | Forced-colors/high-contrast screenshot retains visible text, controls, borders and selected states against the black canvas. |
implement-natural-interactionsview-transitions | issues | high | The platform probe found 53 javascript: links and zero View Transition CSS; homepage navigation and score tabs are custom onclick state changes. F03 medium: Navigation is wired as abrupt JavaScript state changes rather than resilient, transition-aware navigation. |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | DOM/CSS probe found no animation-timeline and screenshots show a static scrolling score list. |
implement-natural-interactionsphysical-gestures | not-applicable | high | DOM/CSS and interaction recon found no representative physical gesture to judge. |
provide-guided-navigationscroll-state-aware-chrome | pass | high | Long mobile score pages retain compact primary navigation and a floating filter affordance while content scrolls. |
provide-guided-navigationanchored-positioning | not-applicable | high | DOM probe found no popover/dialog/details and recon found no anchored overlay target. |
provide-guided-navigationdirects-attention | pass | high | Selected score/result tabs and league sub-tabs use persistent contrasting state, and the league detail page clearly changes context. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | The 360px homepage and results screenshots show full-width gambling banners inserted between small score rows, plus a dismissible domain banner above the primary UI. Prominent in-feed banners have empty accessible text; following /ad/1729.html redirects to a LINE add-friend QR page, while banners visibly promote betting/casino products. F04 high: Advertising repeatedly interrupts the score list and dominates the content hierarchy. F23 critical: Unlabelled score-page ads lead to gambling promotion and unrelated QR acquisition. |
maximize-content-reduce-noisesemantic-dismissible-primitives | not-applicable | high | DOM probe found zero dialog, popover, and details elements, and no applicable overlay flow. |
maximize-content-reduce-noisereduced-chrome | issues | high | The 360px homepage and results screenshots show full-width gambling banners inserted between small score rows, plus a dismissible domain banner above the primary UI. F04 high: Advertising repeatedly interrupts the score list and dominates the content hierarchy. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | Mobile layout metrics report scrollWidth=clientWidth=360 with 0 horizontal overflow; home, results and league screenshots reflow to 360px. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The CSS probe found 0 container-query rules and 479 physical left/right declarations; reused score rows and navigation are presented at materially different widths. F05 medium: The complex score UI uses viewport-era physical CSS rather than component responsiveness. |
adapt-to-the-form-factorinput-modality-aware | issues | high | The focus probe reports outline none on active score filters, while Lighthouse fails target-size and the mobile screenshot shows densely packed controls. F06 high: Several primary controls lack visible focus and adequate target treatment. |
support-core-task-successclear-purpose-and-primary-action | pass | high | First viewport immediately presents live scores, sport switching and score status; title and highlighted tab identify the purpose. |
support-core-task-successprimary-flow-completion | pass | high | Home, completed-results and league schedule paths all loaded usable score content without account gating or dead ends. |
support-core-task-successclear-system-state-and-recovery | pass | high | Crawler view exposes a loading state and the unknown route provides a clear Thai error with a prominent return-home action. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 13.0s and TBT 3,890ms (performance 0.30); the CDP trace corroborates LCP 5.39s and 1,968ms total blocking time. F07 critical: The primary score page is very slow and blocks interaction. |
be-fast-and-stablevisual-stability | pass | high | Mobile layout observer measured CLS 0.093, within the good <=0.1 threshold, with reserved banner slots visible in screenshots. |
be-fast-and-stableefficient-main-thread | issues | high | Lighthouse measured LCP 13.0s and TBT 3,890ms (performance 0.30); the CDP trace corroborates LCP 5.39s and 1,968ms total blocking time. HAR shows 10 separate Google tag/gtag payloads among 25 scripts; the trace records six long tasks and 1,968ms blocking time. F07 critical: The primary score page is very slow and blocks interaction. F27 high: Duplicated background analytics performs disproportionate work. |
be-fast-and-stableefficient-resource-delivery | issues | high | The HAR records 99 requests/2.63MB, 25 scripts/1.80MB, 10 grounded render-blocking candidates and 51 third-party requests; Lighthouse estimates 712KiB unused JS and 70KiB unused CSS. F08 high: The load ships render-blocking resources and duplicated heavy analytics code. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | The HAR records 99 requests/2.63MB, 25 scripts/1.80MB, 10 grounded render-blocking candidates and 51 third-party requests; Lighthouse estimates 712KiB unused JS and 70KiB unused CSS. HAR shows 10 separate Google tag/gtag payloads among 25 scripts; the trace records six long tasks and 1,968ms blocking time. F08 high: The load ships render-blocking resources and duplicated heavy analytics code. F27 high: Duplicated background analytics performs disproportionate work. |
be-inclusivenames-roles-labels | issues | high | Lighthouse reports 43 images without alt and 42 links without discernible names; the images primitive independently reports 44 missing alt attributes. F09 high: The page lacks accessible names and alternatives at scale. |
be-inclusivesufficient-contrast | issues | high | Lighthouse reports two foreground/background contrast failures; dense pale metadata is visible in the mobile score screenshots. F12 medium: Some text and controls fail minimum contrast. |
be-inclusivestructure-and-focus | issues | high | The platform probe found zero headings and zero main/nav/header/footer landmarks; Lighthouse fails main-landmark and the focus probe shows outline:none on multiple controls. F10 high: The document has no heading or landmark structure and focus is inconsistently suppressed. |
be-inclusivelegible-text | issues | high | The 360px screenshots pack multiple teams, times and odds into narrow 28–40px rows with very small pale metadata and interleaved banners. F13 medium: Dense score rows compromise reading comfort. |
be-inclusivezoom-reflow-targets-and-media | issues | high | DOM evidence contains maximum-scale=1.0,user-scalable=0; Lighthouse fails meta-viewport and target-size. F11 high: The viewport explicitly prevents user zoom and some targets are too small. |
follow-best-practicesno-console-errors | pass | high | Lighthouse console-errors audit passed; no uncaught exception finding was emitted during the audited load. |
follow-best-practicessound-document-and-assets | issues | high | The images primitive reports 58 images without dimensions, 56 oversized and 77 legacy-format images; Lighthouse corroborates 52 unsized images. F14 medium: Image and document asset hygiene is weak. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse reports two deprecated-API warnings, one BFCache failure reason and one DevTools inspector issue. F15 medium: The page triggers deprecated API, BFCache and inspector issues. |
be-discoverabletitle-and-description | pass | high | DOM has a descriptive Thai title and a detailed meta description on the public homepage. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | The platform probe found 53 javascript: links; Lighthouse fails crawlable-anchors with 10 representative failures and flags robots.txt validity. F16 high: Primary navigation and score actions are not crawlable. |
be-discoverablecanonical-and-indexing-signals | issues | high | Manual fetch returned a sitemap index and canonical URL, but Lighthouse marks robots.txt invalid; robots.txt contains the nonstandard pattern Disallow: *-{$mid}. F17 medium: The robots policy contains an invalid pattern despite otherwise useful sitemap/canonical signals. |
be-discoverablestructured-and-shareable-metadata | pass | high | DOM contains two JSON-LD blocks plus Open Graph and Twitter title, description, image and URL metadata aligned to the score site. |
be-private-and-securesecure-transport-and-headers | issues | high | The headers primitive found no CSP, HSTS, nosniff, frame protection, Referrer-Policy or Permissions-Policy; all 14 observed cookies lack Secure and use SameSite=None. F18 critical: Essential security headers and cookie protections are absent. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | Trackers found 11 third-party origins and four known trackers; HAR attributes 51 requests and 2.25MB to third parties, including about 1.60MB from Google Tag Manager. F19 high: The page loads an excessive tracking and third-party footprint. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | The login screenshot and DOM show email/password plus Google/Facebook login; no WebAuthn/passkey affordance is present. F20 medium: Authentication is password/social-provider only, with no phishing-resistant option. |
be-private-and-securedefensive-browser-policies | issues | high | The headers primitive found no CSP, HSTS, nosniff, frame protection, Referrer-Policy or Permissions-Policy; all 14 observed cookies lack Secure and use SameSite=None. F18 critical: Essential security headers and cookie protections are absent. |
be-resilientprogressive-enhancement | issues | high | Discoverability measured only 52% raw/rendered word overlap; the crawler screenshot shows a permanent “loading data” card while the rendered screenshot contains scores. F21 high: Live-score content is not available without JavaScript. |
be-resilientresilient-runtime-behaviour | pass | high | Home, result and league templates loaded without clipped page-level overlays; the 360px layouts remain within the viewport. |
be-resilientoffline-and-installable | not-applicable | high | Platform probe found no manifest or active service worker; judged contextual rather than a failure for live data. |
be-resilientnetwork-and-http-failure-states | pass | high | Unknown-route testing produced a dedicated, branded error page with a direct return-home control rather than a blank shell. |
be-internationalisedlang-dir-and-logical-properties | issues | high | The document correctly declares lang=th, but the CSS probe found 0 logical-property uses and 479 physical left/right declarations. F22 low: The stylesheet is not prepared for alternate writing directions. |
be-internationalisedlocale-aware-data | pass | high | The Thai document renders Thai-localised competition labels, dates/times and score state consistently across home, results and league paths. |
be-internationalisedtime-zone-correctness | pass | high | The live site sets a zone-offset preference and renders explicit event times consistently across score and league schedule views. |
be-trustworthyno-dark-patterns | issues | high | Prominent in-feed banners have empty accessible text; following /ad/1729.html redirects to a LINE add-friend QR page, while banners visibly promote betting/casino products. F23 critical: Unlabelled score-page ads lead to gambling promotion and unrelated QR acquisition. |
be-trustworthyhumane-error-handling | issues | high | The before and post-submit login screenshots are identical; no required-field guidance or actionable error appears. F24 high: The login form gives no visible feedback after an empty submission. |
be-trustworthytrustworthy-input-assistance | issues | high | Login DOM uses autocomplete="account" and autocomplete="pwd" instead of username and current-password. F25 medium: Login fields use invalid autocomplete tokens. |
be-trustworthysafe-commercial-and-account-flows | pass | high | Login presents reset and registration alongside sign-in, with clearly separated Google/Facebook alternatives and no forced continuation observed. |
be-sustainableoptimised-assets | issues | high | Images evidence reports 56 oversized, 55 below-fold images without lazy loading, 77 legacy-format images and 58 without dimensions. F26 high: The page transfers many unoptimised and eagerly loaded images. |
be-sustainableno-wasteful-work | issues | high | HAR shows 10 separate Google tag/gtag payloads among 25 scripts; the trace records six long tasks and 1,968ms blocking time. F27 high: Duplicated background analytics performs disproportionate work. |
be-sustainablethird-party-and-media-budget | issues | high | Trackers found 11 third-party origins and four known trackers; HAR attributes 51 requests and 2.25MB to third parties, including about 1.60MB from Google Tag Manager. Images evidence reports 56 oversized, 55 below-fold images without lazy loading, 77 legacy-format images and 58 without dimensions. HAR shows 10 separate Google tag/gtag payloads among 25 scripts; the trace records six long tasks and 1,968ms blocking time. F19 high: The page loads an excessive tracking and third-party footprint. F26 high: The page transfers many unoptimised and eagerly loaded images. F27 high: Duplicated background analytics performs disproportionate work. |
be-agent-readystructured-agent-capabilities | not-applicable | high | Recon found no agent tool surface; absence is not penalised under this contextual principle. |
be-agent-readyon-device-inference | not-applicable | high | Recon found no summarisation or generative interaction whose absence harms the core score task. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After 10 alternating sport-tab interactions, heap self-size was 44.3MB versus 43.3MB baseline (+2.3%); key LiveMatch count stayed exactly 229 and native self-size decreased. |
be-memory-efficientbounded-footprint | issues | high | Baseline heap summary contains 706,318 nodes and 43.3MB self size; after repeated tab switching it contains 750,269 nodes and 44.3MB. F28 medium: The initial memory footprint is high for a score listing. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Neither heap summary exposes a Detached* constructor among retained leaders; native node count fell from 340,061 to 329,217 after repeated interaction. |
Provenance
Canonical report: results/atomic/reports/0475-www_thscore99_com.json
Report SHA-256: 636a0b327dc390a4972e1af609c39b04a9cbb9cf4f66679084820f7fed4aadbc
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_thscore99_com/2026-07-21T01-33-19-144Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_thscore99_com/2026-07-21T01-33-19-144Z
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.