Manifest position 986 · CrUX rank bucket 1000
https://weather.com
Coverage complete
Coverage-complete representative-template audit. Radar rendering did not expose map content in headless Chrome, so map-specific usability was not asserted; all atomic checks were nevertheless judged with other direct evidence.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | issues | high | Screenshots under default and prefers-color-scheme: dark are visually identical: the consent surface and page remain fixed light/white, and the DOM probe found no site dark-theme response. F01 medium: The site does not adapt to the user’s dark colour preference. |
respect-user-preferencesrespects-reduced-motion | pass | high | evaluate under prefers-reduced-motion: reduce found no running animations and scroll-behavior auto. |
respect-user-preferencesrespects-contrast | pass | high | prefers-contrast screenshot retained visible controls/text; Lighthouse accessibility scored 100. |
implement-natural-interactionsview-transitions | issues | high | The comprehensive CSS probe found no view-transition rules even though daily, hourly, 10-day and radar are prominent state/route changes. F02 low: Forecast route and state changes do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | pass | high | CSS probe found no scroll-linked animation, and layout tests captured only content scrolling, so no main-thread scroll animation anti-pattern applies. |
implement-natural-interactionsphysical-gestures | pass | high | Forecast navigation uses native links and native overflow scrolling; no custom pointermove gesture layer was observed. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The DOM/CSS probe found no scroll timeline and the long hourly/10-day templates expose no progress or scroll-aware header state. F03 low: Long forecast pages do not expose scroll-state-aware chrome. |
provide-guided-navigationanchored-positioning | issues | high | The page contains menu/dialog surfaces, while the CSS probe found no anchor-name, position-anchor, or position-try rules. F04 low: Menus and overlays are not built with CSS anchor positioning. |
provide-guided-navigationdirects-attention | pass | high | Forecast tabs expose Today, Hourly, 10-Day and Monthly destinations and preserve clear location context in page titles/headings. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Desktop and mobile load screenshots show a blocking cookie dialog covering the primary weather content; on mobile it consumes nearly the full viewport. Reject all is equally prominent, which avoids a deceptive-choice finding. F05 medium: A first-visit consent dialog obscures the entire forecast until a choice is made. |
maximize-content-reduce-noisesemantic-dismissible-primitives | pass | high | The consent surface is exposed as role=dialog with explicit Accept all, Reject all and settings controls. |
maximize-content-reduce-noisereduced-chrome | issues | high | Rendered today/10-day DOM includes repeated “Advertisement” slots and “Sponsored Content”; the HAR records 78 third-party requests, while core forecast pages devote substantial structure to non-content modules. F06 medium: Advertising and sponsored chrome repeatedly interrupt forecast content. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | All four narrow layout probes reported viewport meta and 0 px horizontal overflow at 360×800. |
adapt-to-the-form-factorcomponent-level-responsiveness | pass | high | CSS probe found a container-query rule; forecast layouts reflowed to 360 px without overflow. |
adapt-to-the-form-factorinput-modality-aware | pass | high | Lighthouse accessibility scored 100 and focus probe showed a 3 px outline or focus ring on sampled primary controls; mobile controls remained operable. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Titles, location context, forecast tabs and current/forecast values make the weather task explicit on today, hourly and 10-day templates. |
support-core-task-successprimary-flow-completion | pass | high | Today, hourly and ten-day forecast destinations loaded complete London forecast data through real links without account gating. |
support-core-task-successclear-system-state-and-recovery | pass | high | Synthetic missing route rendered a clear 404 explanation and recovery links to Video, Maps and Local Weather. |
be-fast-and-stablegood-core-web-vitals | issues | high | Lighthouse measured LCP 12.7 s, CLS 0.146 and TBT 530 ms (performance 45). The first-party trace was better at LCP 2.29 s and TBT 91.5 ms, showing variability but not negating the poor throttled result. F07 high: Lab loading performance misses the Core Web Vitals quality bar. |
be-fast-and-stablevisual-stability | issues | high | Lighthouse measured CLS 0.146, including a 0.135 shift from an animated skeleton; the narrow layout probes were stable after their observation window. F08 medium: Late forecast content causes measurable layout shift. |
be-fast-and-stableefficient-main-thread | issues | high | Lighthouse reports 3.4 s main-thread work, 2.3 s JavaScript execution, and 530 ms TBT; the trace also captured a 141.5 ms long task. F09 high: JavaScript keeps the main thread busy during load. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR captured 143 requests and 2.42 MB transferred, including two document redirects and multiple parser-discovered high-priority scripts; Lighthouse estimates 850 ms redirect waste and reports a 12.7 s LCP without fetchpriority. F10 high: The landing page ships a heavy, redirecting critical path. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimates 779 KiB unused JavaScript and 76 KiB legacy JavaScript. HAR shows 62 scripts and 2.09 MB script transfer, led by Taboola, Google Ads and Rubicon. F11 high: Large unused and legacy JavaScript dominates transfer cost. |
be-inclusivenames-roles-labels | issues | high | Lighthouse details multiple hourly links whose aria-label omits visible label content, and the DOM probe found five links plus several buttons with no text or aria-label. F12 medium: Some interactive controls have incomplete or mismatched accessible names. |
be-inclusivesufficient-contrast | pass | high | Lighthouse accessibility scored 100 and the prefers-contrast capture retained visible text and controls. |
be-inclusivestructure-and-focus | pass | high | Main/nav/header/footer landmarks are present, a skip link appears on the 404 route, and sampled primary controls expose visible focus treatment. |
be-inclusivelegible-text | pass | high | Desktop/mobile captures and forecast DOM show readable text hierarchy and no horizontal clipping at 360 px. |
be-inclusivezoom-reflow-targets-and-media | pass | high | Viewport allows scaling (no maximum-scale/user-scalable=no); all tested templates reflow at 360 px without overflow, and Lighthouse accessibility scored 100. |
follow-best-practicesno-console-errors | issues | high | Lighthouse captured React hydration error #418, FedCM NetworkError and missing en-GB translation messages in the console. F13 medium: The page logs runtime and hydration errors during load. |
follow-best-practicessound-document-and-assets | pass | high | DOM reports html doctype, UTF-8 charset and valid viewport; image probe found dimensions on every img and no oversized rendered img in its sample. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Lighthouse found a large first-party JavaScript chunk without a source map and 24 KiB minification savings. F14 low: Production debugging and asset hygiene is incomplete. |
be-discoverabletitle-and-description | pass | high | Landing, hourly, ten-day, radar and login pages expose unique descriptive titles; landing has a descriptive meta description. |
be-discoverablecrawlable-and-mobile-friendly | issues | high | Lighthouse SEO found the hourly link text “More”; the DOM also includes empty links. The viewport and real hrefs otherwise passed. F15 medium: Some crawlable links use non-descriptive text. |
be-discoverablecanonical-and-indexing-signals | issues | high | Lighthouse reports hreflang="xc-MN" as an unexpected language code. Canonical, robots and sitemap signals were otherwise present and successful. F16 low: One hreflang entry is invalid. |
be-discoverablestructured-and-shareable-metadata | pass | high | Landing DOM contains 3 JSON-LD blocks and 4 Open Graph tags corresponding to visible weather/location content. |
be-private-and-securesecure-transport-and-headers | issues | high | Headers probe found no CSP, X-Content-Type-Options, Referrer-Policy or Permissions-Policy; clickjacking protection was absent. Cookie probe found 15 cookies flagged insecure and extensive SameSite=None use. HTTPS and HSTS passed. F17 high: Core browser security headers and cookie attributes are incomplete. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | Tracker probe found 16 third-party origins and eight known trackers. HAR attributed 78 requests and 1.40 MB to third parties, including Taboola, DoubleClick, Rubicon and Amazon Ads. F18 high: The default page load has a large advertising and tracking footprint. |
be-private-and-securein-context-permissions-and-modern-auth | issues | high | The login DOM contains email/password controls and no WebAuthn/passkey affordance; no permission prompt fired on load. F19 medium: Sign-in exposes password-only authentication with no observed passkey path. |
be-private-and-securedefensive-browser-policies | issues | high | Headers probe found no CSP, X-Content-Type-Options, Referrer-Policy or Permissions-Policy; clickjacking protection was absent. Cookie probe found 15 cookies flagged insecure and extensive SameSite=None use. HTTPS and HSTS passed. F17 high: Core browser security headers and cookie attributes are incomplete. |
be-resilientprogressive-enhancement | pass | high | Discoverability probe found 70% raw/rendered word coverage, with title, H1 and description in server HTML; it is not a JS shell. |
be-resilientresilient-runtime-behaviour | pass | high | Forecast pages stabilised with low post-load CLS in layout probes and the consent dialog remained within both desktop and 360 px viewports. |
be-resilientoffline-and-installable | issues | high | A web app manifest exists, but the runtime probe found no controlling service worker; forecast access therefore has no demonstrated offline fallback. F20 low: The app-like weather experience has no active offline runtime. |
be-resilientnetwork-and-http-failure-states | pass | high | The representative 404 renders a useful explanation and links back to core weather surfaces rather than a blank shell. |
be-internationalisedlang-dir-and-logical-properties | pass | high | Rendered document declares lang=en-GB and dir=ltr; locale navigation offers many language/region variants. |
be-internationalisedlocale-aware-data | pass | high | London forecasts render locale-appropriate “Friday 24 July”, 24-hour time and BST labels across hourly/daily templates. |
be-internationalisedtime-zone-correctness | pass | high | Forecast headings explicitly state BST and all hourly entries progress coherently across the local day boundary. |
be-trustworthyno-dark-patterns | pass | high | Consent offers equally prominent Accept all and Reject all actions plus settings; no confirmshaming or forced account gate was observed. |
be-trustworthyhumane-error-handling | pass | high | Empty login submission leaves both required controls invalid using native constraint validation; labels remain present and no data is lost. |
be-trustworthytrustworthy-input-assistance | issues | high | Login DOM shows both email and password inputs with empty autocomplete attributes; the site-search input explicitly uses autocomplete="off". F21 medium: The sign-in fields omit standard autocomplete tokens. |
be-trustworthysafe-commercial-and-account-flows | issues | high | The login DOM contains email/password controls and no WebAuthn/passkey affordance; no permission prompt fired on load. Login DOM shows both email and password inputs with empty autocomplete attributes; the site-search input explicitly uses autocomplete="off". F19 medium: Sign-in exposes password-only authentication with no observed passkey path. F21 medium: The sign-in fields omit standard autocomplete tokens. |
be-sustainableoptimised-assets | issues | high | Lighthouse reports the 256×256 Storm Radar PNG displayed around 70×70, with about 41 KiB potential savings; the image probe confirms a legacy PNG among otherwise SVG assets. F22 low: A footer raster image is oversized and inefficient. |
be-sustainableno-wasteful-work | issues | high | HAR reports 1.40 MB third-party transfer across 78 requests; the largest scripts are recommendation and ad systems, while Lighthouse identifies their bundles as mostly unused. F23 high: Third-party script cost is disproportionate to the core forecast task. |
be-sustainablethird-party-and-media-budget | issues | high | HAR reports 1.40 MB third-party transfer across 78 requests; the largest scripts are recommendation and ad systems, while Lighthouse identifies their bundles as mostly unused. F23 high: Third-party script cost is disproportionate to the core forecast task. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No declared agent-facing transaction or tool surface was found; emerging WebMCP capability is optional here, while weather content remains machine-readable through server HTML and JSON-LD. |
be-agent-readyon-device-inference | not-applicable | high | No summarisation or generative interaction is offered, so on-device inference has no concrete user task to serve in the audited forecast/account scope. |
be-memory-efficientno-leak-under-repeated-interaction | pass | high | After 10 full-page scroll cycles, heap snapshot node count decreased by 393 and retained size changed only +10,284 bytes; DOM count stayed exactly 1,403. |
be-memory-efficientbounded-footprint | pass | high | Baseline heap summary measured 623,558 nodes and 34.68 MB self size for the script-heavy forecast page; footprint remained stable after interaction. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | Before/after heap constructor summaries show no Detached* population among top constructors; DOM count stayed 1,403 and closures decreased after repeated scroll. |
Provenance
Canonical report: results/atomic/reports/0986-weather_com.json
Report SHA-256: 715234788b4a83edd51ce7d75f5f3433864eb4370b74c998db1bb24a7a95bc3b
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/weather_com/2026-07-24T08-46-49-037Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/weather_com/2026-07-24T08-46-49-037Z
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.