Manglende aria-activedescendant-ID
Silktide tjekker alle aria-activedescendant-attributter på dine sider og bekræfter, at det element-ID, de peger på, faktisk findes. Denne attribut fortæller , hvilket element i en widget, f.eks. en rullemenu, der er fremhævet i øjeblikket.
<!-- Problem: no element on the page has id="opt-2" -->
<ul role="listbox" aria-activedescendant="opt-2">
<li role="option" id="opt-1">First option</li>
</ul>
Hvorfor dette er vigtigt
Widgets som tilpassede rullemenuer, kombinationsbokse og gitre bevarer
på containeren og bruger
attributten aria-activedescendant til at angive,
hvilket element indeni der er aktivt. Når referencen peger på et ID, som
ikke findes, hører en bruger af en
intet, når vedkommende bevæger sig gennem indstillingerne – widgetten ser
ud til slet ikke at have noget valgt, hvilket gør den ubrugelig uden syn.
Sådan retter du det
- Lad attributten referere til
idfor det aktive element, og opdater den, når brugeren bevæger sig gennem widgetten. - Hvis widgetten gengiver sine elementer igen, skal du sikre, at de nye
elementer beholder stabile ID'er, eller opdatere
aria-activedescendanti samme trin. - Fjern attributten, hvis widgetten ikke længere findes eller i stedet håndterer fokus direkte.
Sådan tester Silktide dette
- Find hvert element på siden med en
aria-activedescendant-attribut. - Tjek det ID, som attributten refererer til, i forhold til de element-ID'er, der findes på siden.
- Rapportér hver reference, der ikke matcher noget element.
Fejlfinding
Målet oprettes senere af et script
Silktide tester siden, mens den indlæses. Hvis det refererede element først
findes efter brugerinteraktion, er referencen stadig brudt i mellemtiden – angiv
kun aria-activedescendant, når målet findes.
Dette tjek rapporterer intet, selvom jeg forventer resultater
ARIA-testning kan deaktiveres for hver enkelt website. Tjek de avancerede indstillinger for websitet.