aria-controls
Vermeldt het element of de elementen waarvan de aanwezigheid of inhoud door dit bedieningselement wordt bepaald. Veelvoorkomende combinaties: een tab beheert zijn tabpanel, een openbaarmakingsknop beheert een onthulde regio. Ondersteuning door hulptechnologie is wisselend — gebruik spaarzaam.
Wanneer gebruiken
Op een bedieningselement waarvan de activering een ander element op de pagina wijzigt — de canonieke voorbeelden zijn de relatie tab → tabpanel en een openbaarmakingsknop → onthulpaneel. Het vertelt hulptechnologie dat “het bedienen van dit widget invloed heeft op dat element verderop”, waardoor gevorderde gebruikers van het bedieningselement naar het beheerde element kunnen springen.
Gebruik het niet voor elke interactie. De meeste klikafhandelaars hebben aria-controls niet nodig; reserveer het voor gevallen waarbij het beheerde element werkelijk afzonderlijk in de DOM staat en de gebruiker baat heeft bij het kennen van de verbinding.
Werking
De waarde is een spatie-gescheiden lijst van element-ID’s voor het/de beheerde element(en). Het beheerde element moet in de DOM aanwezig zijn op het moment dat de relatie wordt bevraagd — als het tabpanel pas wordt geladen wanneer de tab wordt geactiveerd, is de verwijzing ongeldig voor schermlezergebruikers totdat het paneel verschijnt.
Ondersteuning is het zwakke punt. JAWS biedt een snelkoppeling “ga naar het beheerde element”, maar VoiceOver en NVDA negeren het attribuut grotendeels buiten specifieke patronen (tabs, comboboxen). Dat betekent dat aria-controls zelden de factor is die een functie toegankelijk maakt — het is een verbetering bovenop correcte rollen, focusbeheer en aria-expanded. Bouw het patroon eerst correct; voeg aria-controls als laatste toe.
Veelvoorkomende fouten
aria-controlsbehandelen als vervanging voor het verplaatsen van focus. Een knop “Ga naar resultaten” moet focus verplaatsen bij activering;aria-controlsdoet dat niet.- Verwijzen naar een element dat nog niet in de DOM staat. De verwijzing levert niets op totdat het paneel wordt weergegeven.
- Vergeten ook
aria-expandedin te stellen op een openbaarmakingsknop.aria-controlszegt “ik beïnvloed dat element”;aria-expandedzegt “en het is momenteel open / gesloten”. aria-controlsgebruiken op een aangepaste keuzelijst om naar een optielijst te verwijzen — het juiste patroon daar isrole="combobox"metaria-controlsop het invoerveld enaria-activedescendantvoor de gemarkeerde optie.aria-controlslukraak toevoegen aan elke knop “voor de volledigheid”. Ruis; niets is ervan afhankelijk.
Voorbeeld
<button
type="button"
aria-expanded="false"
aria-controls="faq-1-answer"
>
What is your refund policy?
</button>
<div id="faq-1-answer" hidden>
Refunds are processed within 14 days …
</div>