Как пользоваться
- Нажмите серую область, чтобы она получила фокус.
- Нажмите каждую клавишу. Клавиша подсвечивается, пока её держат, и сохраняет оттенок после нажатия.
- Нажмите три клавиши вместе, например Q, A и W, и прочитайте Больше всего клавиш сразу и Проверка одновременных нажатий.
- Проверьте таблицу event.key и event.code. Нажмите Сбросить, чтобы начать заново.
Что показывает тест
event.code называет физическую клавишу. Клавиша на месте A имеет код KeyA на любой раскладке, и название не меняется при смене языка клавиатуры. event.key — это символ или название, которое система выдаёт при текущей раскладке, поэтому он меняется вместе с языком.
- event.code: физическая клавиша, например KeyA или Digit2.
- event.key: то, что выдаёт клавиша, например a или A, в зависимости от Shift и раскладки.
- расположение: клавиша слева или справа на клавиатуре либо на цифровом блоке.
- повтор: да, когда клавиша всё ещё зажата и система посылает её снова.
Раскладки на рисунке
ANSI (США) имеет короткую клавишу Enter и клавишу обратной косой черты в правом верхнем углу. ISO имеет высокую клавишу Enter и дополнительную клавишу слева от Z. Турецкая Q использует форму ISO с турецкими буквами: ı стоит там, где на клавиатуре US стоит I, а ğ, ü, ş, i, ö и ç — после P, после Ğ, после L, после Ş, после M и после Ö. AZERTY (французская) использует форму ISO с переставленными буквами: A стоит там, где на клавиатуре US стоит Q, Z — там, где W, Q — там, где A, W — там, где Z, а M — после L. Её цифры требуют Shift. QWERTZ (немецкая) использует форму ISO с поменянными местами Y и Z, а Ü, Ö, Ä и ß стоят после P, после L, после Ö и после 0. ABNT2 (бразильская) использует форму ISO с Ç после L, клавишей апострофа слева от 1 и дополнительной клавишей рядом с правым Shift, которая печатает / и ?. Буквы на рисунке — обычные подписи; клавиши на вашей клавиатуре могут быть подписаны иначе.
Коды клавиш от раскладки не зависят. Код называет место клавиши на клавиатуре US, поэтому клавиша, на которой на AZERTY напечатана A, всё равно имеет код KeyQ, а event.key покажет A.
ЙЦУКЕН (русская раскладка Windows) стоит на тех же клавишах, что и клавиатура US, но с русскими буквами: Й на месте Q, Ц на месте W и так далее до З на месте P; Х и Ъ на месте [ и ]; Ф на месте A; Ж и Э на месте ; и апострофа; Я на месте Z, Ю на месте точки. Ё стоит на клавише с обратной кавычкой. Эта раскладка имеет форму ANSI. JIS (японская) имеет форму ISO: Enter высокий, слева от Backspace стоит клавиша ¥, слева от правого Shift стоит клавиша с кодом IntlRo, а на нижнем ряду у пробела есть клавиши с кодами NonConvert, Convert и KanaMode. InScript (хинди) и Арабская (101) имеют форму ANSI.
Страница на русском начинается с ЙЦУКЕН. Чтобы увидеть клавиатуру US, выберите ANSI (США) в меню раскладок. Коды клавиш от выбора раскладки не зависят.
Одновременные нажатия и призрачные нажатия
Одновременные нажатия — это сколько нажатий клавиатура передаёт одновременно. Клавиатура с полной поддержкой передаёт каждую зажатую клавишу. Более дешёвая клавиатура может потерять клавишу, когда нажато несколько клавиш в определённом сочетании; это называют призрачным нажатием (ghosting). Чтобы проверить, зажмите три клавиши и больше, например Q, A и W, и смотрите, что все они подсвечиваются.
Пример: клавиша I на турецкой Q-клавиатуре
На турецкой Q-клавиатуре клавиша на месте I клавиатуры US печатает ı. При нажатии получается event.code KeyI и event.key ı. Если держать Shift, event.key становится I. Положение клавиши и код остаются теми же; меняется только символ, который зависит от раскладки.
Частые вопросы
Записывает ли тест то, что я печатаю?
Нет. Страница читает события клавиш только пока область проверки в фокусе, показывает их на экране и отбрасывает, когда вы сбрасываете тест или покидаете страницу. Ничего не отправляется на сервер и не сохраняется в браузере.
Почему клавиша не подсвечивается?
Некоторые клавиши используются системой или браузером раньше, чем страница их увидит, например Ctrl+W, Alt+Tab или клавиша Windows. Попробуйте клавишу в другой программе: если она там работает, а в браузере нет, страница её не видит.
Что показывает проверка одновременных нажатий?
Она показывает, были ли во время этого теста зарегистрированы три клавиши и больше одновременно. Если клавиша перестаёт подсвечиваться, когда вы зажимаете три клавиши, образующие угол или прямоугольник, у клавиатуры может быть призрачное нажатие.
Почему event.key меняется, когда я переключаю язык клавиатуры?
event.key — это символ, который система выдаёт при текущей раскладке, поэтому клавиша на месте I даёт ı на турецкой раскладке и i на английской. event.code не меняется, потому что он называет физическую клавишу.
Работает ли тест на телефоне?
Почти не работает: экранная клавиатура не передаёт коды физических клавиш так же. Для полной проверки используйте компьютер с аппаратной клавиатурой.
Источники
- Спецификация W3C: значения code в UI Events (на английском)
- Спецификация W3C: значения key в UI Events (на английском)
- MDN: KeyboardEvent (на английском)
- Microsoft Learn: французская клавиатура (Legacy, AZERTY) (на английском)
- Microsoft Learn: немецкая клавиатура (на английском)
- Microsoft Learn: бразильская клавиатура ABNT2 (на английском)
- Keyboard Layout Info: состояния клавиш KBDBR, клавиша справа от Shift (на английском)
- Keyboard Layout Info: таблица клавиш ЙЦУКЕН, KBDRU (на английском)
- Keyboard Layout Info: таблица клавиш Arabic (101) (на английском)
- Keyboard Layout Info: таблица клавиш Devanagari INSCRIPT (на английском)
Цифры и текст в последний раз проверены четверг, 12 ноября 2026 г..