Manglende ARIA-beskrivelses-ID-er
Silktide kontrollerer elementer som kobler ekstra beskrivende tekst til seg selv ved å referere til andre elementer med ID, og rapporterer referanser til ID-er som ikke finnes på siden. En ødelagt referanse gjør at beskrivelsen forsvinner uten at det vises noen feilmelding.
ARIA-attributtet aria-describedby kobler et element til utfyllende tekst et annet sted på siden – hjelpetekst under et skjemafelt eller en forklaring av en kontroll:
<!-- Problem: Referansen sier "email-help", men avsnittets id er "email-helpp" -->
<input type="email" aria-describedby="email-help">
<p id="email-helpp">Skriv inn e-postadressen til jobben din</p>
Hvorfor dette er viktig
Beskrivelser inneholder veiledningen som hindrer folk i å gjøre feil – krav til format, advarsler og forklaringer på konsekvenser. En leser beskrivelsen etter navnet på et element, men bare hvis referansen kan løses. Når den peker på ingenting, får den besøkende feltet uten veiledningen og har ingen måte å vite at noe mangler på. Besøkende som ser, ser fortsatt hjelpeteksten ved siden av feltet, så feilen slipper gjennom enhver visuell gjennomgang – og det er nettopp derfor automatiserte kontroller er viktige her.
Slik løser du det
- Finn elementet som inneholder den beskrivende teksten, og sørg for at verdien i
aria-describedbysamsvarer nøyaktig med elementetsid(ID-er skiller mellom store og små bokstaver):
<!-- Rettet: Referansen samsvarer med avsnittets id -->
<input type="email" aria-describedby="email-help">
<p id="email-help">Skriv inn e-postadressen til jobben din</p>
- Hvis det beskrivende elementet er fjernet, kan du enten gjenopprette det eller fjerne det foreldede
aria-describedby-attributtet. - Når ett element beskrives av flere andre, skal du liste opp alle ID-ene, atskilt med mellomrom, og kontrollere hver av dem.
Slik tester Silktide dette
- Finn alle elementer med et
aria-describedby-attributt på hver side. - Del attributtverdien opp i individuelle ID-er.
- Rapporter hver refererte ID som ikke finnes noe sted på siden.