Ontbrekend vereist ARIA-attribuut
Silktide controleert elementen die een ARIA-rol declareren en verifieert of ze ook de attributen leveren die voor die rol vereist zijn. Sommige rollen zijn zonder hun attributen onbruikbaar, zoals een schuifregelaar die nooit aangeeft op welke waarde deze is ingesteld.
<!-- Probleem: een schuifregelaar moet de huidige waarde beschikbaar maken -->
<div role="slider" tabindex="0"></div>
<!-- Oplossing: geef de vereiste status op -->
<div role="slider" tabindex="0"
aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"></div>
Waarom dit belangrijk is
Een element een -rol geven is een belofte: "dit is een schuifregelaar", "dit is een selectievakje". Rollen zoals deze vereisen statusattributen, omdat de belofte zonder die attributen leeg is: een gebruiker van een komt bij een selectievakje terecht en kan niet zien of het is aangevinkt, of bij een schuifregelaar en kan de waarde of het bereik ervan niet achterhalen. Het besturingselement wordt aangekondigd, kan focus krijgen, maar is onmogelijk te gebruiken.
Zo lost u dit op
- Voeg de attributen toe die de rol vereist en houd ze met een script bijgewerkt wanneer de status van het besturingselement verandert: een statische
aria-checked="false"op een werkend selectievakje is net zo misleidend als helemaal geen attribuut. - Geef de voorkeur aan native -elementen als die beschikbaar zijn:
<input type="checkbox">en<input type="range">maken hun status automatisch beschikbaar, zonder dat u ARIA hoeft te onderhouden.
Zo test Silktide dit
- Zoek elk element op de pagina dat een
role-attribuut declareert. - Zoek de attributen op die ARIA 1.2 voor die rol vereist, bijvoorbeeld: voor
role="checkbox"isaria-checkedvereist en voorrole="slider"isaria-valuenowvereist. - Sla gevallen over waarin het element de status native beschikbaar maakt: een echt selectievakje of keuzerondje bevat de aangevinkte status al, een native
<option>de geselecteerde status, en een schuifregelaar metaria-valuetextmagaria-valuenowweglaten. - Rapporteer elk element waaraan een vereist attribuut ontbreekt.
Problemen oplossen
Een script stelt het attribuut in nadat de pagina is geladen
Silktide controleert de pagina terwijl deze wordt geladen. Als uw widget de statusattributen pas bij de eerste interactie toevoegt, horen gebruikers tot dat moment een besturingselement zonder status. Geef de beginstatus in plaats daarvan al op in de pagina.
Deze controle rapporteert niets, hoewel ik resultaten verwacht
ARIA-tests kunnen per website worden uitgeschakeld. Controleer de geavanceerde instellingen voor de website.