Toegankelijkheid
Hoe we bouwen voor toetsenbord-, schermlezer-, slechtziende en gebruikers met beperkte technologie. Een eerlijke, gedateerde momentopname.
Formele toegankelijkheidsverklaring
- Nagestreefd standaard
- WCAG 2.2 AA over de gehele ervaring. AAA-behandeling op focusweergave (dikke rings met hoog contrast, niet verborgen) en op formulieretiketten + foutherstel. Bijgehouden ten opzichte van de W3C-aanbeveling, niet een parafrase.
- Laatste interne audit
- 2026-04-19. Handmatige controle door ons eigen team van de homepage, print-size, de /standards/ hub + 9 autoriteitspagina's en de 45 betalingsschema-landingspagina's.
- Externe audit
- Opgedragen, rapport in behandeling. Publicatie bij aankomst op /accessibility/audit/ met herstelnotities, tekortkomingen intact, geen selectieve presentatie.
- Hertestfrequentie
- Maandelijkse steekproef + volledige handmatige controle na elke grote UI-wijziging. Geautomatiseerde controles (contrastlinting, WCAG 2.2 nieuwe-criteria-scan) draaien bij elke deploy.
- Contact + SLA
- hello@abundera.ai, we bevestigen toegankelijkheidsrapporten binnen 2 werkdagen, triageren binnen 5, en behandelen toetsenbord- / schermlezer- / cognitieve blokkers als prioriteitsproblemen (worden vóór functiewerk verzonden).
WCAG 2.2 AA-conformiteit per succescriterium
De nieuwe-in-2.2-criteria die we actief volgen. Status weerspiegelt wat we intern hebben geverifieerd; de externe audit zal dit vervangen.
| SC | Criterium | Niveau | Status |
|---|---|---|---|
| 2.4.11 | Focus niet verborgen (Minimum) | AA | Geslaagd, focusring altijd zichtbaar, niet verborgen onder vaste headers |
| 2.4.12 | Focus niet verborgen (Verbeterd) | AAA | Geslaagd op het generatoroppervlak; sommige lades hebben korte overlapping tijdens animatie |
| 2.4.13 | Focusweergave | AAA | Geslaagd, 3 px omtrek + 2 px offset + box-shadow backup op elke achtergrond |
| 2.5.7 | Sleepbewegingen | AA | Geslaagd, geen essentiële sleep-only interacties; de visitekaartjesontwerper biedt toetsenbordalternatieven voor elk slepen |
| 2.5.8 | Doelgrootte (Minimum) | AA | Geslaagd, minimum van 24×24 CSS px geverifieerd op elk interactief doel; de meeste op 28×28 of 40×40 |
| 3.2.6 | Consistente hulp | A | Geslaagd, hulp / contact verschijnt op dezelfde plek op elke pagina (footer + nav) |
| 3.3.7 | Redundante invoer | A | Geslaagd, geen formulier vereist het opnieuw invoeren van gegevens die de gebruiker al in dezelfde sessie heeft verstrekt |
| 3.3.8 | Toegankelijke authenticatie (Minimum) | AA | N/A, geen cognitieve functietests; Abundera QR vereist geen login |
Ondersteuning voor beweging en geforceerde kleuren
- prefers-reduced-motion: reduce, omgevingsbol zweven en fade-in overgangen worden onderdrukt. Functionele overgangen blijven kort. Geverifieerd met macOS Reduce Motion en Windows "Animaties weergeven" uitgeschakeld.
- forced-colors: active (Windows Hoog contrast modus), focusringen gebruiken de systeem Highlight kleur; randen erven systeem CanvasText. Geverifieerd in Edge op Windows 11 High Contrast.
Bekende beperkingen
- JAWS nog niet getest. De volgende AT-ronde richt zich op JAWS in Edge op Windows 11.
- De Visitekaartjesontwerper is muis-first van ontwerp voor de sleeppreview. Elk besturingselement heeft een toetsenbordoptie, maar de live-feedbacklus is nog steeds visueel.
- Het externe auditrapport is in behandeling. De zelf-bevestigde status in de bovenstaande tabel wordt vervangen door de bevindingen van de auditor wanneer het rapport arriveert.
- Sommige hulptechnologieën van derden (Dragon NaturallySpeaking, spraak-naar-tekst op Android) zijn niet in onze regressiematrix; we accepteren gemeenschapsrapporten en lossen per ticket op.
Toegankelijkheids-changelog
- 2026-04-19 (PM), TalkBack live-regio dubbele activering opgelost:
aria-live="polite"verwijderd uit de#qr-previewwrapper; aankondigingen komen nu alleen van de scanbaarheids-role="status"badge, eenmaal per generatie. BCD-modaal: kleurenkiezers kregen juiste<label for>bindingen; preset-grid-container kreegrole="group"+aria-label. Toegankelijkheidstabellen kregen<caption>+scope="col"/"row". - 2026-04-19 (AM), Focusindicatoren opgewaardeerd (3 px + box-shadow backup). forced-colors + prefers-reduced-motion ondersteuning toegevoegd. Doelgrootte-audit:
.saved-profile-delete,.type-search-clear,.compat-toggle-btnverhoogd naar ≥ 28 px. Kopniveausprong opgelost (vCard/MECARD subkoppen h4 → h3). Formele WCAG 2.2 AA-verklaring + AT-matrix gepubliceerd. - 2026-04-18, Handmatige WCAG 2.2 AA basislijncontrole gedocumenteerd. Vier-pijler vertrouwensstrook samengevouwen voor schonere hiërarchie.
- 2026-03-08, Initiële /accessibility/ pagina gepubliceerd.
Onze toezeggingen
- Volledige toetsenbordnavigatie. Elk generatorbesturingselement, elk modaal en elke exportstroom is bereikbaar zonder muis.
- Zichtbare focusstatussen. Gefocuste invoervelden, knoppen en links tonen een duidelijke ring. We vertrouwen niet alleen op kleur.
- Labels op elk veld. Formulierinvoeren hebben bijbehorende
<label>elementen ofaria-labelattributen. Plaatshoudertext wordt nooit als enige label gebruikt. - ARIA live-regio's voor de QR-preview en toasts. Schermlezers horen "QR gegenereerd" en toastberichten wanneer ze worden geactiveerd, niet pas wanneer de focus er naartoe gaat.
- Tekstalternatieven voor pictogram-only knoppen.
aria-labelop elke SVG-only knop. - Kleuronafhankelijke statusbetekenis. Scanbaarheids-badges en compatibiliteitschips koppelen kleur aan een glief en tekstlabel.
- Expliciete exportformatnamen. Downloadknoppen zeggen "PNG downloaden", "SVG downloaden" enz., niet alleen "Downloaden".
- Grote mobiele taptargets. Interactieve elementen zijn minimaal 44 × 44 CSS-pixels op grove aanwijzers, conform WCAG 2.5.8.
- Respect voor verminderde beweging. Overgangen zijn uitgeschakeld onder
prefers-reduced-motion: reduce.
Waar we nog tekortkomingen hebben
- JAWS nog niet getest. JAWS-licentie verworven, testslot gereserveerd voor de volgende AT-ronde. Alle andere hoofdproducten (VoiceOver macOS + iOS, NVDA, Narrator, TalkBack) hebben de recentste regressie doorstaan.
- De Visitekaartjesontwerper is qua ontwerp muis-intensief (slepen, canvas-preview). Toetsenbordopties bestaan voor elk besturingselement maar de live-preview feedbacklus is nog steeds visueel-first. Kleurbesturingselementen gebruiken nu juiste
<label for>bindingen +role="group"op de preset-kiezer (2026-04-19). - Complexe generatorstromen (batch-CSV, meerstappenwizard) kunnen een betere sla-linkstructuur gebruiken. Gepland.
- Beschrijvende tabelsamenvatingen. Toegankelijkheids- + compatibiliteitstabellen hebben nu
<caption>+scopeattributen (2026-04-19). Langere rij-niveau narratieve samenvattingen voor elke rij zijn nog gepland.
Ondersteuningsmatrix hulptechnologie
Ingenieursbijdrage, geen PR-verklaring. Elke rij is een echte browser + AT + platformcombinatie die we fysiek in handen hebben gehad. Status weerspiegelt de meest recente handmatige controle; kanttekeningen registreren alles wat nog een volledige controle blokkeert.
| Browser | AT | Platform | Laatste geslaagd | Status | Bekende kanttekeningen |
|---|---|---|---|---|---|
| Safari | VoiceOver | macOS 15 | 2026-04-19 | Geslaagd | Opdrachtenpaletlijst "Shortcuts" leest items tweemaal wanneer het palet voor het eerst opent; cosmetisch, niet blokkerend |
| Safari | VoiceOver | iOS 18 | 2026-04-19 | Geslaagd | Rotor herschikt dynamisch ingevoegde chips; herannouncement bij interactie herstelt de volgorde |
| Firefox | NVDA | Windows 11 | 2026-04-19 | Geslaagd | , |
| Chrome | NVDA | Windows 11 | 2026-04-19 | Geslaagd | , |
| Chrome | ChromeVox | ChromeOS 128 | 2026-03-30 | Steekproefsgewijs gecontroleerd | Volledige regressie achterstallig; opnieuw in de wachtrij voor volgende release |
| Chrome | TalkBack | Android 14 | 2026-04-19 | Geslaagd | Live-regio dubbele activering op QR-preview opgelost 2026-04-19: aria-live verwijderd uit de preview-wrapper; aankondigingen komen nu alleen van de scanbaarheids-role="status" badge, eenmaal per generatie. |
| Edge | Narrator | Windows 11 | 2026-04-12 | Geslaagd | Geforceerde-kleuren-modus (nieuw in deze release): focusringen OK, maar sommige chipgrenzen worden transparant, in de wachtrij |
| Safari | JAWS | Windows 11 | , | Niet getest | Gepland voor volgende AT-ronde; JAWS-licentie verworven, testslot gereserveerd |
| Any | Dragon NaturallySpeaking | Windows 11 | , | Niet getest | Gemeenschapsrapporten accepteren; per ticket oplossen totdat een speciale regressie arriveert |
Toetsenbordkaart
- Tab / Shift+Tab: vooruit / achteruit door focusbare elementen.
- Enter / Spatie: knoppen en schakelaars activeren.
- Pijltoetsen: tussen opties bewegen in een radiogroep (typeselect, sjabloonkiezer, tabbalk).
- Escape: modalen sluiten (Visitekaartjesontwerper, preflight, printdiensten, afbeelding bijsnijden).
- Home / End in een overloopmenu naar het eerste / laatste item springen.
Interne audit, 2026-04-19
Handmatige WCAG 2.2 AA-controle van de homepage, /print-size/, de nieuwe /standards/ hub + 9 autoriteitspagina's en de 45 betalingsschema-landingspagina's (die het gedeelde sjabloon erven). Wat we geverifieerd hebben, wat we opgelost hebben en wat open staat:
Geverifieerd als geslaagd
- Sla-linkdoel bestaat, de sla-link (
href="#generator") verwijst naar een zichtbaar element op elke paginavariant. - Focus-zichtbare stijlen,
:focus-visibleglobaal gedeclareerd met een 2px-omtrek, plus per-invoer-overrides met een gekleurde rand + schaduw. Bevestigd via CSS-audit op regels 34 en 88 vansite/css/style.c17bfd85.css. - Alle formulierinvoeren hebben labels, elk
<input>/<select>/<textarea>in de generator heeft een expliciete<label for="...">of een omringende<label>. Plaatshouder-als-label wordt nergens gebruikt. - Knoppen hebben toegankelijke namen, elke
<button>heeft tekstinhoud of eenaria-label. SVG-only knoppen (hamburger, delen, installeren) dragen allemaalaria-label. - Decoratieve SVG's als verborgen gemarkeerd,
aria-hidden="true"op elk decoratief pictogram zodat schermlezers ze overslaan in plaats van hun geometrie aan te kondigen. - Correcte ARIA-rollen,
role="radiogroup"op de typeselect metrole="radio"+aria-checkedop elke optie;role="tablist"/role="tab"+aria-selectedop de paneeltabs. - Tekstcontrast, primaire tekst is
#f5f5f5op#08090a(≈ 17:1, WCAG AAA). Gedempte tekst#a3a3a3op dezelfde achtergrond is ≈ 8:1 (boven AAA 7:1). - Taalwisselaar heeft
aria-label="Language"ook al is het zichtbare label impliciet.
Opgelost in deze controle
- Kopniveausprong, drie subkoppen in de vCard / MECARD extra-velden-secties waren
<h4>onder een<h2>zonder tussenliggend<h3>. Schermlezer-overzichtstools markeerden dit als "overgeslagen niveau". Gewijzigd naar<h3>zodat het overzicht h1 → h2 → h3 → h3 schoon leest.
Bekende beperkingen
- Volledige Axe / NVDA / VoiceOver-sweep vereist een browser + AT die we niet vanuit de bouwpijplijn kunnen uitvoeren. Maandelijkse handmatige browsergebaseerde controle gepland.
- Onafhankelijke audit door derden is opgedragen (zie tijdelijke aanduiding /accessibility/audit/). Rapport wordt bij aankomst gepubliceerd ook als het bevindingen bevat.
- Het "/" toetsenbordsnelkoppeling voor het opdrachtenpalet is een gering botsingsrisico op pagina's met zoekvelden. We gebruiken preventDefault() alleen wanneer de focus buiten een invoer is; gedocumenteerd maar nog niet geauditeerd met AT.
Een probleem melden
Als iets niet bereikbaar is met het toetsenbord, verkeerd is gelabeld of anderszins onbruikbaar is met uw opstelling, stuur dan een e-mail naar hello@abundera.ai. Vermeld uw browser, besturingssysteem, AT en de specifieke stroom. We behandelen toegankelijkheidsbugs als prioriteitsproblemen.