WCAG 2.2 AA Compliance
Feature Detail
Description
This feature establishes WCAG 2.2 Level AA as the baseline accessibility standard across every screen, flow, and interactive element in the Meander Mobile App. It covers semantic labelling and ARIA attributes for screen reader support (VoiceOver/JAWS), minimum 4.5:1 text contrast and 3:1 for large text and UI components, scalable typography up to 200%, minimum 24x24 CSS pixel touch targets, full keyboard navigation with visible focus indicators, and non-drag alternatives for any drag-based interactions. It also encodes cognitive accessibility patterns - simple navigation, logical flow, clear error messages with remediation suggestions - required by stroke survivors and other cognitively impaired users.
Sources & reasoning
Section 1.2 mandates WCAG 2.2 AA from day one with explicit requirements (contrast, target size, keyboard nav, drag alternatives). The priority matrix in §4 confirms MUST HAVE / Fase 1 for all five tenants. Phase 1 in §5 maps to the MVP phase name.
-
docs/source/likeperson.md · line 15-25Alle fire organisasjoner har brukere med svært ulike forutsetninger... Appen SKAL oppfylle WCAG 2.2 nivå AA som minimumskrav for alle skjermer og interaksjoner - fra dag én, for alle organisasjoner.
-
docs/source/likeperson.md · line 93Universell utforming / tilgjengelighet (WCAG 2.2 AA) | ✓ | ✓ | ✓ | ✓ | ✓ | MUST HAVE | 1
Analysis
Accessibility is a non-negotiable MVP requirement across all four partner organizations (NHF, Blindeforbundet, HLF, Barnekreftforeningen) because the user base spans people with motor, cognitive, and sensory impairments - including blind users (Blindeforbundet's entire constituency) and stroke survivors (NHF). Failing WCAG 2.2 AA would exclude the primary intended users from the product, invalidating the value proposition entirely and exposing Norse Digital Products to regulatory risk under Norwegian accessibility law. Delivering AA from day one - rather than retrofitting later - avoids costly rework, builds organizational trust, and is a precondition for Bufdir-aligned public-sector adoption.
Implementation requires a Flutter-based a11y primitives library (AppButton, AppTextField, focus-managed navigation widgets) with semantic Semantics nodes and ARIA-equivalent attributes wired through the design token system (colors, typography, spacing, sizing). Touch target sizing and contrast ratios are enforced in the token layer rather than per-screen. An audit service runs CI-time checks (contrast, target size, missing labels) and supports manual VoiceOver/TalkBack test passes per release. Drag interactions in wizards and pickers must ship with tap/keyboard alternatives. Typography scaling up to 200% requires fluid layouts and overflow handling across all screens, not just opt-in ones.
Quality Assurance
Peer Mentor (primary) · Coordinator (same flow)Peer Mentor (Likeperson)
Quick UAT
- Aktiver VoiceOver (iOS) eller TalkBack (Android), logg inn som Likeperson og ĂĄpne Hjem-skjermen.
- Sveip gjennom bunnmenyen (Hjem, Kontakter, Legg til, Arbeid, Varsler) og bekreft at hvert ikon leses opp med navn og rolle.
- Skru av skjermleser, sett systemtekst til 200 % og ĂĄpne Aktivitetsveiviseren fra Legg til-knappen.
- Naviger hele veiviseren (kontakt → dato → tid → varighet → oppsummering) uten å sveipe sidelengs, kun med Tilbake-knapp og vertikal scroll.
- Trykk Lagre og bekreft at bekreftelsesmeldingen annonseres og fokus flyttes tilbake til Hjem.
Quick UAT — Accessibility
-
Aktiver VoiceOver (iOS) eller TalkBack (Android), logg inn som Likeperson og ĂĄpne Hjem-skjermen.
- Screen reader Sideoverskrift 'Hjem' annonseres først; deretter rolleindikator 'Likeperson'.
- Contrast Tekst mot bakgrunn minst 4.5:1; statusfarger ledsages av ikon eller tekst, ikke kun farge.
-
Sveip gjennom bunnmenyen (Hjem, Kontakter, Legg til, Arbeid, Varsler) og bekreft at hvert ikon leses opp med navn og rolle.
- Screen reader Hvert faneikon annonseres som 'Hjem, fane, 1 av 5' osv. med valgt/ikke valgt-status.
- Focus visibility Synlig fokusring rundt aktiv fane; valgt status formidles ikke kun med farge.
- Touch target Hver fane minst 24Ă—24 CSS-piksler, helst 44Ă—44 for komfort.
-
Skru av skjermleser, sett systemtekst til 200 % og ĂĄpne Aktivitetsveiviseren fra Legg til-knappen.
- Touch target Legg til-knappen i bunnmenyen forblir minst 24Ă—24 CSS-piksler ved skalering.
- Zoom Alle skjermbilder forblir brukbare ved 200 % skalering uten horisontal scroll eller avkuttet tekst.
-
Naviger hele veiviseren (kontakt → dato → tid → varighet → oppsummering) uten å sveipe sidelengs, kun med Tilbake-knapp og vertikal scroll.
- Keyboard / focus Tab/piltaster når alle felt i logisk rekkefølge; Tilbake-knapp er første fokuserbare element øverst.
- Focus visibility Synlig fokusring pĂĄ hvert felt; obligatoriske felt har semantisk 'required'-attributt, ikke kun stjerne.
-
Trykk Lagre og bekreft at bekreftelsesmeldingen annonseres og fokus flyttes tilbake til Hjem.
- Focus visibility Fokus settes eksplisitt pĂĄ Hjem-overskriften etter lagring slik at skjermleser-brukere ikke mister kontekst.
- Live region 'Aktivitet lagret.' annonseres via høflig live region uten å avbryte pågående opplesning.
Role Boundaries
3 role(s) must NOT access this feature-
Organization Administrator
Org Admin logger ikke inn i mobilappen i admin-rolle; WCAG-primitivene er ikke synlige som egen funksjon, men gjelder implisitt for admin-portalens egen a11y-kontrakt.
-
Global Administrator
Global Admin har ingen tilgang til mobilapp-skjermene; deep-link til mobilskjermer returnerer no-access-skjerm.
-
Prospective Buyer
Ingen tilgang til mobilappen; salgs-nettstedet har sin egen a11y-hĂĄndtering utenfor denne funksjonens omfang.
Expected End State
Alle skjermer i mobilappen oppfyller WCAG 2.2 AA: semantiske labels, 4.5:1 kontrast, 24Ă—24 px touch targets, synlig fokus, tastaturnavigasjon, 200 % skalering og drag-alternativer. A11y Audit Service rapporterer null kritiske brudd pĂĄ testede skjermer.
Components (3)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.