Brakujący identyfikator aria-owns
Silktide sprawdza każdy atrybut aria-owns na Twoich stronach i weryfikuje, czy wymienione w nim identyfikatory elementów rzeczywiście istnieją. Ten atrybut przypisuje elementy z innych miejsc na stronie jako elementy podrzędne widżetu, mimo że w kodzie znajdują się one w innym miejscu.
<!-- Problem: żaden element na stronie nie ma id="menu-items" -->
<div role="menu" aria-owns="menu-items">…</div>
Dlaczego to jest ważne
Atrybut aria-owns zmienia strukturę
: elementy, do których
się odwołuje, są traktowane jako elementy podrzędne elementu będącego ich właścicielem, niezależnie od
miejsca, w którym znajdują się w kodzie. Gdy odwołanie jest uszkodzone, to przypisanie po cichu
nie działa — menu lub drzewo może wydawać się całkowicie puste dla
, mimo że jego elementy są
wyraźnie widoczne na ekranie. Ponieważ wizualnie nic nie wygląda nieprawidłowo, takie
problemy zwykle pozostają niezauważone, dopóki ktoś nie przeprowadzi testu z użyciem .
Jak to naprawić
- Dopilnuj, aby każdy identyfikator wymieniony w
aria-ownsodpowiadał wartościidrzeczywistego elementu na tej samej stronie. - Jeśli posiadana treść została przeniesiona lub zmieniono jej nazwę, zaktualizuj odwołanie w
tej samej zmianie — lub, co lepsze, zmień strukturę kodu tak, aby elementy podrzędne znajdowały się naturalnie wewnątrz
elementu nadrzędnego i
aria-ownsnie było potrzebne. - Upewnij się, że żaden element nie jest przypisany dwukrotnie:
idmoże wystąpić tylko w jednymaria-ownsna stronie.
Jak Silktide to testuje
- Znajduje każdy element na stronie z atrybutem
aria-owns. - Sprawdza każdy identyfikator, do którego się on odwołuje, względem identyfikatorów elementów obecnych na stronie.
- Zgłasza każde odwołanie, które nie odpowiada żadnemu elementowi.
Rozwiązywanie problemów
Posiadany element jest tworzony później przez skrypt
Silktide testuje stronę podczas jej ładowania. Jeśli posiadana treść istnieje dopiero po
interakcji użytkownika, widżet jest do tego czasu ogłaszany jako pusty — renderuj
ukrytą treść od początku albo ustaw aria-owns, gdy treść już istnieje.