Is je AI-design toegankelijk?

Vaak niet helemaal. AI-tools kiezen lichtgrijze tekst die onder de contrastnorm van WCAG 2.2 zakt (4,5:1 voor gewone tekst, 3:1 voor grote tekst), halen de focusrand weg en vullen alt-teksten met een bestandsnaam of laten ze leeg. Met een contrastmeter en je toetsenbord vind je de meeste fouten zelf, en de reparaties zijn een paar regels CSS en HTML.

Damian Madronal Munoz, oprichter

5 min leestijd

Toegankelijk betekent dat iemand met slecht zicht, zonder muis of met een schermlezer je site kan gebruiken. Een AI-design gaat daarop op vaste plekken mis, en de preview verraadt niets. Hieronder de vier plekken die we het vaakst tegenkomen, per plek een test die je zelf doet en de reparatie in code. Of je wettelijk toegankelijk moet zijn, is een andere vraag; daarover staat onderaan één alinea.

Herken je dit?

  • Grijze tekst op een lichtgrijze achtergrond, of witte tekst op een lichte foto.
  • Je drukt op Tab en ziet niet waar je bent op de pagina.
  • Een menu dat alleen opent als je er met de muis overheen gaat.
  • Afbeeldingen met als alt-tekst hero-1.png, of knoppen met alleen een icoon en geen naam.
  • Formuliervelden met grijze voorbeeldtekst in het veld, maar zonder label erboven.

AI ontwerpt voor de screenshot

Een AI-designtool wordt beoordeeld op hoe het resultaat eruitziet in de preview. Lichtgrijze tekst oogt rustig, dus die kiest hij graag. Een focusrand oogt rommelig, dus haalt hij hem weg met outline: none. Een menu dat opent bij hover werkt prima met een muis, en met een muis wordt de preview bekeken. En alt-teksten schrijft niemand op voor een screenshot, dus vult de tool de bestandsnaam in.

Niemand tabt door een preview. Daarom zie je deze fouten pas als iemand de site echt gebruikt.

Zo test en repareer je het

1. Contrast

WCAG 2.2 vraagt een contrast van minimaal 4,5:1 voor gewone tekst en 3:1 voor grote tekst: vanaf ongeveer 24 pixels, of 18,5 pixels vet. Dat geldt ook voor de voorbeeldtekst in een invoerveld. Knoppen, randen van invoervelden en focusranden moeten 3:1 halen tegen hun achtergrond.

Meten doe je in Chrome. Klik met rechts op de tekst, kies Inspecteren en klik in het stijlenpaneel op het kleurvakje naast color. Je ziet het contrast meteen, met een vinkje of een kruis. Voor losse kleurparen werkt de contrastchecker van WebAIM.

/* voor: 2,5:1 op wit, te licht voor lopende tekst */
.intro { color: #9CA3AF; }   /* Tailwind: text-gray-400 */

/* na: 7,6:1 op wit */
.intro { color: #4B5563; }   /* Tailwind: text-gray-600 */
Hetzelfde grijs, maar donkerder: van onleesbaar naar ruim boven de norm.

Tekst over een foto meet je op de lichtste plek achter de tekst, en op verschillende schermbreedtes. Haalt hij het niet, leg dan een donker vlak achter de tekst in plaats van de tekst een schaduw te geven.

2. Een zichtbare focus

Zoek in de code waar de focusrand wordt weggehaald.

grep -rnE 'outline:\s*(none|0)|focus:outline-none' src/
Vindt elke plek waar de focusrand verdwijnt, in CSS en in Tailwind.

Haal die regels weg en geef de focus een eigen stijl. Met :focus-visible zie je hem alleen bij het toetsenbord, niet bij elke muisklik.

:focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
}

/* een vaste kopbalk mag het element met focus niet afdekken */
html {
  scroll-padding-top: 5rem;
}
Een duidelijke rand bij toetsenbordfocus, en ruimte voor een vaste kopbalk.

Die tweede regel hoort bij een criterium dat in WCAG 2.2 nieuw is: een element met focus mag niet helemaal verdwijnen onder een vaste kopbalk of een cookiemelding. Zet de waarde op de hoogte van je kopbalk.

3. Het toetsenbord

Leg je muis weg en druk op Tab tot je onderaan de pagina bent. Kom je bij elke link en elke knop, in een logische volgorde? Gaat het menu open met Enter, en dicht met Escape?

Een menu dat alleen op hover werkt, krijgt een echte knop die opent bij een klik of een tik, met aria-expanded, zodat een schermlezer weet of het menu open is. Die knop staat uitgewerkt in AI-design kapot op mobiel, want op een telefoon is het hetzelfde probleem. Voor het toetsenbord komt er één ding bij: Escape sluit het menu en zet de focus terug op de knop, zodat niemand halverwege de pagina verdwaalt.

document.addEventListener('keydown', (e) => {
  if (e.key !== 'Escape') return;
  const knop = document.querySelector('button[aria-expanded="true"]');
  if (!knop) return;
  knop.setAttribute('aria-expanded', 'false');
  document.getElementById(knop.getAttribute('aria-controls')).hidden = true;
  knop.focus();
});
Escape sluit het open menu en zet de focus terug op de knop die het opende.

Een div met een klikfunctie vervang je door een button: die is vanzelf met het toetsenbord te bedienen. Maak klikbare elementen minimaal 24 bij 24 pixels, de ondergrens die WCAG 2.2 op niveau AA stelt.

4. Alt-teksten en namen

Een afbeelding die iets vertelt, krijgt een alt-tekst die zegt wat erop staat. Een afbeelding die alleen decoratie is, krijgt een lege alt, zodat een schermlezer hem overslaat. Een knop met alleen een icoon krijgt een naam.

<!-- voor -->
<img src="hero-1.png" alt="hero-1.png">
<button><svg>…</svg></button>
<input type="email" placeholder="E-mailadres">

<!-- na -->
<img src="hero-1.png" alt="Monteur plaatst een warmtepomp tegen de gevel van een rijtjeshuis">
<img src="golf.svg" alt="">
<button aria-label="Menu openen"><svg aria-hidden="true">…</svg></button>
<label for="email">E-mailadres</label>
<input id="email" type="email" autocomplete="email">
Voor: bestandsnamen en een naamloze knop. Na: wat een schermlezer moet voorlezen.

Geef je AI-tool deze regels mee, dan gaat het bij de volgende generatie vaker goed. Zet ze in je prompt, of in een DESIGN.md voor je AI-tools.

Houd je aan WCAG 2.2 niveau AA.
Tekstcontrast minimaal 4,5:1, grote tekst 3:1. Geen lichtgrijze lopende tekst.
Haal de focusrand nooit weg; gebruik :focus-visible met een rand van 3px.
Elk menu werkt met Tab, Enter en Escape. Gebruik button voor alles wat klikbaar is en geen link is.
Elke afbeelding krijgt een alt-tekst die zegt wat erop staat, of alt="" als hij decoratie is.
Elk invoerveld heeft een zichtbaar label.
Toegankelijkheidsregels om aan je designtool mee te geven.

Veelgemaakte fouten

  1. Alleen een automatische test draaien. Lighthouse en vergelijkbare tools vinden een deel van de fouten. Of je site met het toetsenbord te gebruiken is, zien ze niet.
  2. De focusrand weghalen omdat hij lelijk is. Geef hem een stijl die bij je huisstijl past, maar laat hem staan.
  3. Alt-teksten laten genereren zonder ze te lezen. “Afbeelding van een persoon” zegt niets. Wie staat erop, en wat doet hij?
  4. Contrast meten in het ontwerp, niet op de pagina. Tekst over een foto verschuift per schermbreedte, en dan staat hij ineens op het lichtste stuk.

Wanneer je hulp nodig hebt

Of je wettelijk toegankelijk moet zijn, en wat de European Accessibility Act van je bedrijf vraagt, lees je op website toegankelijk maken. Dat is uitleg, geen juridisch advies: laat de vraag of de wet voor jou geldt beoordelen door een jurist.

De technische kant pakken we op bij AI-design laten verbeteren: contrast, focus, toetsenbord en alt-teksten, getest en gerepareerd. Moet je ontwerp nog een website worden, dan zitten deze regels er bij AI-design omzetten naar een echte website vanaf het begin in. Alle gidsen staan in het overzicht van AI-design.

Veelgestelde vragen⁠

Is mijn site toegankelijk als Lighthouse 100 geeft?

Niet per se. Automatische tests vinden te weinig contrast, ontbrekende alt-teksten en velden zonder label. Of je met het toetsenbord door het menu komt en of de volgorde logisch is, test je met de hand.

Mag lichtgrijze tekst als hij klein en onbelangrijk is?

Nee. De norm geldt voor alle tekst die je kunt lezen, ook voor placeholders, bijschriften en kleine lettertjes. Alleen logo’s en tekst in een uitgeschakelde knop vallen erbuiten.

Ben ik verplicht om aan WCAG te voldoen?

Dat hangt af van je bedrijf en van wat je online verkoopt. Laat de wettelijke kant beoordelen door een jurist. Technisch is WCAG 2.2 op niveau AA de gangbare maat om naar te werken.

Kan de AI-tool dit zelf repareren?

Voor een deel. Geef de regels mee in je prompt of je DESIGN.md, en test daarna zelf. Contrast en alt-teksten gaan dan vaak goed. De focusvolgorde en de werking van menu’s moet je zelf nalopen.

Verder lezen⁠

Een ontwerp uit Claude Design, Stitch of Figma Make dat een echte website moet worden, en dat er niet als AI uit mag zien.

Wij maken je ontwerp bruikbaar voor iedereen⁠

De kennismaking is gratis. We reageren binnen één werkdag.