Клавишни комбинации с единичен знак
Клавишните комбинации с единичен знак (единична буква, цифра или символ) трябва да могат да се изключват, да се пренасочват или да са активни само когато съответният компонент е на фокус. Защитава потребителите на гласово управление и диктовка от случайно задействане.
Какво изисква
Ако страницата реализира клавишна комбинация, използваща само буква, цифра, препинателен знак или символ — без модификатор като Ctrl, Alt или Shift — то трябва да е изпълнено поне едно от следните:
- Комбинацията може да се изключи в меню с настройки.
- Комбинацията може да се пренасочи към използване на един или повече непечатаеми клавиши (Ctrl, Alt, Shift, функционални клавиши).
- Комбинацията е активна само когато съответният компонент е на фокус.
Критерият съществува преди всичко, за да защити потребителите на речеви вход. Dragon NaturallySpeaking и Voice Control преобразуват изречените думи в знаци от клавиатурата — и случайно произнесено „k” по средата на изречение може да задейства разрушителна комбинация в Gmail, Slack или всяко приложение, използващо еднобуквени ускорители.
Как да се изпълни
- Направете одит на всички манипулатори за единичен клавиш в кода: слушатели за
keydown/keypress, проверяващиevent.keyза печатаем знак без проверка на модификаторни клавиши. - Добавете панел с настройки „Клавишни комбинации”, в който потребителите могат да ги изключат изцяло. Gmail и Slack са добри примери.
- Или: ограничете комбинациите така, че да се задействат само когато фокусът е вътре в съответния регион (напр.
j/kза навигация между имейли само когато фокусът е в списъка с писма, не и когато потребителят пише отговор). - Предпочитайте комбинации с модификатор (Ctrl+/, Alt+N) като стандартен вариант; запазете комбинациите с единичен знак за режим на опитни потребители с изрично включване.
Чести грешки
- Комбинации в стил Gmail —
j/k/r/a— задействащи се отвсякъде в документа, включително вътре в текстови полета при определени настройки на фреймуърка. - Персонализирани таблици с данни, в които
Deleteизтрива ред без потвърждение — безопасно за клавиатура, опасно за гласови потребители, казващи „изтрий тази запетая”. - Видеоплейъри, при които Space включва/изключва възпроизвеждането глобално, а не само когато плейърът е на фокус.
- Сайтове с документация, при които
/фокусира търсачката и се задейства дори когато фокусът е в вграден редактор на код.
axe-core не открива това — изисква се преглед на изходния код или специфични автоматизирани правила от по-широкия пакет за тестване на Deque. Повечето производствени грешки се установяват едва когато гласов потребител подаде оплакване.
Защо е важно
Критерият е добавен в WCAG 2.1 специално защото използването на гласов вход нарасна бързо след 2017 г. Сайт, неизпълняващ 2.1.4, може да бъде практически неизползваем за диктуващ потребител: всеки абзац задейства различно действие. Дори клавиатурни потребители с двигателни увреждания, случайно натискащи грешния клавиш, се ползват от възможността да изключат еднознаковите комбинации.