Ongeldige ARIA-rol
Silktide controleert elk role-attribuut op je pagina's aan de hand van de lijst met rollen die de ARIA-standaard definieert. Een rol die verkeerd gespeld, verzonnen of leeg is, of die gereserveerd is voor intern gebruik, wordt door browsers stilzwijgend genegeerd. Daardoor bereikt de bedoelde betekenis van het element nooit de mensen die ervan afhankelijk zijn.
<!-- Probleem: "buton" is geen echte rol, dus deze div blijft betekenisloos -->
<div role="buton" tabindex="0">Save</div>
<!-- Oplossing: gebruik een geldige rol (of, nog beter, een echt button-element) -->
<button>Save</button>
Waarom dit belangrijk is
Een -rol vertelt wat een element is: een knop, een tabblad of een dialoogvenster. Wanneer de rol ongeldig is, negeren browsers deze: een gebruiker van een hoort platte tekst waar de auteur een bedieningselement bedoelde en heeft mogelijk geen manier om te weten dat er interactie met het element mogelijk is. Omdat de pagina er voor ziende muisgebruikers normaal uitziet en normaal werkt, blijven deze fouten onopgemerkt zonder testen.
Hoe je dit oplost
- Corrigeer typefouten zodat de rol overeenkomt met een echte ARIA-rol (volledige lijst); bijvoorbeeld
role="navigation"en nietrole="nav". - Vervang abstracte rollen (
widget,composite,landmark,sectionen vergelijkbare rollen) door een concrete rol. Abstracte rollen bestaan alleen om de standaard te structureren en mogen niet op pagina's worden gebruikt. - Verwijder lege
role=""-attributen. - Wanneer een native -element de juiste betekenis heeft (
<button>,<nav>,<main>), gebruik dit dan bij voorkeur en verwijder hetrole-attribuut volledig.
Hoe Silktide dit controleert
- Zoek elk element op de pagina met een
role-attribuut. - Rapporteer lege rolwaarden.
- Controleer elk woord in de rolwaarde aan de hand van de rollen die zijn gedefinieerd door ARIA 1.2. Rollen uit de extensies voor digitale publicaties (
doc-) en grafische elementen (graphics-) worden geaccepteerd. - Rapporteer woorden die met geen enkele gedefinieerde rol overeenkomen en woorden die een abstracte rol aanduiden.
Problemen oplossen
De rol bevat meerdere woorden
Een role-attribuut kan meerdere rollen als terugvalopties bevatten; browsers gebruiken de eerste rol die ze herkennen. Silktide rapporteert elk ongeldig of abstract woord in de lijst, zodat je ook de terugvalopties kunt opschonen.
Deze controle rapporteert niets, hoewel ik resultaten verwacht
ARIA-tests kunnen per website worden uitgeschakeld. Controleer de geavanceerde instellingen voor de website.