Nieprawidłowa rola ARIA
Silktide sprawdza każdy atrybut role na Twoich stronach względem listy ról definiowanych przez standard ARIA. Rola zawierająca literówkę, wymyślona, pusta lub zastrzeżona do użytku wewnętrznego jest po cichu ignorowana przez przeglądarki, więc zamierzone znaczenie elementu nigdy nie dociera do osób, które na nim polegają.
<!-- Problem: „buton” nie jest prawdziwą rolą, więc ten div pozostaje bez znaczenia -->
<div role="buton" tabindex="0">Zapisz</div>
<!-- Poprawka: użyj prawidłowej roli (albo lepiej — rzeczywistego elementu button) -->
<button>Zapisz</button>
Dlaczego to jest ważne
Rola informuje , czym jest element — przyciskiem, kartą, oknem dialogowym. Gdy rola jest nieprawidłowa, przeglądarki ją odrzucają: użytkownik słyszy zwykły tekst tam, gdzie autor zamierzał umieścić kontrolkę, i może w ogóle nie wiedzieć, że z elementem można wchodzić w interakcję. Ponieważ strona wygląda i działa normalnie dla widzących użytkowników myszy, błędy te pozostają niezauważone bez testowania.
Jak to naprawić
- Popraw literówki, aby rola odpowiadała rzeczywistej roli ARIA
(pełna lista) —
na przykład
role="navigation", a nierole="nav". - Zastąp role abstrakcyjne (
widget,composite,landmark,sectioni podobne) konkretną rolą — role abstrakcyjne służą wyłącznie do organizacji standardu i nie mogą być używane na stronach. - Usuń puste atrybuty
role="". - Jeśli natywny element ma właściwe
znaczenie (
<button>,<nav>,<main>), użyj go i całkowicie usuń atrybutrole.
Jak Silktide to testuje
- Znajduje każdy element na stronie z atrybutem
role. - Zgłasza puste wartości ról.
- Sprawdza każde słowo w wartości roli względem ról zdefiniowanych przez ARIA 1.2.
Akceptowane są role z rozszerzeń publikacji cyfrowych (
doc-) i grafiki (graphics-). - Zgłasza słowa, które nie odpowiadają żadnej zdefiniowanej roli, oraz słowa oznaczające rolę abstrakcyjną.
Rozwiązywanie problemów
Rola ma wiele słów
Atrybut roli może zawierać kilka ról zastępczych; przeglądarki używają pierwszej, którą rozpoznają. Silktide zgłasza każde nieprawidłowe lub abstrakcyjne słowo na liście, aby można było także uporządkować role zastępcze.