Какую клавишу я нажимаю?
Нажмите любую клавишу и узнайте её название, код, устаревший номер keyCode и то, левая это клавиша, правая или с цифрового блока. Пригодится при стёртых кейкапах, переназначении, играх и программировании.
| key | code | keyCode | location | модификаторы |
|---|---|---|---|---|
| – | ||||
Нажмите любую клавишу, и окно ниже покажет, какую клавишу вы нажимаете: её название, код, числовой keyCode и то, левая это клавиша, правая или с цифрового блока. Крупная надпись это значение key, строка под ней показывает code, keyCode и location, а в таблице сохраняются 12 последних нажатий.
Как пользоваться определителем нажатых клавиш
- Щёлкните в любом месте страницы или коснитесь окна, чтобы оно получило фокус клавиатуры.
- Нажмите клавишу. Крупная надпись показывает название клавиши, а строка под ней code, keyCode и location. Если вы удерживали Shift, Ctrl, Alt или Meta, строка модификаторы перечислит их.
- Нажимайте другие клавиши. Каждая добавляется в таблицу Последние нажатия с теми же пятью полями, новые сверху, всего до 12 строк.
- Нажмите Сбросить, чтобы очистить окно и таблицу.
Если держать клавишу, операционная система начинает её повторять. Повторы обновляют крупную надпись, но в таблицу не добавляются, так что одно долгое удержание занимает одну строку. Пробел, Tab, Backspace, стрелки вверх и вниз, косую черту и клавишу кавычки страница перехватывает, чтобы во время проверки она не прокручивалась, не меняла фокус и не открывала быстрый поиск браузера. Клавиши, нажатые вместе с Ctrl или Cmd, передаются браузеру как обычные горячие клавиши.
Key или code: что вам нужно
Браузер описывает каждое нажатие двумя способами, и они отвечают на разные вопросы.
- key
- "a"
- code
- KeyA
Клавиша слева от S печатает строчную a.
- key
- "A"
- code
- KeyA
Та же физическая клавиша, тот же code. Меняется только значение.
- key
- "q"
- code
- KeyA
Та же позиция на французской клавиатуре печатает q. Code по-прежнему KeyA.
key это смысл нажатия в вашей текущей раскладке с учётом модификаторов. Нажмите клавишу с буквой A, и key будет «a», удерживайте Shift, и он станет «A», переключитесь на немецкую раскладку, и клавиша рядом с L даст «ö». Непечатаемые клавиши получают описательные названия: Enter, Escape, ArrowLeft, Backspace, F5. Пробел на этой странице показывается словом Space, чтобы его было видно.
code это физическое положение клавиши. Оно названо по надписи на американской клавиатуре и не зависит от раскладки, языка и Shift. Клавиша слева от S это KeyA на любой клавиатуре в мире, даже на AZERTY, где она печатает Q. Цифровой ряд обозначается Digit1–Digit0, функциональные клавиши F1–F12, у парных клавиш в названии есть сторона (ShiftLeft, ControlRight), а на цифровом блоке используются Numpad1, NumpadAdd, NumpadEnter и так далее.
| Вопрос | Что использовать | Пример |
|---|---|---|
| Какой символ напечатает клавиша? | key | «a», «A», «ö», «?» |
| Какая это физическая клавиша, независимо от языка? | code | KeyA, Digit1, Backquote |
| Это левый или правый Shift? | code или location | ShiftLeft, ShiftRight |
| Это Enter на цифровом блоке? | code или location | NumpadEnter, location «цифровой блок» |
| Какое число ожидает старый код? | keyCode | 65, 13, 32 |
Для назначений в играх, программ переназначения и всего, что должно работать одинаково в любой раскладке, берите code. Для обработки текста, поисковых сочетаний и всего, где важно, какую букву имел в виду пользователь, берите key.
Что такое keyCode и почему он до сих пор показан
keyCode это исходный способ, которым браузеры сообщали о клавишах: одно число на клавишу, примерно совпадающее с виртуальными кодами клавиш Windows. Он давно считается устаревшим, и браузеры рекомендуют key или code, но его так и не убрали, потому что от него зависит слишком много существующего кода. Учебники, старые игровые движки, скрипты проверки форм и многие плагины до сих пор сравнивают числа, поэтому значения всё ещё ищут.
Типичные значения, одинаковые во всех браузерах:
| Клавиша | keyCode | code |
|---|---|---|
| A–Z | 65–90 | KeyA–KeyZ |
| 0–9 (основной ряд) | 48–57 | Digit0–Digit9 |
| Цифры 0–9 на цифровом блоке | 96–105 | Numpad0–Numpad9 |
| F1–F12 | 112–123 | F1–F12 |
| Enter | 13 | Enter или NumpadEnter |
| Пробел | 32 | Space |
| Escape | 27 | Escape |
| Backspace | 8 | Backspace |
| Tab | 9 | Tab |
| Shift, Ctrl, Alt | 16, 17, 18 | ShiftLeft и т. д. |
| Стрелки (влево, вверх, вправо, вниз) | 37, 38, 39, 40 | ArrowLeft, ArrowUp, ArrowRight, ArrowDown |
Больше всего keyCode ломается на знаках пунктуации. Клавиша точки с запятой даёт 186 в Chrome и Edge, но 59 в Firefox, а клавиша минуса даёт 189 в Chrome и 173 в Firefox. Кроме того, буквы дают один и тот же keyCode с Shift и без него, так что отличить «a» от «A» только по keyCode нельзя. Если вы пишете новый код, читайте code или key, а показанный здесь keyCode считайте справочным значением для старых скриптов, которые вы поддерживаете.
Что означает location
Некоторые клавиши на клавиатуре есть в двух экземплярах, и location показывает, какой из них нажат. Браузер сообщает его числом, а на этой странице он показан словом.
| Location | Значение | К каким клавишам относится |
|---|---|---|
| основная | Единственная такая клавиша | Буквы, цифры, F-клавиши, большинство остальных |
| левая | Левый экземпляр | Shift, Ctrl, Alt, Win или Cmd |
| правая | Правый экземпляр | Shift, Ctrl, Alt, Win или Cmd |
| цифровой блок | Клавиша на цифровой клавиатуре | Цифры блока, операторы, NumpadEnter, Num Lock |
Location особенно полезен для Enter и модификаторов. У основного Enter и Enter на цифровом блоке одно название клавиши Enter и одинаковый keyCode, но коды у них разные, и клавиша цифрового блока сообщает location «цифровой блок». Так же две клавиши Shift совпадают по key и keyCode, а различаются только по code и location. Если игра позволяет назначить только один Shift и вы не уверены, какой именно она слушает, нажмите каждый и сравните.
Цифры на цифровом блоке стоит пояснить отдельно. При включённом Num Lock у Numpad7 значение key равно «7», а при выключенном у той же физической клавиши key равен «Home», при этом code остаётся Numpad7, а location остаётся «цифровой блок». Подробнее об этом на странице проверка цифровой клавиатуры.
Зачем проверять, какую клавишу вы нажимаете
Переназначение клавиш. Программы вроде PowerToys Keyboard Manager в Windows и Karabiner-Elements в macOS определяют клавиши по физическому положению, а оно соответствует code. Нажмите клавишу, которую хотите переназначить, запишите code и найдите его в программе. Если клавиша после переключения языка получила не то значение, сравните key и code: если code верный, а key нет, дело в настройках раскладки, а не в оборудовании.
Клавиши со стёртыми надписями. Если обозначение на кейкапе стёрлось, нажмите клавишу здесь и прочитайте значение key. Для клавиши, которая с Shift печатает символ, нажмите её обоими способами, и в таблице появятся оба символа.
Назначения в играх. Игры обычно хранят назначения по физическим клавишам, а в их меню настроек клавиша иногда называется непривычно. Если назначение не срабатывает, нажмите клавишу здесь, чтобы убедиться, что браузер вообще её видит, и узнать, левый это модификатор, правый или клавиша цифрового блока, которую игра различает отдельно.
Написание кода. Обработчики клавиатуры в JavaScript получают то же событие, которое читает эта страница: KeyboardEvent со свойствами key, code, keyCode и location. Нажмите клавишу, которую нужно обработать, скопируйте значение code в обработчик и посмотрите строку модификаторов, чтобы понять, какие флаги будут выставлены. Для клавиш вроде Dead, Unidentified или Process таблица показывает ровно то, что получит ваш обработчик в этой раскладке.
Проверка клавиатуры перед покупкой или после пролитой жидкости. Если одна клавиша печатает не тот символ, эта страница покажет, сообщает ли оборудование правильное положение с неверным значением (это проблема раскладки) или вообще другое положение (это проблема проводки или прошивки). Чтобы проверить, что срабатывают все клавиши, запустите полную проверку клавиатуры.
Клавиши, которые не появятся
Fn обрабатывается внутри клавиатуры и до компьютера не доходит. В Windows клавиша Win открывает меню «Пуск», а Print Screen сообщает о себе только при отпускании, да и то не всегда. Медиаклавиши, клавиши яркости и сочетания Fn на ноутбуке обычно воздействуют на систему и не создают событие, которое может прочитать страница. Клавиши блокировки срабатывают: Caps Lock, Num Lock и Scroll Lock сообщают свой код, хотя macOS отправляет Caps Lock только при нажатии, но не при отпускании. Если клавиша, которую вы ждёте, молчит, сначала попробуйте её в текстовом редакторе: если там она работает, а здесь нет, значит, это одна из клавиш, которые обрабатывает система, а не сломанный переключатель.
Другие тесты клавиатуры
Эта страница показывает по одному нажатию, зато подробно. Чтобы проверить, что на клавиатуре срабатывают все клавиши, используйте проверку клавиатуры на главной странице: она переносит каждое нажатие на схему вашей раскладки. Если при одновременном нажатии нескольких клавиш появляются не все, тест на гостинг клавиатуры покажет, какие клавиши сочетания доходят, а какие пропадают. А если клавиша приходит не неправильной, а с опозданием, тест задержки клавиатуры измерит время реакции, чтобы вы могли сравнить две клавиатуры.
Частые вопросы
Как узнать, какую клавишу я нажимаю?
Откройте эту страницу и нажмите клавишу. Крупная надпись показывает название клавиши, а строка под ней code, keyCode и location. Последние 12 нажатий остаются в таблице ниже, так что можно нажать несколько клавиш подряд и потом прочитать их.
Чем отличаются key и code?
Key это смысл нажатия: символ, который клавиша печатает, или действие, которое она выполняет, например a, A, Enter или ArrowUp. Code это физическое положение клавиши, например KeyA или Digit1, и оно не меняется ни от Shift, ни от языка раскладки. Если нажать ту же клавишу с Shift, key изменится, а code останется прежним.
Используется ли keyCode до сих пор?
keyCode считается устаревшим, и браузеры рекомендуют использовать key или code, но он по-прежнему работает, и на него опирается много старого кода, учебных материалов и игровых движков. Это число: 65 для A, 13 для Enter, 32 для пробела, 27 для Escape. Значения для клавиш пунктуации в разных браузерах могут различаться, и это одна из причин, почему keyCode заменили.
Что означает location?
Location показывает, какую из двух одинаковых клавиш вы нажали. Значение «основная» относится к клавише, которая существует в единственном экземпляре, «левая» и «правая» различают две клавиши Shift, Ctrl, Alt и Win или Cmd, а «цифровой блок» означает, что клавиша находится на цифровой клавиатуре, так что Enter на цифровом блоке и основной Enter можно отличить, хотя у обоих название клавиши Enter.
Почему моя клавиша показывается как Dead или Unidentified?
Dead означает, что в вашей раскладке это клавиша с диакритическим знаком, которая ждёт следующую букву, прежде чем напечатать символ, это часто встречается в европейских раскладках. Unidentified означает, что браузер получил событие клавиши, которое не смог сопоставить с известным названием, так бывает с некоторыми медиа-, макро- и фирменными клавишами. В обоих случаях поля code и keyCode обычно всё равно определяют физическую клавишу.
Почему ничего не появляется при нажатии Fn, Print Screen или Win?
Fn обрабатывается внутри клавиатуры и не отправляется на компьютер как клавиша. Print Screen в Windows и клавишу Win перехватывает операционная система раньше, чем их увидит браузер, так же как и большинство медиаклавиш и клавиш яркости. Ни один из этих случаев не означает, что клавиша сломана, просто веб-страница их не видит.
Можно ли с помощью этого узнать код клавиши для игры или скрипта?
Да. Нажмите клавишу и берите значение code для всего, что работает с физическими клавишами: назначения в играх, AutoHotkey, обработчики событий JavaScript. Значение key нужно там, где важен набранный символ. Если библиотека или игра всё ещё просит числовой keyCode, он показан рядом с кодом.
Другие тесты клавиатуры
Каждый из тестов ниже подробнее проверяет одну сторону работы клавиатуры.
- Проверка клавиатурыБесплатная онлайн-проверка клавиатуры в браузере. Нажмите любую клавишу, и она загорится. Ничего не нужно устанавливать, ничего не отправляется.
- Тест задержки клавиатурыИзмерьте время реакции, время удержания клавиши и частоту автоповтора.
- Тест на гостинг клавиатурыНажмите много клавиш сразу: найдите гостинг и проверьте ролловер.