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.

Attempts
1 / 3
Judged checks
58 / 58
Blocked
0
Not run
0
This report has no published overall score. Blocked and not-run checks are not passes. A coverage-complete report means every check has a judged outcome; it does not mean every check passed.

All 58 atomic check outcomes

Principle / checkStatusConfidenceEvidence or reason
respect-user-preferences
respects-color-scheme
passhighDark emulation produced a black body background and light content; the dark probe confirmed prefers-color-scheme matched.
respect-user-preferences
respects-reduced-motion
passhighUnder prefers-reduced-motion: reduce, document.getAnimations() returned zero animations versus three 200 ms animations in the default probes.
respect-user-preferences
respects-contrast
issueshighThe 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-interactions
view-transitions
issueshighStatic 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-interactions
scroll-driven-animations
not-applicablehighNo scroll-linked animation or scrollytelling surface was observed, so there is no scroll-driven motion implementation to assess.
implement-natural-interactions
physical-gestures
passhighThe radar uses MapLibre native pan/zoom behavior plus named Zoom in/out buttons rather than a bespoke pointer-only control.
provide-guided-navigation
scroll-state-aware-chrome
issueshighThe 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-navigation
anchored-positioning
not-applicablehighNo tooltip, transient popover, or edge-positioned menu was observed on the representative paths.
provide-guided-navigation
directs-attention
passhighDescriptive navigation links, visible browser focus outlines, and route-specific headings preserve orientation.
maximize-content-reduce-noise
no-intrusive-interruptions
issueshighDesktop 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-noise
semantic-dismissible-primitives
issueshighDOM 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-noise
reduced-chrome
issueshighRepresentative 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-factor
responsive-no-horizontal-scroll
passhighAll four 360x800 layout captures report 0 px horizontal overflow and include a viewport meta tag.
adapt-to-the-form-factor
component-level-responsiveness
issueshighThe 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-factor
input-modality-aware
issueshighLighthouse 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-success
clear-purpose-and-primary-action
passhighTitles, location search, Sää heading, forecast links, and location-specific conditions make the weather purpose and next action clear.
support-core-task-success
primary-flow-completion
passhighA 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-success
clear-system-state-and-recovery
passhighA 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-stable
good-core-web-vitals
issueshighMobile 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-stable
visual-stability
passhighAll mobile layout captures measured CLS 0.0042 with reserved-width layouts and no horizontal overflow.
be-fast-and-stable
efficient-main-thread
issueshighRadar 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-stable
efficient-resource-delivery
issueshighHAR 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-stable
trim-unused-and-duplicate-code
issueshighLighthouse 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-inclusive
names-roles-labels
issueshighLighthouse 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-inclusive
sufficient-contrast
issueshighLighthouse 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-inclusive
structure-and-focus
issueshighFocus 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-inclusive
legible-text
passhighMobile captures show reflowed text without clipping, and article/forecast content remains readable in a single column.
be-inclusive
zoom-reflow-targets-and-media
issueshighReflow 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-practices
no-console-errors
passhighLighthouse best-practices scored 1.00 on home, forecast, and radar and did not report errors-in-console.
follow-best-practices
sound-document-and-assets
issueshighDocuments 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-practices
browser-platform-hygiene
issueshighRadar 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-discoverable
title-and-description
passhighAll four templates expose unique descriptive titles and non-empty meta descriptions in rendered and raw HTML.
be-discoverable
crawlable-and-mobile-friendly
passhighThe site has a viewport meta, real internal href links, robots.txt allows crawling, and Lighthouse SEO scores 0.92-1.00.
be-discoverable
canonical-and-indexing-signals
issueshighCanonical 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-discoverable
structured-and-shareable-metadata
passhighProbes found 2-4 JSON-LD blocks and Open Graph title, URL, image, and description metadata matching each template.
be-private-and-secure
secure-transport-and-headers
issueshighHTTPS 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-secure
data-minimisation-and-third-parties
issueshighBefore 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-secure
in-context-permissions-and-modern-auth
not-applicablehighNo authentication flow exists on the audited public weather paths, and no browser permission prompt fired on load.
be-private-and-secure
defensive-browser-policies
issueshighHeaders 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-resilient
progressive-enhancement
passhighRaw HTML contains 75-86% of rendered content words across templates, with title, H1, and description present and no JS shell.
be-resilient
resilient-runtime-behaviour
passmediumNative links/forms and MapLibre named zoom controls remained operable after rejecting consent; no overlay clipping was observed.
be-resilient
offline-and-installable
not-applicablehighLive weather and radar data are intrinsically network-dependent; an installable/offline app was not declared as product intent.
be-resilient
network-and-http-failure-states
passhighNo-match search and 404 responses render useful Finnish recovery content rather than blank shells or infinite spinners.
be-internationalised
lang-dir-and-logical-properties
issueshighPages 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-internationalised
locale-aware-data
passhighRendered Finnish dates and decimal formatting (for example Ti 21.7. and 3,6 mm) match the selected Finnish locale.
be-internationalised
time-zone-correctness
passmediumForecast times are tied to an explicit location and rendered consistently across location-specific pages without ambiguous stored timestamps exposed to users.
be-trustworthy
no-dark-patterns
issueshighThe 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-trustworthy
humane-error-handling
passhighAn invalid location search returns a concise, non-blaming Finnish message and invites a more precise query.
be-trustworthy
trustworthy-input-assistance
passhighThe location search has an accessible name and purpose-specific suggestions; no address/payment/account fields requiring autofill tokens are present.
be-trustworthy
safe-commercial-and-account-flows
not-applicablehighNo checkout, subscription, authentication, or account-management flow exists on the representative public paths.
be-sustainable
optimised-assets
issueshighImages 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-sustainable
no-wasteful-work
issueshighOrdinary 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-sustainable
third-party-and-media-budget
issueshighHome 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-ready
structured-agent-capabilities
not-applicablehighNo agent-facing product intent was declared. This emerging capability is an opportunity, not a requirement for this public weather site.
be-agent-ready
on-device-inference
not-applicablehighNo user task on the audited paths clearly requires on-device inference, and no agent/AI intent was declared.
be-memory-efficient
no-leak-under-repeated-interaction
issueshighAfter 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-efficient
bounded-footprint
passmediumThe 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-efficient
no-detached-dom-or-unbounded-listeners
passhighNo 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.