Brakujące identyfikatory opisów ARIA
Silktide kontroluje elementy, które dołączają do siebie dodatkowy tekst opisowy poprzez odwołania do innych elementów za pomocą identyfikatora, i zgłasza odwołania do identyfikatorów, które nie istnieją na stronie. Uszkodzone odwołanie powoduje ciche pominięcie opisu.
Atrybut aria-describedby łączy element z dodatkowym tekstem w innym miejscu strony — tekstem pomocy pod polem formularza lub wyjaśnieniem formantu:
<!-- Problem: odwołanie wskazuje „email-help”, ale id akapitu to „email-helpp” -->
<input type="email" aria-describedby="email-help">
<p id="email-helpp">Wpisz służbowy adres e-mail</p>
Dlaczego to ma znaczenie
Opisy zawierają wskazówki, które pomagają uniknąć błędów — wymagania dotyczące formatu, ostrzeżenia, wyjaśnienia konsekwencji. odczytuje opis po nazwie elementu, ale tylko wtedy, gdy odwołanie zostanie poprawnie rozpoznane. Gdy wskazuje ono na nic, osoba odwiedzająca otrzymuje pole bez wskazówek i nie ma możliwości dowiedzieć się, że czegoś brakuje. Osoby widzące nadal widzą tekst pomocy obok pola, więc problem nie zostanie wykryty podczas żadnej oceny wizualnej — właśnie dlatego automatyczna kontrola jest tutaj ważna.
Jak to naprawić
- Znajdź element zawierający tekst opisowy i dopasuj wartość
aria-describedbydokładnie do jegoid(w identyfikatorach wielkość liter ma znaczenie):
<!-- Naprawiono: odwołanie odpowiada id akapitu -->
<input type="email" aria-describedby="email-help">
<p id="email-help">Wpisz służbowy adres e-mail</p>
- Jeśli element opisowy został usunięty, przywróć go albo usuń nieaktualny atrybut
aria-describedby. - Gdy jeden element jest opisywany przez kilka innych, wypisz wszystkie identyfikatory, oddzielając je spacjami, i sprawdź każdy z nich.
Jak Silktide to testuje
- Znajduje każdy element z atrybutem
aria-describedbyna każdej stronie. - Dzieli wartość atrybutu na pojedyncze identyfikatory.
- Zgłasza każdy wskazany identyfikator, który nie istnieje nigdzie na stronie.