Manifest position 658 · CrUX rank bucket 1000
https://www.betpawa.ug
Coverage complete
Atomic coverage complete across 58 checks and seven representative paths.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | pass | high | Light and dark screenshots visibly retint surfaces, cards and text; page startup reads prefers-color-scheme and applies data-theme. |
respect-user-preferencesrespects-reduced-motion | pass | high | Reduced-motion probe matched the preference, found no running animations and found a dedicated media rule disabling pulse/shimmer. |
respect-user-preferencesrespects-contrast | pass | high | The prefers-contrast: more screenshot retained visible text, controls, selected states and separators; Lighthouse normal-mode contrast passed on home. |
implement-natural-interactionsview-transitions | pass | high | Rendered CSS inspection found view-transition rules and the platform probe confirmed View Transition support is used by the stylesheet surface. |
implement-natural-interactionsscroll-driven-animations | pass | high | DOM/CSS inspection found no scroll-linked animation effect and no scroll event-driven animation anti-pattern on the representative views. |
implement-natural-interactionsphysical-gestures | pass | high | Mobile captures show native scrolling and horizontal content rails; CSS uses overscroll behavior rather than a custom pointermove-driven page gesture. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The platform probe found no scroll timeline and the mobile captures show full top and bottom chrome remaining fixed while content space is constrained. F01 low: Persistent chrome does not react to scroll state. |
provide-guided-navigationanchored-positioning | pass | high | CSS inspection found anchor positioning declarations; representative menus and account/navigation chrome remained attached within viewport edges. |
provide-guided-navigationdirects-attention | pass | high | Mobile screenshots show active destinations in green, a clear Back action on event detail, selected market tabs and strong state highlighting. |
maximize-content-reduce-noiseno-intrusive-interruptions | pass | high | Fresh-load screenshots across home, event, casino, join and help show no modal, consent wall or viewport-blocking interruption. |
maximize-content-reduce-noisesemantic-dismissible-primitives | pass | high | DOM inspection found no active modal overlay requiring a custom dismiss mechanism in the audited unauthenticated flows; native select controls are used on registration. |
maximize-content-reduce-noisereduced-chrome | pass | high | Representative mobile views devote the central viewport to event odds, casino games, registration or help; persistent chrome is compact and consistent. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | 360x800 layout metrics reported scrollWidth=clientWidth=360 and horizontalOverflowPx=0; all representative mobile screenshots fit the viewport. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | Rendered CSS inspection found no @container rule or non-normal container type across the representative templates. F02 low: Components rely on viewport breakpoints rather than container-level adaptation. |
adapt-to-the-form-factorinput-modality-aware | issues | high | Lighthouse found 24 target-size failures on home; mobile screenshot shows dense horizontally clipped card carousels and compact icon/navigation targets. F03 high: Many mobile targets are too small or crowded. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Home, event, casino, registration and help screenshots each expose clear headings/content and prominent next actions such as JOIN NOW, odds, games or request support. |
support-core-task-successprimary-flow-completion | pass | low | Unauthenticated navigation reached event detail and registration without dead ends; event markets and the complete labelled account form are present. No real wager/account was submitted. |
support-core-task-successclear-system-state-and-recovery | issues | high | After an empty JOIN NOW submission, the page showed no visible field errors; the probe found only an empty aria-live=assertive paragraph. F04 medium: Registration errors are not visibly actionable after an empty submission. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 7.9s, TBT 1,680ms and performance 47. A separate trace was faster but still recorded 241ms TBT, so throttled-device risk is clear. F05 high: Simulated mobile loading misses the Core Web Vitals performance bar. |
be-fast-and-stablevisual-stability | pass | high | Mobile layout observer measured CLS 0.0006375 and Lighthouse measured 0.003, both in the good range. |
be-fast-and-stableefficient-main-thread | issues | high | Lighthouse measured 3.8s main-thread work and 2.7s JS execution; the trace recorded four long tasks, longest 233ms. F06 high: JavaScript blocks the main thread during startup. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR recorded 160 requests and 13 stylesheets; Lighthouse estimated 340ms render-blocking savings and flagged the network dependency tree. F07 medium: The initial dependency chain is broad and includes avoidable blocking work. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | HAR transferred 1.05MB across 87 script requests. Lighthouse estimated 409KiB unused JavaScript and flagged 32KiB legacy code. F08 high: The page ships a large amount of unused and legacy JavaScript. |
be-inclusivenames-roles-labels | issues | high | Lighthouse failed button-name, image-alt, link-name and visible-label/accessibility-name matching checks; image inspection found two images without alt. F09 high: Accessible names are missing on multiple controls and images. |
be-inclusivesufficient-contrast | pass | high | Lighthouse home color-contrast audit passed and dark/light/contrast screenshots retain legible text and controls; join has one isolated contrast failure covered through the broader inclusive findings. |
be-inclusivestructure-and-focus | issues | high | Lighthouse found no main landmark; home has no h1 and the rendered html element has no lang. Help has an h1 but skips through mixed h2/h3 structures. F10 high: Landmark and heading structure is incomplete. |
be-inclusivelegible-text | pass | high | Home, event, casino, join and help screenshots use readable type sizes, clear grouping and no clipped body text at 360px. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Lighthouse reported 24 target-size failures on home and 13 on registration, despite correct viewport scaling. F11 medium: Touch target sizing prevents an inclusive mobile experience. |
follow-best-practicesno-console-errors | pass | high | Lighthouse errors-in-console audit passed on both home and registration with no logged runtime exception. |
follow-best-practicessound-document-and-assets | issues | high | Image inspection found 8 of 15 images without width/height, 8 oversized, and 9 in legacy formats. F12 medium: Many images lack intrinsic dimensions and use inefficient sizing. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse join best-practices scored 77 and reported missing source maps for large first-party JavaScript; home also ships legacy JS. F13 medium: Production diagnostics and browser delivery hygiene are incomplete. |
be-discoverabletitle-and-description | pass | high | Home and registration expose unique descriptive titles and meta descriptions; route DOM inspections show route-specific titles. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | Discoverability capture returned 0% rendered-word coverage, isJsShell=true, and crawler view only says to enable JavaScript, despite robots explicitly permitting crawlers. F14 high: Public content is invisible to crawlers that do not execute JavaScript. |
be-discoverablecanonical-and-indexing-signals | issues | high | A deliberately nonexistent route returned HTTP 200, generated a canonical URL and had no noindex directive, although the visual page says it does not exist. F15 medium: Unknown routes return HTTP 200 with self-canonical URLs. |
be-discoverablestructured-and-shareable-metadata | issues | high | Home provides Open Graph metadata but the recon found no JSON-LD for the organization, sporting events, games or articles. F16 low: Rich public entities lack structured data. |
be-private-and-securesecure-transport-and-headers | issues | high | Headers inspection found no HSTS or nosniff and CSP only defines frame-ancestors; bp_country is not Secure. Referrer-Policy and Permissions-Policy are absent. F17 high: Transport protections and cookie policy are incomplete. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | HAR transferred 382,504 third-party bytes; trackers found GTM, Sentry and Maze across six third-party origins, with GTM accounting for about 355KB. F18 medium: Analytics and research integrations create a sizeable third-party footprint. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | Login probe found current-password but no WebAuthn/PublicKeyCredential/passkey surface; username/mobile field also lacks a username autocomplete token. No permission prompt fired on load. F19 medium: A sensitive account flow relies on passwords without passkey support. |
be-private-and-securedefensive-browser-policies | pass | high | Clickjacking protection is present through CSP frame-ancestors and X-Frame-Options, but missing HSTS/referrer/permissions policy is already recorded under secure transport and headers. |
be-resilientprogressive-enhancement | issues | high | The raw/crawler view contains only an enable-JavaScript notice while the rendered page has 5,006 characters; content coverage is 0%. F20 high: Core public content does not survive without JavaScript. |
be-resilientresilient-runtime-behaviour | pass | high | Event, casino, registration and help loaded without cut-off overlays or broken async states; native selects and fixed navigation remained usable at viewport edges. |
be-resilientoffline-and-installable | issues | high | A manifest and active service worker exist, but service-worker source deletes caches on activation and falls through to a plain fetch when offline, with no offline document. F23 medium: The installable app has no offline fallback. |
be-resilientnetwork-and-http-failure-states | issues | high | The unknown route offers Browse Events, Home and Help, but the server responds 200 and canonicals the nonexistent URL, so clients and caches cannot distinguish failure. F21 medium: The visual 404 recovery is helpful but the HTTP state is misleading. |
be-internationalisedlang-dir-and-logical-properties | issues | high | DOM and Lighthouse both found html lang empty, even though the page declares en-UG hreflang and many country/language variants. F22 high: The document language is missing across localized pages. |
be-internationalisedlocale-aware-data | pass | high | The Uganda variant renders UGX/phone country context and localized English date/time labels consistently across home, event and registration. |
be-internationalisedtime-zone-correctness | pass | low | Displayed event times consistently include day/date context across listing and detail views; no contradictory or ambiguous timezone transition was observed in the representative routes. |
be-trustworthyno-dark-patterns | pass | high | Audited pages expose login/join choices, responsible-gambling and age/licence information, help, terms and privacy links; no forced continuity or disguised control appeared. |
be-trustworthyhumane-error-handling | issues | high | The empty-submit test produced no visible messages and only an empty assertive live region, leaving the user without a clear correction path. F24 medium: Registration validation does not provide clear feedback after submission. |
be-trustworthytrustworthy-input-assistance | issues | high | Join fields for phone, first name, last name and identification number have empty autocomplete; login username is also empty, while only password tokens are set. F25 medium: Account and support forms omit important autocomplete tokens. |
be-trustworthysafe-commercial-and-account-flows | pass | high | Login offers recovery and remember-device choice; footer states licence, minimum age and gambling harm, and account creation does not preselect payment or subscription continuity. |
be-sustainableoptimised-assets | issues | high | Image audit found 8 oversized, 8 below-fold eager, 9 legacy-format and 8 dimensionless images; several 300-400px assets display at 99px. F26 medium: Casino imagery is oversized, eager and often legacy-formatted. |
be-sustainableno-wasteful-work | pass | high | Network/trace evidence shows the page settles after initial data loading with no autoplay media or persistent background animation; the principal waste is already isolated to bundle/third-party budgets. |
be-sustainablethird-party-and-media-budget | issues | high | Third parties transferred 382KB of a 1.36MB load; GTM alone transferred about 355KB across two script endpoints. F27 medium: Third-party scripts consume a disproportionate part of the page budget. |
be-agent-readystructured-agent-capabilities | not-applicable | high | WebMCP exposure is emerging and was not declared as a product goal; this audit treats it as an opportunity, not a failure. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation or generative task was identified where on-device inference is necessary for the core betting experience. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After 10 representative menu toggles, heap changed only +2,109 nodes (+0.20%) and +528,802 bytes (+0.98%); constructor populations were broadly stable, so no unbounded growth was evidenced. |
be-memory-efficientbounded-footprint | issues | high | Heap summary recorded 1,075,130 nodes and 53.85MB self size. After 10 menu toggles growth was modest (+2,109 nodes, +0.53MB), which does not indicate an obvious repeated-interaction leak but confirms a high baseline. F28 medium: The initial JavaScript heap is heavy for a listing page. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | low | Neither heap summary surfaced Detached* constructors among retained-size leaders; repeated toggles produced only modest aggregate growth, giving low-confidence evidence against an accumulating listener/DOM leak. |
Provenance
Canonical report: results/atomic/reports/0658-www_betpawa_ug.json
Report SHA-256: 12ba0751bdb2a2baac10f9ca647aa235ecf07af74a4dbaeaa0029188ef4eda49
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_betpawa_ug/2026-07-22T04-59-15-863Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_betpawa_ug/2026-07-22T04-59-15-863Z
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.