Dit is één mogelijke implementatie, er zijn meerdere implementaties mogelijk.
Carousels zijn populair maar vaak een toegankelijkheidsnachtmerrie. Bewegende content, automatisch afspelen, onduidelijke navigatie: Het kan allemaal fout gaan. Maar het kan ook goed!
De belangrijkste regel: gebruikers moeten de carousel kunnen pauzeren. Bewegende content is voor veel mensen storend of zelfs onmogelijk te lezen. Een pauzeknop is dus een must.
Elke slide moet:
- Een duidelijk label hebben (Slide 1 van 5)
- Met het toetsenbord bereikbaar zijn
- Aangeven welke slide actief is
Technische opbouw
- (4.1.2) De container moet
role="region"
ofrole="group"
hebben - (4.1.2) De region moet een toegankelijke naam hebben die het onderwerp van de carrousel beschrijft
- (4.1.2) Alle knoppen moeten een
<button>
-element zijn - (2.4.6) Alle knoppen moeten een toegankelijke naam hebben die het resultaat van de actie beschrijft
- (4.1.1) Elke slide moet een uniek
id
hebben - (4.1.1) De slides-container moet een uniek
id
hebben - (4.1.2) Elke slide moet
role="group"
hebben - (2.4.6) Elke slide moet een toegankelijke naam hebben die de positie-informatie beschrijft
- (1.3.1) De huidige slide moet
aria-current="slide"
hebben - (1.3.1) De niet-zichtbare slides moeten verborgen zijn (
hidden
ofdisplay: none
) - (4.1.2) De vorige/volgende-knoppen moeten
aria-controls
hebben met hetid
van de slides-container - (4.1.3) Bij automatische rotatie moet de slides-container
aria-live="off"
hebben - (4.1.3) Bij handmatige navigatie moet de slides-container
aria-live="polite"
hebben
Optioneel
- (4.1.2) De carrousel-container moet
aria-roledescription="carousel"
hebben - (4.1.2) Elke slide moet
aria-roledescription="slide"
hebben
Component staten
- (4.1.2) Uitgeschakelde knoppen:
disabled
Toetsenbordbediening
- Tab:
- Gaat naar het volgende focusbare element in de carrousel
- Shift + Tab:
- Gaat naar het vorige focusbare element in de carrousel
Optionele toetsen
- Pijltjestoetsen:
- Pijl recht: gaat naar de volgende slide
- Pijl links: gaat naar de vorige slide
Focus management
- Zet rotation control altijd vóór de slides in tab-volgorde
- De focus mag niet op verborgen slides terechtkomen
Voorbeeld carrousel
See the Pen Carrousel by Niek (@niekd) on CodePen.