Manglende ID for aria-activedescendant
Silktide kontrollerer alle aria-activedescendant-attributter på sidene dine og bekrefter at element-ID-en de peker på, faktisk finnes. Dette attributtet forteller hvilket element i en widget, for eksempel en nedtrekksliste, som er markert.
<!-- Problem: ingen elementer på siden har id="opt-2" -->
<ul role="listbox" aria-activedescendant="opt-2">
<li role="option" id="opt-1">Første alternativ</li>
</ul>
Hvorfor dette er viktig
Widgeter som egendefinerte nedtrekkslister, kombinasjonsbokser og rutenett beholder
på beholderen og bruker
-attributtet aria-activedescendant til å angi
hvilket element inni widgeten som er aktivt. Når referansen peker på en ID som
ikke finnes, hører en -bruker
ingenting når vedkommende beveger seg gjennom alternativene – widgeten ser ut til å
ikke ha noe valgt element i det hele tatt, og blir dermed ubrukelig uten syn.
Slik løser du det
- La attributtet referere til
id-en til det aktive elementet, og oppdater den når brukeren beveger seg gjennom widgeten. - Hvis widgeten gjengir elementene på nytt, må du sørge for at de nye elementene
beholder stabile ID-er, eller oppdatere
aria-activedescendanti samme operasjon. - Fjern attributtet hvis widgeten ikke lenger finnes, eller i stedet håndterer fokus direkte.
Slik tester Silktide dette
- Finn alle elementer på siden med et
aria-activedescendant- attributt. - Kontroller ID-en det refererer til, mot element-ID-ene som finnes på siden.
- Rapporter hver referanse som ikke samsvarer med noe element.
Feilsøking
Målet opprettes senere av et skript
Silktide tester siden mens den lastes inn. Hvis det refererte elementet bare finnes
etter brukerinteraksjon, er referansen fortsatt ødelagt i mellomtiden – angi
aria-activedescendant først når målelementet finnes.
Denne kontrollen rapporterer ingenting selv om jeg forventer funn
ARIA-testing kan slås av for hvert nettsted. Sjekk de avanserte innstillingene for nettstedet.