Saknat aria-activedescendant-ID
Silktide kontrollerar varje aria-activedescendant-attribut på dina sidor och verifierar att element-ID:t som det hänvisar till faktiskt finns. Det här attributet talar om för vilket objekt i en widget, till exempel en rullgardinslista, som för närvarande är markerat.
<!-- Problem: inget element på sidan har id="opt-2" -->
<ul role="listbox" aria-activedescendant="opt-2">
<li role="option" id="opt-1">Första alternativet</li>
</ul>
Varför detta är viktigt
Widgetar som anpassade rullgardinslistor, kombinationsrutor och rutnät behåller
på containern och använder
-attributet aria-activedescendant för att ange
vilket objekt inuti som är aktivt. När referensen pekar på ett ID som inte
finns hör en användare av en
ingenting när hen förflyttar sig genom alternativen – widgeten verkar inte ha
något val alls, vilket gör den oanvändbar utan syn.
Så här åtgärdar du det
- Låt attributet hänvisa till
idför det aktuella aktiva objektet och uppdatera det när användaren förflyttar sig genom widgeten. - Om widgeten återger sina objekt igen ska du se till att de nya objekten
behåller stabila ID:n eller uppdatera
aria-activedescendanti samma steg. - Ta bort attributet om widgeten inte längre finns eller hanterar fokus direkt i stället.
Så här testar Silktide detta
- Hitta varje element på sidan med ett
aria-activedescendant- attribut. - Kontrollera ID:t som det hänvisar till mot de element-ID:n som finns på sidan.
- Rapportera varje referens som inte matchar något element.
Felsökning
Målet skapas senare av ett skript
Silktide testar sidan medan den läses in. Om det hänvisade elementet bara finns
efter en användarinteraktion är referensen fortfarande felaktig under tiden –
ange aria-activedescendant först när målet finns.
Den här kontrollen rapporterar inget trots att jag förväntar mig resultat
ARIA-tester kan stängas av per webbplats. Kontrollera de avancerade inställningarna för webbplatsen.