Как это работает
Каждое нажатие вызывает события keydown и keyup, определённые стандартом W3C UI Events. Тестер считывает event.code — физическое положение клавиши (например, KeyA или ShiftRight) независимо от раскладки — и event.key — символ или функцию, которую клавиша даёт в текущей раскладке с модификаторами.
Экранная клавиатура — полноразмерная раскладка ANSI с дополнительной клавишей ISO рядом с левым Shift. Клавиши вне её, например мультимедийные или языковые, перечисляются отдельно. Если браузер поддерживает Keyboard Map API, буквенные клавиши показывают подписи вашей раскладки.
event.key и event.code
Одна и та же физическая клавиша может давать разные значения. Эти примеры показывают, зачем выводятся оба.
| Вы нажимаете | event.key | event.code |
|---|---|---|
| A в американской раскладке | "a" | "KeyA" |
| A с Shift | "A" | "KeyA" |
| Ту же клавишу во французской раскладке AZERTY | "q" | "KeyA" |
| Правый Shift | "Shift" | "ShiftRight" |
| 1 на цифровом блоке (Num Lock включён) | "1" | "Numpad1" |
Гостинг и одновременные нажатия (rollover)
Во многих клавиатурах клавиши соединены матрицей, поэтому некоторые сочетания из трёх и более клавиш распознаются не полностью: клавиша может не сработать (блокировка) или появиться ненажатая (гостинг). «Максимум одновременно» показывает наибольшее число клавиш, о которых клавиатура сообщила как о нажатых вместе. Игровые клавиатуры с n-key rollover сообщают о каждой; USB-клавиатуры в режиме boot обычно ограничены шестью клавишами плюс модификаторы.
Советы
- Клавиша, которая никогда не светится, когда другие светятся, скорее всего неисправна или загрязнена; срабатывающая дважды от одного нажатия может «дребезжать».
- Проверяйте сочетания, которыми действительно пользуетесь, например W A S D с Shift и пробелом в играх.
- Операционная система перехватывает некоторые сочетания раньше браузера, поэтому их здесь проверить нельзя.
Стандарты и источники
- UI Events · W3C
- UI Events: значения KeyboardEvent.code · W3C
- UI Events: значения KeyboardEvent.key · W3C
- KeyboardEvent.code · MDN Web Docs
Последняя проверка 18 октября 2026 г.
Часто задаваемые вопросы
Почему клавиша не подсвечивается?
Либо неисправна сама клавиша или переключатель, либо нажатие не доходит до браузера: Fn и системные сочетания вроде Win+L или Cmd+Tab обрабатывает операционная система. Попробуйте клавишу в другой программе, чтобы различить.
Чем event.key отличается от event.code?
event.code — физическое положение клавиши, оно не меняется с раскладкой; event.key — то, что клавиша вводит сейчас, и зависит от раскладки, Shift и других модификаторов. В русской раскладке клавиша с code KeyF даёт key «а».
Как проверить n-key rollover?
Нажимайте клавиши одну за другой, не отпуская. «Максимум одновременно» покажет наибольшее число, о котором клавиатура сообщила разом. Если удерживаемая клавиша не загорается, для этого сочетания достигнут предел.