Dit is één mogelijke implementatie, er zijn meerdere implementaties mogelijk.
Een accordeon is perfect om veel content compact te presenteren. Het is een verzameling knoppen waarmee je content kunt tonen of verbergen. Met deze toon/verberg-knoppen kunnen gebruikers zelf kiezen welke informatie ze willen zien.
Gebruik een accordeon:
- Bij lange pagina’s met veel informatie (FAQ’s, handleidingen)
- Als je de content logisch kunt opdelen in duidelijk gelabelde secties
- Om gebruikers te laten kiezen welke content ze willen zien
Belangrijke onderdelen:
- Container: Dit is het element waar de accordeon in is opgebouwd.
- Titel: Dit is het label van een sectie. Het is gelijk ook een bedieningselement om de content te tonen of verbergen.
- Paneel: Dit is de sectie met content die hoort bij het label.
Technische opbouw
- (4.1.2) De titel van de accordeon moet een
<button>
-element zijn - (2.4.6) De knop moet een toegankelijke naam hebben hebben die het onderwerp beschrijft
- (4.1.1) De knop moet een uniek
id
hebben - (4.1.1) Elk paneel moet een uniek
id
hebben - (4.1.2) Een uitgevouwen knop moet
aria-expanded="true"
hebben - (4.1.2) Een samengevouwen knop moet
aria-expanded="false"
hebben - (4.1.2) Samengevouwen panelen moeten verborgen zijn (
hidden
ofdisplay: none
) - (1.3.1) Elke knop moet
aria-controls
hebben met hetid
van het bijbehorende paneel - (1.3.1) Elk paneel moet
aria-labelledby
hebben met hetid
van de bijbehorende knop
Optioneel
- (1.3.1) De knop moet in een kop-element staan (
<h1>
t/m<h6>
) - (1.3.1) Voor accordeon groepen: De container moet
role="region"
metaria-label
hebben
Component staten
- (4.1.2) Uitgeschakelde panelen:
disabled
Toetsenbordbediening
- Enter of Spatie:
- Bij een samengevouwen paneel: opent het paneel
- Bij een uitgevouwen paneel: klapt het paneel in
- Als er maar één paneel open mag zijn: sluit het andere paneel
- Tab:
- Gaat naar het volgende focusbare element in de accordeon of zichtbaar paneel
- Shift + Tab:
- Gaat naar het vorige focusbare element in de accordeon of zichtbaar paneel
Optionele toetsen
- Pijltjestoetsen:
- Pijl omlaag: gaat naar de volgende accordeon titel
- Pijl omhoog: gaat naar de vorige accordeon titel
- Home:
- Gaat naar de eerste accordeon titel
- End:
- Gaat naar de laatste accordeon titel
Focus management
- Na het openen van een paneel blijft de focus op de knop
Voorbeeld accordeon
See the Pen Accordeon by Niek (@niekd) on CodePen.
Bronnen
- Accordion Pattern (Sections With Show/Hide Functionality) | APG | WAI | W3C (Engelstalig)
- Collapsible Sections (Engelstalig)
- How do you mark up an accordion? (Engelstalig)