CLAIM
← BACK TO MAP

A11Y · UPDATED AUG 2026

Accessibilitystatement

SpotMyMap aims for practical accessibility on a map-heavy site. We target WCAG 2.2 Level AA for chrome, forms, and HTML pages. We do not claim the interactive canvas map is fully WCAG-conformant - painting ownership on a canvas is a known hard case for screen readers and some motor/keyboard flows.

What works today

  • Skip link - first Tab jumps to #main-content (site header / map or marketing main).
  • HTML Explore list - searchable countries and placements at /explore, with country pages at /country/[id], A–Z landmarks, and map jump links. Letter filters use real ?letter= links (work without JavaScript).
  • Marketing & legal pages - standard headings, focus outlines, and a modest Estonian info page at /et.
  • Dialogs - claim/checkout confirm, company profile, market "other" list, share card, cookie panel, header menu, and streamer playground use focus trap, Escape to close, and focus restore where those components exist.
  • Vision modes - colour-vision filters in the footer (not a substitute for real colour contrast testing).

Canvas map limits (honest)

The home map draws ownership with canvas (and related layers). Country shapes and logos are not exposed as a full DOM tree of named regions. Keyboard zoom/pan and some controls exist, but browsing every painted patch by screen reader is not supported the way a native SVG map with labelled paths would be. That is why Explore exists - use it as the primary non-visual / non-pointer path to countries and rankings. Screen-reader access to painted canvas regions remains a documented limitation (not a near-term claim).

Testing status checklist

Soft-launch engineering status - not a formal conformance claim. Detail lives in docs/A11Y.md.

  • Done (engineering) - skip link + #main-content; Explore HTML list + country pages; dialog focus trap / Escape / restore on known modals; labeled footer nav groups; route smoke tests (npm run test:smoke); optional Playwright a11y smoke when a local server is up.
  • Done (spot checks) - keyboard Tab through marketing chrome and Explore; focus-visible outlines on primary controls; cookie banner keyboard path.
  • Not done / needs humans - full axe or WAVE pass on every route in a deployed environment; VoiceOver / NVDA / TalkBack sessions on claim + Explore; mobile screen-reader claim flow; colour contrast audit with a meter (vision filters ≠ audit); motor / switch-access testing on map chrome.
  • Needs live Cloudflare / ops - production RUM for a11y errors; Access-gated admin/manage checks on real CF; Stripe Checkout accessibility is Stripe-hosted (verify in live test mode).
  • Needs booking - formal third-party WCAG 2.2 AA audit (external). Not scheduled in this wave.

How we test

  • Keyboard: Tab order, skip link, focus-visible outlines, Escape on modals.
  • Route smoke tests for landmarks, Explore, dialog hooks, and country pages (tests/a11y-route-smoke.test.mjs).
  • Occasional Lighthouse accessibility runs on key routes (see docs/PERF-BASELINE.md).

We have not completed a formal third-party WCAG audit. Gaps remain on the canvas map and dense map chrome; HTML alternatives are the supported path for those gaps.

Feedback

Found a barrier? Use the on-site request form on the home page (Requests) and mention "accessibility". We prioritise blockers on claim/checkout and the HTML alternative over decorative map polish.

Related: Explore list · How it works · Privacy · Cookies · Info eesti keeles