Atrybut accesskey
Silktide znajduje elementy deklarujące atrybut accesskey, czyli przestarzały sposób nadawania elementowi własnego skrótu klawiszowego. Skróty te są zawsze aktywne i osoba odwiedzająca nie może ich wyłączyć, co powoduje więcej problemów, niż rozwiązuje.
Dlaczego to jest ważne
Atrybut accesskey w tworzy jednoliterowy skrót klawiszowy, który uruchamia się po każdym naciśnięciu danego klawisza. Koliduje to ze sposobem, w jaki wiele osób korzysta już z klawiatury: użytkownicy i przeglądarki rezerwują nakładające się kombinacje klawiszy, więc accesskey może bez ostrzeżenia zastąpić skrót, na którym ktoś polega — a kombinacja klawiszy, która go uruchamia, różni się w zależności od przeglądarki i systemu operacyjnego. Osoby piszące za pomocą sterowania głosowego lub o ograniczonej sprawności manualnej mogą również przypadkowo uruchomić skrót.
Kryterium sukcesu 2.1.4 (Skróty klawiszowe wykorzystujące pojedynczy znak, poziom A) wymaga, aby jednoliterowe skróty można było wyłączyć, zmienić ich przypisanie lub aby uruchamiały się tylko wtedy, gdy element ma . Atrybut accesskey nie spełnia żadnego z tych warunków: jest zawsze aktywny i tylko strona może go zmienić.
Jak to naprawić
- Usuń atrybut
accesskey. Rzadko zapewnia on rzeczywistą wartość, a jego usunięcie nie zmienia niczego widocznego na stronie.
<!-- Skrót zawsze aktywny, który może kolidować ze skrótami użytkownika -->
<a href="/search" accesskey="s">Szukaj</a>
<!-- Poprawiono: zwykły link, dostępny za pomocą klawisza Tab jak wszystkie pozostałe -->
<a href="/search">Szukaj</a>
- Jeśli rzeczywiście potrzebujesz skrótów klawiszowych, zaimplementuj je tak, aby osoba odwiedzająca mogła je wyłączyć lub zmienić ich przypisanie, albo aby działały tylko wtedy, gdy odpowiednia kontrolka ma fokus.
Jak Silktide to testuje
- Znajdź każdy element w kodzie HTML strony, który deklaruje atrybut
accesskeyz niepustą wartością. - Zgłoś każdy taki element. Puste wartości (
accesskey="") są ignorowane, ponieważ niektóre biblioteki komponentów renderują ten atrybut jako niepowodujący działania i nie tworzy on skrótu.
Rozwiązywanie problemów
Dodaliśmy accesskey, aby poprawić dostępność
Kiedyś było to zalecane, ale doświadczenie pokazało, że konflikty ze skrótami przeglądarek i przeważają nad korzyściami, a współczesne zalecenia mówią, aby unikać tego atrybutu. Dobrze ustrukturyzowane strony z dobrymi nagłówkami i punktami orientacyjnymi lepiej służą użytkownikom klawiatury.
Skróty zaimplementowane w JavaScript
Ta kontrola obejmuje tylko atrybut accesskey. Skróty zaimplementowane w skrypcie są objęte kontrolą Skróty klawiszowe wykorzystujące pojedynczy znak; obie kontrole się uzupełniają i mogą pojawić się na tej samej stronie.