WCAG 2.1.4 Сочетания клавиш из одного символа
Обновлено 14 октября 2026 г. · 3 мин чтения
- Уровень
- A · WCAG 2.1
- EN 301 549
- 9.2.1.4
- Что проверяет тестер
- Ручная проверка: автоматический инструмент не может надёжно проверить этот критерий.
- Официальный текст
- Understanding 2.1.4 Character Key Shortcuts (W3C, на английском)
Критерий успеха 2.1.4 защищает людей, которые пользуются распознаванием речи, и людей, которые нажимают клавиши случайно (например, из-за тремора), от запуска команд, которых они не собирались выполнять. Это уровень A, критерий входит в EN 301 549 (пункт 9.2.1.4). Тот же стандарт принят в Украине как ДСТУ EN 301 549:2022.
Что требует критерий
Если в контенте реализовано сочетание клавиш, использующее только буквы (заглавные или строчные), знаки препинания, цифры или символы, должно выполняться хотя бы одно из условий:
- Отключение: есть механизм, позволяющий отключить сочетание;
- Переназначение: есть механизм, позволяющий переназначить его так, чтобы оно включало одну или несколько непечатных клавиш (например, Ctrl или Alt);
- Только при фокусе: сочетание для компонента работает только тогда, когда этот компонент в фокусе.
Неважно, сколько физических клавиш нужно для символа: «?», набранный через Shift+/, всё равно считается символьной клавишей. Последовательности вроде нажатия G, а затем A, тоже считаются.
Не затрагиваются: списки и выпадающие списки, где ввод буквы переходит к варианту, пока они в фокусе, меню, открываемые с модификатором вроде Alt, и клавиши доступа браузера, использующие модификаторы.
Типичные ошибки в интернет-магазине
- клавиша «/» или «s», которая из любого места страницы переводит в поле поиска;
- «?» открывает справку, а «c» — корзину, и это нельзя отключить;
- галереи товаров или лукбуки реагируют на отдельные буквы глобально, а не только в фокусе;
- функция темы в стиле админки или сторонний виджет (чат, панель доступности) добавляет на витрину однобуквенные сочетания.
У большинства магазинов вообще нет символьных сочетаний клавиш — тогда критерий просто не применяется.
Как проверить
Автоматически: правила axe-core для этого критерия нет. Сочетания клавиш живут в JavaScript-обработчиках клавиш, которые сканирование не задействует, поэтому нужна ручная проверка.
Вручную: щёлкните по пустой области страницы (чтобы ни одно поле не было в фокусе) и нажимайте отдельные буквы, цифры и распространённые символы, например «/», «?» и «.». Следите, происходит ли что-нибудь. Прочитайте документацию темы и плагинов на предмет описанных сочетаний. Если нашли такое, проверьте, есть ли настройка, чтобы отключить или переназначить его, или убедитесь, что оно работает только тогда, когда его виджет в фокусе.
Как исправить
- Для действий на всём сайте используйте сочетания с клавишей-модификатором (Ctrl, Alt, Cmd).
- Ограничьте однобуквенные сочетания компонентом в фокусе, например стрелки и буквы внутри галереи в фокусе.
- Если оставляете глобальные символьные сочетания, добавьте понятную настройку, чтобы их отключить или изменить.
- Никогда не запускайте сочетание, пока пользователь вводит текст в поле.
Связанные критерии
- 2.1.1 Клавиатура — все функции должны работать с клавиатуры.
- 2.5.3 Подпись в имени — ещё один критерий, который помогает пользователям голосового ввода.
- Наша библиотека правил показывает, какие критерии охватывают автоматические правила.
Частые вопросы
Какие сочетания клавиш охватывает 2.1.4?
Сочетания только из печатных символов: букв, цифр, знаков препинания или символов, включая последовательности вроде G, затем A. Сочетания, для которых нужна клавиша-модификатор вроде Ctrl или Alt, не затрагиваются.
Как сайту выполнить 2.1.4?
Хотя бы одним из трёх способов: возможность отключить сочетание, возможность переназначить его так, чтобы оно включало непечатную клавишу вроде Ctrl или Alt, или сочетание работает только тогда, когда его компонент в фокусе.
Почему однобуквенные горячие клавиши — проблема?
Пользователи голосового ввода диктуют слова, и каждая буква может запустить команду. Люди, которые случайно задевают клавиши, тоже могут запустить действия, которых не хотели.