Manglende påkrævet ARIA-attribut
Silktide tjekker elementer, der angiver en ARIA-rolle, og bekræfter, at de også har de attributter, rollen kræver. Nogle roller kan ikke bruges uden deres attributter, f.eks. en skyder, der aldrig angiver, hvilken værdi den er indstillet til.
<!-- Problem: en skyder skal angive sin aktuelle værdi -->
<div role="slider" tabindex="0"></div>
<!-- Løsning: angiv den påkrævede tilstand -->
<div role="slider" tabindex="0"
aria-valuemin="0" aria-valuemax="100" aria-valuenow="50"></div>
Hvorfor det er vigtigt
At give et element en -rolle er et løfte: "dette er en skyder", "dette er et afkrydsningsfelt". Roller som disse kræver statusattributter, fordi løftet ellers er tomt – en -bruger lander på et afkrydsningsfelt og kan ikke afgøre, om det er markeret, eller på en skyder og kan ikke afgøre dens værdi eller interval. Kontrolelementet annonceres, kan få fokus og er umuligt at bruge.
Sådan løser du det
- Tilføj de attributter, rollen kræver, og hold dem opdateret med script, når
kontrolelementets tilstand ændres – en statisk
aria-checked="false"på et fungerende afkrydsningsfelt er lige så misvisende som slet ingen attribut. - Foretræk oprindelige -elementer, hvor de findes:
<input type="checkbox">og<input type="range">angiver deres tilstand automatisk, uden ARIA, der skal vedligeholdes.
Sådan tjekker Silktide dette
- Find hvert element på siden, der angiver en
role-attribut. - Find de attributter, som ARIA 1.2 kræver for den rolle – f.eks.
kræver
role="checkbox"aria-checked, ogrole="slider"kræveraria-valuenow. - Spring tilfælde over, hvor elementet angiver tilstanden oprindeligt: Et rigtigt afkrydsningsfelt
eller en radioknap har allerede sin markerede tilstand, en oprindelig
<option>har sin valgte tilstand, og en skyder medaria-valuetextkan undladearia-valuenow. - Rapportér hvert element, der mangler en påkrævet attribut.
Fejlfinding
Et script angiver attributten, efter siden er indlæst
Silktide tjekker siden, mens den indlæses. Hvis din widget først tilføjer sine statusattributter ved den første interaktion, hører brugerne et kontrolelement uden tilstand indtil da – gengiv i stedet den oprindelige tilstand på siden.
Dette tjek rapporterer ikke noget, selvom jeg forventer fund
ARIA-testning kan slås fra for hver website. Tjek de avancerede indstillinger for websitet.