Manifest position 491 · CrUX rank bucket 1000
https://www.foreca.fi
Coverage complete
Coverage-complete representative audit of four templates plus the location-search flow.
All 58 atomic check outcomes
| Principle / check | Status | Confidence | Evidence or reason |
|---|---|---|---|
respect-user-preferencesrespects-color-scheme | pass | high | Dark emulation produced a black body background and light content; the dark probe confirmed prefers-color-scheme matched. |
respect-user-preferencesrespects-reduced-motion | pass | high | Under prefers-reduced-motion: reduce, document.getAnimations() returned zero animations versus three 200 ms animations in the default probes. |
respect-user-preferencesrespects-contrast | issues | high | The prefers-contrast: more screenshot collapsed the consent UI to a logo/loading panel without usable decision controls. F01 high: High-contrast preference breaks the consent decision surface. |
implement-natural-interactionsview-transitions | issues | high | Static CSS inspection found no view-transition rules, and route changes use ordinary document navigation with abrupt swaps. F02 low: Route changes are abrupt and do not use View Transitions. |
implement-natural-interactionsscroll-driven-animations | not-applicable | high | No scroll-linked animation or scrollytelling surface was observed, so there is no scroll-driven motion implementation to assess. |
implement-natural-interactionsphysical-gestures | pass | high | The radar uses MapLibre native pan/zoom behavior plus named Zoom in/out buttons rather than a bespoke pointer-only control. |
provide-guided-navigationscroll-state-aware-chrome | issues | high | The 8,000-9,000 px pages retain static chrome; CSS inspection found no scroll-state query or progress indicator. F03 low: Long pages provide no scroll-state-aware orientation. |
provide-guided-navigationanchored-positioning | not-applicable | high | No tooltip, transient popover, or edge-positioned menu was observed on the representative paths. |
provide-guided-navigationdirects-attention | pass | high | Descriptive navigation links, visible browser focus outlines, and route-specific headings preserve orientation. |
maximize-content-reduce-noiseno-intrusive-interruptions | issues | high | Desktop and 360x800 screenshots show a full-screen consent wall covering all weather content on first load. F04 high: A full-screen consent wall obscures the core weather task on every first load. |
maximize-content-reduce-noisesemantic-dismissible-primitives | issues | high | DOM inspection shows the CMP is a div role=dialog rather than a native dialog; dismissal is wired with custom buttons. F05 medium: The CMP recreates modal behavior with a div role=dialog. |
maximize-content-reduce-noisereduced-chrome | issues | high | Representative pages are 8,092-9,170 px tall and repeat extensive navigation, promos, weather modules, and ad scaffolding around the core forecast. F06 medium: Core forecast content is surrounded by excessive repeated navigation and promotional modules. |
adapt-to-the-form-factorresponsive-no-horizontal-scroll | pass | high | All four 360x800 layout captures report 0 px horizontal overflow and include a viewport meta tag. |
adapt-to-the-form-factorcomponent-level-responsiveness | issues | high | The shipped site CSS contains no @container or container-type signal despite cards/modules reused in main and sidebar contexts. F07 low: Reusable modules rely on viewport layout rather than container-aware adaptation. |
adapt-to-the-form-factorinput-modality-aware | issues | high | Lighthouse target-size failed; forecast date links measure 196x23 px and many navigation links are only 13-19 px high. Focus outlines are visible. F08 medium: Several interactive targets are too short for touch. |
support-core-task-successclear-purpose-and-primary-action | pass | high | Titles, location search, Sää heading, forecast links, and location-specific conditions make the weather purpose and next action clear. |
support-core-task-successprimary-flow-completion | pass | high | A real POST of q=Turku to /search completed with HTTP 200 at /Finland/Turku and a matching Täsmäsää Turku title. |
support-core-task-successclear-system-state-and-recovery | pass | high | A nonsensical search returns a clear Finnish no-results message asking for a more precise query; the 404 route also renders a human-readable state. |
be-fast-and-stablegood-core-web-vitals | issues | high | Mobile Lighthouse measured LCP 9.2-15.5 s across templates; radar TBT was 1,870 ms. CLS remained 0.003. F09 high: Mobile LCP is 9.2-15.5 seconds and radar interaction readiness is poor. |
be-fast-and-stablevisual-stability | pass | high | All mobile layout captures measured CLS 0.0042 with reserved-width layouts and no horizontal overflow. |
be-fast-and-stableefficient-main-thread | issues | high | Radar trace recorded 37 long tasks, 564 ms TBT, and a 153.5 ms longest task; Lighthouse measured 1,870 ms TBT. F10 high: Radar startup blocks the main thread with 37 long tasks. |
be-fast-and-stableefficient-resource-delivery | issues | high | HAR captured 90-209 requests and 1.29-2.06 MB transferred; radar loads four parser-inserted stylesheets and a large map script before its dependency chain completes. F11 medium: Large request graphs and parser-inserted dependencies delay core content. |
be-fast-and-stabletrim-unused-and-duplicate-code | issues | high | Lighthouse estimates 302 KiB unused JS on ordinary pages and 453 KiB on radar, including ad-tech and about 154 KiB of unused glmap code. F12 medium: Pages ship 302-453 KiB of unused JavaScript. |
be-inclusivenames-roles-labels | issues | high | Lighthouse found visible forecast text excluded from aria-label names and two radar images without alt; probes found 13-19 unnamed controls per template. F13 high: Forecast accessible names omit visible values and radar images lack alternatives. |
be-inclusivesufficient-contrast | issues | high | Lighthouse contrast audits failed on every template, including white on #00a5f1 at 2.74:1 and white on #5eb900 at 2.49:1. F14 high: Text contrast fails WCAG minimums across every template. |
be-inclusivestructure-and-focus | issues | high | Focus probes show visible browser outlines, but Lighthouse found invalid heading order (for example H5 forecast dates after higher-level skips). F15 medium: Heading order skips levels in forecast content. |
be-inclusivelegible-text | pass | high | Mobile captures show reflowed text without clipping, and article/forecast content remains readable in a single column. |
be-inclusivezoom-reflow-targets-and-media | issues | high | Reflow succeeds with no horizontal overflow, but Lighthouse target-size fails and the radar has controls/images without complete accessible equivalents. F16 medium: Touch targets and radar equivalents remain incomplete despite good reflow. |
follow-best-practicesno-console-errors | pass | high | Lighthouse best-practices scored 1.00 on home, forecast, and radar and did not report errors-in-console. |
follow-best-practicessound-document-and-assets | issues | high | Documents have HTML5 doctypes and UTF-8, but images audit found 15 missing dimensions, 7 oversized images, 38 below-fold images not lazy-loaded, and 84 legacy-format images. F17 medium: Image delivery has missing dimensions, legacy formats, and oversized assets. |
follow-best-practicesbrowser-platform-hygiene | issues | high | Radar Lighthouse reports a missing source map for the 309 KB glmap bundle; the article run reports DevTools inspector issues. F18 low: The radar bundle lacks a source map and the article logs DevTools issues. |
be-discoverabletitle-and-description | pass | high | All four templates expose unique descriptive titles and non-empty meta descriptions in rendered and raw HTML. |
be-discoverablecrawlable-and-mobile-friendly | pass | high | The site has a viewport meta, real internal href links, robots.txt allows crawling, and Lighthouse SEO scores 0.92-1.00. |
be-discoverablecanonical-and-indexing-signals | issues | high | Canonical URLs and successful status codes are present, but none of the four pages exposes hreflang despite a language selector with many localized variants. F19 medium: Localized variants are not connected with hreflang. |
be-discoverablestructured-and-shareable-metadata | pass | high | Probes found 2-4 JSON-LD blocks and Open Graph title, URL, image, and description metadata matching each template. |
be-private-and-securesecure-transport-and-headers | issues | high | HTTPS is used, but the headers primitive found no CSP or HSTS and cookies audit found three cookies without Secure and all four with SameSite=None. F20 high: Core security headers and secure cookie attributes are missing. |
be-private-and-securedata-minimisation-and-third-parties | issues | high | Before consent, the page contacted 15 third-party origins including DoubleClick, GTM, Clarity, ad-tech and audience services; home transferred 1.01 MB third-party bytes. F21 high: Extensive tracking and ad-tech load before consent. |
be-private-and-securein-context-permissions-and-modern-auth | not-applicable | high | No authentication flow exists on the audited public weather paths, and no browser permission prompt fired on load. |
be-private-and-securedefensive-browser-policies | issues | high | Headers primitive found no clickjacking defense, Referrer-Policy, Permissions-Policy, nosniff, CSP, or HSTS. F22 high: The document lacks clickjacking, referrer, permissions, and XSS defenses. |
be-resilientprogressive-enhancement | pass | high | Raw HTML contains 75-86% of rendered content words across templates, with title, H1, and description present and no JS shell. |
be-resilientresilient-runtime-behaviour | pass | medium | Native links/forms and MapLibre named zoom controls remained operable after rejecting consent; no overlay clipping was observed. |
be-resilientoffline-and-installable | not-applicable | high | Live weather and radar data are intrinsically network-dependent; an installable/offline app was not declared as product intent. |
be-resilientnetwork-and-http-failure-states | pass | high | No-match search and 404 responses render useful Finnish recovery content rather than blank shells or infinite spinners. |
be-internationalisedlang-dir-and-logical-properties | issues | high | Pages correctly set lang=fi, but expose no hreflang and the shipped CSS has no logical-property signals while using many physical left/right declarations. F23 medium: Localized versions lack hreflang and CSS is not writing-mode resilient. |
be-internationalisedlocale-aware-data | pass | high | Rendered Finnish dates and decimal formatting (for example Ti 21.7. and 3,6 mm) match the selected Finnish locale. |
be-internationalisedtime-zone-correctness | pass | medium | Forecast times are tied to an explicit location and rendered consistently across location-specific pages without ambiguous stored timestamps exposed to users. |
be-trustworthyno-dark-patterns | issues | high | The first-load consent wall makes Hyväksy the blue primary action while Estä kaikki is secondary, and tracker requests occur before a choice. F24 high: Consent presentation favors acceptance while trackers load before choice. |
be-trustworthyhumane-error-handling | pass | high | An invalid location search returns a concise, non-blaming Finnish message and invites a more precise query. |
be-trustworthytrustworthy-input-assistance | pass | high | The location search has an accessible name and purpose-specific suggestions; no address/payment/account fields requiring autofill tokens are present. |
be-trustworthysafe-commercial-and-account-flows | not-applicable | high | No checkout, subscription, authentication, or account-management flow exists on the representative public paths. |
be-sustainableoptimised-assets | issues | high | Images audit found 84 legacy images, 38 below-fold images without lazy loading, 13 without srcset, and 7 oversized assets. F25 medium: Most images use legacy delivery and many are not responsive or lazy. |
be-sustainableno-wasteful-work | issues | high | Ordinary pages load roughly 0.8 MB of script and Lighthouse estimates 302 KiB unused; much is advertising/consent code loaded before a user choice. F26 medium: Advertising and consent code creates substantial unused work. |
be-sustainablethird-party-and-media-budget | issues | high | Home transfers 1.01 MB from third parties out of 1.29 MB total; radar transfers 1.45 MB third-party bytes and makes 168 third-party requests. F27 high: Third parties dominate transferred bytes and radar requests. |
be-agent-readystructured-agent-capabilities | not-applicable | high | No agent-facing product intent was declared. This emerging capability is an opportunity, not a requirement for this public weather site. |
be-agent-readyon-device-inference | not-applicable | high | No user task on the audited paths clearly requires on-device inference, and no agent/AI intent was declared. |
be-memory-efficientno-leak-under-repeated-interaction | issues | high | After 10 zoom-in/zoom-out cycles and GC, radar heap self-size rose from 56.7 MB to 75.3 MB (+33%) and node count from 921,761 to 955,233. F28 medium: Radar retained heap grows 33% after repeated zoom cycles. |
be-memory-efficientbounded-footprint | pass | medium | The interactive radar baseline retained 56.7 MB; this is substantial but proportionate to a map/weather-tile application and did not by itself prove unbounded growth. |
be-memory-efficientno-detached-dom-or-unbounded-listeners | pass | high | No Detached* constructor appeared in either top-constructor summary; closure count was essentially stable (73,896 to 73,990) after repeated zoom. |
Provenance
Canonical report: results/atomic/reports/0491-www_foreca_fi.json
Report SHA-256: 52ef55426b127018a7084ec03d1c16524c1d2277e2aa76539926509adabcdde7
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_foreca_fi/2026-07-21T03-37-53-893Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/www_foreca_fi/2026-07-21T03-37-53-893Z
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.