# iOS-app — tilgjengelighet sjekkliste (WCAG 2.2 AA) WCAG 2.2 ble W3C Recommendation 2023-10-05. Den la til 9 nye suksesskriterier vs 2.1 og fjernet 4.1.1 Parsing (obsolet). Denne sjekklisten dekker AA-nivå. Sub-sjekkliste av `checklist.md`. ([W3C — What's New in WCAG 2.2](https://www.w3.org/WAI/standards-guidelines/wcag/new-in-22/)) > WCAG er skrevet for web, men kriteriene mapper godt til native iOS via UIKit/SwiftUI Accessibility (VoiceOver, Dynamic Type, kontrast, fokus-orden). Der et kriterium er web-spesifikt, bruk dets *intensjon*. ## Nye i WCAG 2.2 — Level AA (de 4 som faktisk er nye krav på AA) - [ ] **2.4.11 Focus Not Obscured (Minimum) [AA, ny]** — når et element får tastatur-/fokus, er det ikke fullstendig skjult av annet innhold (sticky headers, overlays, tastatur). iOS: pass på at fokusert felt scrolles synlig over tastaturet. - [ ] **2.5.7 Dragging Movements [AA, ny]** — all funksjonalitet som krever dra-bevegelse har et enkelt-peker-alternativ uten dra (f.eks. knapper i tillegg til drag-to-reorder), med mindre dra er essensielt. - [ ] **2.5.8 Target Size (Minimum) [AA, ny]** — interaktive mål er minst 24×24 CSS-px (eller har tilstrekkelig avstand). iOS HIG anbefaler 44×44 pt — følg HIG, så er dette dekket. - [ ] **3.3.8 Accessible Authentication (Minimum) [AA, ny]** — ingen kognitiv funksjonstest (huske passord, løse puslespill, transkribere) som eneste vei gjennom et autentiserings-steg; tillat lim-inn, passord-managers, Sign in with Apple/passkeys, e-post-/SMS-kode. (Relevant kun hvis appen har auth.) > Også nye i 2.2, men Level A (ta med hvis du sikter A som baseline): **3.2.6 Consistent Help [A]** — hjelpe-mekanismer i konsistent rekkefølge; **3.3.7 Redundant Entry [A]** — ikke be om samme info to ganger i samme prosess uten å auto-fylle. > Level AAA (utenfor AA-kravet): 2.4.12 Focus Not Obscured (Enhanced), 2.4.13 Focus Appearance, 3.3.9 Accessible Authentication (Enhanced). ## Bærende WCAG 2.0/2.1 AA-kriterier (videreført — sjekk alltid) - [ ] **1.1.1 Non-text Content [A]** — alle ikoner/bilder/knapper har `accessibilityLabel`; dekorative er `accessibilityHidden`. - [ ] **1.3.1 Info and Relationships [A]** — overskrifter/grupper/lister eksponert via accessibility traits; skjemafelt har labels. - [ ] **1.4.3 Contrast (Minimum) [AA]** — tekst ≥ 4.5:1 (stor tekst ≥ 3:1) mot bakgrunn — **også over Liquid Glass-materialer** (translucens kan senke effektiv kontrast; test mot reelle bakgrunner). - [ ] **1.4.11 Non-text Contrast [AA]** — UI-komponenter og grafiske grenser ≥ 3:1. - [ ] **1.4.4 Resize Text [AA] / 1.4.10 Reflow [AA]** — støtt Dynamic Type opp til største størrelse uten avkutting/horisontal scroll; bruk `.dynamicTypeSize` / skalérbare fonter, ikke faste px. - [ ] **1.4.13 Content on Hover or Focus [AA]** — popovers/tooltips er dismissible, hoverbare, persistente. - [ ] **2.1.1 Keyboard [A]** — full funksjon med ekstern tastatur / Full Keyboard Access; ingen fokus-felle (2.1.2). - [ ] **2.4.3 Focus Order [A] / 2.4.7 Focus Visible [AA]** — logisk fokus-orden; synlig fokus-indikator. - [ ] **2.4.6 Headings and Labels [AA]** — beskrivende overskrifter og labels. - [ ] **2.5.3 Label in Name [A]** — synlig tekst på en kontroll er del av dens accessibility-navn. - [ ] **3.1.1 Language of Page [A]** — app-språk satt korrekt (lokalisering). - [ ] **3.2.3 Consistent Navigation [AA] / 3.2.4 Consistent Identification [AA]** — navigasjon og ikon-betydning konsistent på tvers av skjermer. - [ ] **3.3.1 Error Identification [A] / 3.3.3 Error Suggestion [AA]** — feil beskrives i tekst, ikke bare farge; forslag til retting der mulig. - [ ] **4.1.2 Name, Role, Value [A]** — custom-kontroller eksponerer korrekt rolle/verdi til VoiceOver (`accessibilityTraits`, `accessibilityValue`). - [ ] **4.1.3 Status Messages [AA]** — dynamiske statusoppdateringer annonseres (`UIAccessibility.post(notification: .announcement)` / SwiftUI `accessibilityElement` + live region-ekvivalent). - [ ] **2.3.1 Three Flashes [A]** — ingen blink > 3 Hz; respekter Reduce Motion. ## iOS-spesifikk røyktest - [ ] Naviger hele appen med **VoiceOver** — alt er nåbart, navngitt, i logisk rekkefølge. - [ ] **Dynamic Type** på største størrelse — ingen avkutting, ingen overlapp. - [ ] **Reduce Motion / Reduce Transparency** respektert (særlig viktig med Liquid Glass). - [ ] **Increase Contrast** og dark mode — kontrast holder. - [ ] Fargen er aldri eneste informasjonsbærer.