Стандарти · WCAG 2.2

SC 2.1.4 Ниво A WCAG 2.1

Клавишни комбинации с единичен знак

Клавишните комбинации с единичен знак (единична буква, цифра или символ) трябва да могат да се изключват, да се пренасочват или да са активни само когато съответният компонент е на фокус. Защитава потребителите на гласово управление и диктовка от случайно задействане.

Какво изисква

Ако страницата реализира клавишна комбинация, използваща само буква, цифра, препинателен знак или символ — без модификатор като 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, може да бъде практически неизползваем за диктуващ потребител: всеки абзац задейства различно действие. Дори клавиатурни потребители с двигателни увреждания, случайно натискащи грешния клавиш, се ползват от възможността да изключат еднознаковите комбинации.