Manifest position 341 · CrUX rank bucket 1000

https://meteofrance.com

Coverage complete

Coverage-complete representative audit of homepage, city forecast, editorial listing, article, search journey, and 404 recovery. Excluded: account/commerce (not present), every city URL (Ajaccio represents the shared forecast template), specialist marine/mountain/beach templates, and destructive or authenticated flows.

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
issueshighDesktop screenshots under light and prefers-color-scheme: dark are pixel-identical, and the computed root colorScheme is “normal”.
F01 medium: The site does not honor the user’s dark color-scheme preference.
respect-user-preferences
respects-reduced-motion
issueshighThe reduced-motion probe confirmed the media query matched while five animations remained running, including four 600ms animations and one 2000ms animation.
F02 medium: Animations continue when reduced motion is requested.
respect-user-preferences
respects-contrast
issueshighThe prefers-contrast: more screenshot is visually unchanged; axe found 23 color-contrast failures.
F03 medium: The interface does not adapt to increased contrast, and existing text contrast failures remain.
implement-natural-interactions
view-transitions
issueshighThe rendered stylesheet probe found no view-transition rules or names across forecast tabs/routes.
F04 low: Forecast state and document changes use abrupt swaps rather than View Transitions.
implement-natural-interactions
scroll-driven-animations
passmediumRendered CSS and trace inspection found no scroll-linked animation, parallax, or scrollytelling effect, so there is no main-thread scroll-animation anti-pattern on the representative paths.
implement-natural-interactions
physical-gestures
passmediumThe forecast map uses native panning/zoom controls and the remaining navigation is link/button based; no custom swipe/pull gesture fought platform scrolling in the inspected paths.
provide-guided-navigation
scroll-state-aware-chrome
issueshighThe homepage is 7,911 CSS pixels tall on mobile, while CSS inspection found no scroll-state or timeline feature and the captured header remains static.
F05 low: Long pages do not expose scroll progress or scroll-state-aware chrome.
provide-guided-navigation
anchored-positioning
issueshighThe DOM contains multiple custom modal/popup containers, while the feature probe found no anchor-name, position-anchor, or position-try usage.
F06 low: Menus and overlay surfaces are manually positioned rather than anchored declaratively.
provide-guided-navigation
directs-attention
passmediumScreenshots show a strong pink active forecast tab, breadcrumbs on city detail, descriptive navigation labels, and direct search suggestions that preserve orientation.
maximize-content-reduce-noise
no-intrusive-interruptions
passmediumFresh-profile desktop and mobile screenshots show forecast content immediately with no consent wall or full-viewport interstitial obscuring it.
maximize-content-reduce-noise
semantic-dismissible-primitives
issueshighThe DOM probe found repeated .mf_modal and .modal_overlay divs, zero dialog, popover, or details primitives, and axe found focusable content inside aria-hidden UI.
F07 medium: Overlay UI is implemented as custom div structures rather than semantic dialog/popover primitives.
maximize-content-reduce-noise
reduced-chrome
issueshighThe 360x800 screenshot shows a crowded, partially overlapping bottom carousel/navigation strip with clipped labels over editorial content.
F08 medium: Mobile homepage chrome overlaps and competes with content near the bottom of the first viewport.
adapt-to-the-form-factor
responsive-no-horizontal-scroll
passmediumLayout primitives at 360x800 report scrollWidth=clientWidth=360 on home, city, and listing templates; viewport meta is present.
adapt-to-the-form-factor
component-level-responsiveness
issueshighCSS inspection found no @container rules or container-type declarations across the rendered homepage styles.
F09 low: Reusable components rely on viewport styling rather than container-level adaptation.
adapt-to-the-form-factor
input-modality-aware
issueshighThe focus probe reported outline-style none and no box-shadow for the search input, submit button, menu button, and many navigation links; axe also found non-focusable scroll regions.
F10 high: Keyboard focus is not visibly indicated on important controls.
support-core-task-success
clear-purpose-and-primary-action
passmediumThe first viewport clearly says METEO FRANCE, exposes location search, forecast tabs, a national map, and prominent vigilance status.
support-core-task-success
primary-flow-completion
passmediumTyping Ajaccio exposes a real crawlable Ajaccio result and the destination forecast page loads with location, date tabs, and weather content.
support-core-task-success
clear-system-state-and-recovery
passmediumA nonexistent route renders a branded, explanatory 404 with a return-home action and links to popular city forecasts.
be-fast-and-stable
good-core-web-vitals
issueshighLighthouse measured LCP 24.0s, CLS 0.592, FCP 6.6s and TBT 400ms (performance score 24); the independent trace measured LCP 10.02s.
F11 critical: The primary forecast page loads far outside good Core Web Vitals ranges.
be-fast-and-stable
visual-stability
issueshighThe layout primitive measured CLS 0.465 on the mobile homepage and 0.658 on the Ajaccio page; 60 of 64 images lack explicit dimensions.
F12 high: Late content causes severe layout movement on the forecast templates.
be-fast-and-stable
efficient-main-thread
passmediumThe independent trace recorded one 126ms long task and 76ms TBT, a bounded main-thread result despite broader Lighthouse load problems.
be-fast-and-stable
efficient-resource-delivery
issueshighThe HAR records 2.98 MB across 72 requests, four parser-inserted VeryHigh-priority stylesheets, an uncompressed 716 KB first-party script, and 234 KB uncompressed HTML.
F13 high: Critical delivery is heavy and render-blocked.
be-fast-and-stable
trim-unused-and-duplicate-code
issueshighLighthouse estimated 735,048 bytes of unused JavaScript and 158,107 bytes of unused CSS; third parties transfer another 968,584 bytes.
F14 high: Large amounts of shipped JavaScript and CSS are unused on the initial forecast view.
be-inclusive
names-roles-labels
issueshighaxe found critical missing alt text and unnamed select failures, serious unnamed links and prohibited ARIA, plus aria-hidden focusable content.
F15 high: Controls and visual content have missing or invalid accessible names and roles.
be-inclusive
sufficient-contrast
issueshighaxe found 23 color-contrast failure nodes, including dates and article-card copy.
F16 high: Text contrast fails WCAG AA in repeated editorial content.
be-inclusive
structure-and-focus
issueshighaxe found nested banner/contentinfo/complementary landmarks, two keyboard-inaccessible scrollable regions, and focusable elements inside aria-hidden #sidebar_page; the direct focus probe found invisible focus on key controls.
F17 high: Landmarks, focus handling, and keyboard access are inconsistent.
be-inclusive
legible-text
passmediumDesktop article and mobile listing screenshots show readable line lengths, clear heading scale, unclipped body text, and comfortable card spacing.
be-inclusive
zoom-reflow-targets-and-media
issueshighaxe’s critical meta-viewport rule failed because the viewport prevents text scaling/zooming.
F18 critical: The viewport configuration disables user zoom.
follow-best-practices
no-console-errors
issueshighLighthouse’s errors-in-console audit failed on the homepage.
F19 medium: The production page emits console errors.
follow-best-practices
sound-document-and-assets
issueshighThe image primitive found 60 of 64 images without dimensions, five oversized images, three legacy-format images, and three missing alt values.
F20 medium: Image asset sizing is unsound despite a valid doctype and UTF-8 charset.
follow-best-practices
browser-platform-hygiene
issueshighLighthouse failed valid-source-maps and inspector-issues audits.
F21 low: The page ships broken inspection metadata and browser issues.
be-discoverable
title-and-description
passmediumDOM evidence shows a descriptive homepage title and meta description; the representative article also has a content-specific title and raw meta description.
be-discoverable
crawlable-and-mobile-friendly
issueshighLighthouse failed crawlable-anchors; axe and Lighthouse also failed the meta-viewport zoom audit.
F22 medium: Some links are not crawlable and mobile friendliness is weakened by disabled zoom.
be-discoverable
canonical-and-indexing-signals
passmediumThe homepage returns 200, has a self-canonical and fr hreflang, robots.txt permits public content, and sitemap.xml lists forecast URLs.
be-discoverable
structured-and-shareable-metadata
issueshighThe DOM probe found zero JSON-LD blocks and zero Open Graph tags even though the site contains organization, forecast/place, and article entities.
F23 medium: Rich pages do not expose structured data or social-preview metadata.
be-private-and-secure
secure-transport-and-headers
issueshighThe headers primitive found no CSP, HSTS, nosniff, frame protection, Referrer-Policy, or Permissions-Policy; didomi_token lacks Secure and mfsession uses SameSite=None.
F24 high: HTTPS is used, but baseline security headers and cookie protections are missing.
be-private-and-secure
data-minimisation-and-third-parties
issueshighThe tracker primitive found eight third-party origins including Google Tag Manager and DoubleClick; the HAR attributes 33 requests and 968,584 bytes to third parties.
F25 high: The default page load has a large tracking and advertising footprint.
be-private-and-secure
in-context-permissions-and-modern-auth
passmediumFresh-load screenshots and runtime probes show no geolocation/notification prompt; no authentication surface exists on representative public paths.
be-private-and-secure
defensive-browser-policies
issueshighNo HSTS, frame-ancestors/X-Frame-Options, Referrer-Policy, Permissions-Policy, or CSP was returned for the main document.
F26 high: Browser-enforced defensive policies are absent.
be-resilient
progressive-enhancement
passmediumDiscoverability captures show 85% homepage and 100% article content coverage without JavaScript, with title, H1 and description retained.
be-resilient
resilient-runtime-behaviour
issueshighThe DOM reports multiple custom modal shells as geometrically visible while axe finds aria-hidden focusable content; the mobile screenshot shows overlapping carousel chrome.
F27 medium: Custom hidden/runtime UI has inconsistent visibility and focus state.
be-resilient
offline-and-installable
not-applicablehighMétéo-France is a public, network-current content service rather than an installed web app; installability is not required for the audited forecast journey.
be-resilient
network-and-http-failure-states
passmediumThe tested nonexistent route presents a useful recovery message, home action, and popular destinations instead of a blank shell or infinite spinner.
be-internationalised
lang-dir-and-logical-properties
issueshighThe DOM probe found html lang=fr and dir=ltr, but no logical-property usage and 450 physical left/right declarations in rendered CSS.
F28 medium: The French language is declared correctly, but layout CSS is not writing-mode resilient.
be-internationalised
locale-aware-data
passmediumRendered forecast dates, French weekday/month wording, temperatures, and update text are consistently localized for html lang=fr.
be-internationalised
time-zone-correctness
passmediumThe editorial/forecast content explicitly labels UTC where relevant and location-specific forecast dates remain unambiguous on the Ajaccio path.
be-trustworthy
no-dark-patterns
passmediumInitial desktop/mobile screenshots expose content and vigilance directly, with no confirmshaming, forced continuity, hidden price, or blocking consent choice.
be-trustworthy
humane-error-handling
not-applicablehighThe audited site exposes search/navigation but no data-entry form with required or invalid submission states to validate.
be-trustworthy
trustworthy-input-assistance
passmediumThe search field provides immediate, descriptive Ajaccio place, beach, and marine suggestions that link directly to the corresponding surfaces.
be-trustworthy
safe-commercial-and-account-flows
not-applicablehighNo checkout, subscription, authentication, or account-management flow exists in the representative public surfaces.
be-sustainable
optimised-assets
issueshighOf 64 images, 60 lack dimensions, 39 below-fold images are not lazy-loaded, five are oversized, 12 lack srcset, and three use legacy formats.
F29 medium: Image delivery wastes bytes and creates layout risk.
be-sustainable
no-wasteful-work
issueshighEight third-party origins load on entry; ads, consent, analytics, and wrappers account for 33 requests and 968,584 transferred bytes before user interaction.
F30 medium: Non-essential third-party work consumes substantial resources during initial load.
be-sustainable
third-party-and-media-budget
issueshighThird parties account for roughly one third of the 2.98 MB load, while the homepage also fetches editorial/video-related resources before they enter the viewport.
F31 medium: Third-party scripts and media are disproportionate to the immediate forecast task.
be-agent-ready
structured-agent-capabilities
issueshighRaw HTML coverage is 85% on the homepage and 100% on the article, but the capability probe found no WebMCP/agentic tool registration or structured action surface.
F32 low: Forecast capability is crawler-visible but not exposed as a safe structured agent action.
be-agent-ready
on-device-inference
not-applicablehighNo summarisation or generation task on the audited forecast/content surfaces clearly benefits from on-device inference.
be-memory-efficient
no-leak-under-repeated-interaction
issueslowAfter ten today/tomorrow cycles, the summary grew from 44.7 MB/1,211,243 nodes to 48.0 MB/1,275,325 nodes (about +3.25 MB and +64k nodes). Separate fresh-browser baselines reduce confidence, so this requires retained-path confirmation.
F33 medium: Repeated forecast-tab interaction increases retained heap and node count.
be-memory-efficient
bounded-footprint
issueshighThe baseline heap summary reports 1,211,243 nodes, 4,955,903 edges, 154,521 closures, and 44.7 MB self-size before extended interaction.
F34 medium: The initial page has a large memory footprint for a forecast/content page.
be-memory-efficient
no-detached-dom-or-unbounded-listeners
passmediumNeither readable heap summary lists Detached* constructors among dominant populations after repeated interaction; no direct detached-DOM growth signal was observed.

Provenance

Canonical report: results/atomic/reports/0341-meteofrance_com.json
Report SHA-256: 822f0bb4850a4e4f113770efa84e43ac6b723f2447e0629f6555ffb3a0e036f7
Local retained report: runs/2026-07-17T17-27-24-856Z/atomic-reports/meteofrance_com/2026-07-20T02-01-12-254Z/report.json
Local evidence root: runs/2026-07-17T17-27-24-856Z/atomic-reports/meteofrance_com/2026-07-20T02-01-12-254Z
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.