押したキー確認(キーコード判定)
キーを押すと、その名前、コード、従来の keyCode の数値、左右やテンキーの区別がすぐにわかります。表示が消えたキーキャップの確認、キーの割り当て変更、ゲームの設定、プログラミングに役立ちます。
| key | code | keyCode | location | modifiers |
|---|---|---|---|---|
| – | ||||
キーを押すだけで、押したキーの名前、コード、数値の keyCode、左右やテンキーの区別がわかります。下の枠の大きな表示は key の値、その下の行に code、keyCode、location が表示され、表には直近の12回分が残ります。押したキー確認やキーコード確認に使えます。
キー入力判定ツールの使い方
- ページのどこかをクリックするか、枠をタップして、キーボードのフォーカスを当てます。
- キーを押します。大きな表示にキーの名前が出て、その下の行に code、keyCode、location が表示されます。Shift、Ctrl、Alt、Meta を押しながらなら、modifiers の行に一覧が出ます。
- 続けてキーを押します。それぞれが「直近の入力」の表に、同じ5つの項目つきで追加されます。新しいものが上で、最大12行です。
- 「リセット」を押すと、表示と表が消えます。
キーを押し続けると OS が入力を繰り返しますが、リピートは大きな表示だけを更新し、表には追加されません。長押ししても、表では1行のままです。スペース、Tab、BackSpace、上下の矢印キー、スラッシュ、引用符のキーは、ページがスクロールしたり、フォーカスが動いたり、ブラウザのクイック検索が開いたりしないよう、テスト中は捕捉されます。Ctrl や Command を押しながら押したキーは、通常のショートカットとしてブラウザに渡されます。
key と code:どちらが必要?
ブラウザは、1回の押下を2通りで表し、それぞれが別の疑問に答えます。
- 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 の左のキーは、Q を入力する AZERTY 配列のキーボードでも、世界中どこでも KeyA です。数字の段は 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 は numpad |
| 古いコードが期待する数値 | keyCode | 65、13、32 |
ゲームの割り当て、キーの割り当て変更ツール、どの配列でも同じ感覚で使いたいものには、code を使います。テキストの処理、検索のショートカット、ユーザーがどの文字を意図したかを気にするものには、key を使います。
keyCode とは、なぜまだ表示するのか
keyCode は、ブラウザが最初に採用したキーの通知方法で、キーごとに1つの数値を持ち、おおむね 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 が破綻するのは、記号キーです。セミコロンのキーは Chrome と Edge では 186、Firefox では 59、マイナスのキーは Chrome では 189、Firefox では 173 を報告します。また、文字キーは Shift を押していても押していなくても同じ keyCode なので、keyCode だけでは「a」と「A」を区別できません。新しくコードを書くなら、code か key を読み、ここに表示される keyCode は、保守している古いスクリプトの参照用と考えてください。
location の意味
キーボードには、2つ存在するキーがいくつかあり、location はどちらを押したかを示します。ブラウザは数値で通知しますが、このページでは言葉で表示します。
| location | 意味 | 該当するキー |
|---|---|---|
| 標準 | そのキーが1つだけ | 文字、数字、F キー、そのほかの大半 |
| 左 | 左側のキー | Shift、Ctrl、Alt、Windows または Command |
| 右 | 右側のキー | Shift、Ctrl、Alt、Windows または Command |
| テンキー | テンキー上のキー | テンキーの数字、演算子、NumpadEnter、NumLock |
location が最も役に立つのは、Enter と修飾キーです。メインの Enter とテンキーの Enter は、どちらもキー名が Enter で、keyCode も同じですが、code は異なり、テンキーのほうは location がテンキーになります。左右の Shift も、key と keyCode は同じで、code と location だけが区別します。ゲームで Shift を1つしか割り当てられず、どちらが使われているか不明な場合は、両方を押して比べてください。
テンキーの数字には補足があります。NumLock がオンのとき、Numpad7 の key は「7」で、オフのときは同じ物理キーの key が「Home」になります。code は Numpad7 のままで、location もテンキーのままです。詳しくはテンキーテストのページで説明しています。
押したキーを確認したい場面
キーの割り当て変更。 Windows の PowerToys Keyboard Manager や macOS の Karabiner-Elements などのツールは、キーを物理的な位置で識別するので、code と対応します。割り当てを変えたいキーを押して code を控え、ツールの中でそれを探してください。言語を切り替えた後に意味が変わってしまったキーは、key と code を比べます。code が合っていて key が違うなら、ハードウェアの故障ではなく、配列の設定です。
表示が消えたキー。 キーキャップの印字が消えてしまったら、ここで押して key の値を読みます。Shift を押すと記号が出るキーなら、両方の押し方で押すと、表に両方の文字が出ます。
ゲームの割り当て。 ゲームは通常、物理キーで割り当てを保存し、設定画面ではキーが見慣れない名前で出ることがあります。割り当てが反応しないときは、ここでそのキーを押して、そもそもブラウザに見えているか、ゲームが別扱いする左右の修飾キーやテンキーのキーではないかを確かめてください。
プログラミング。 JavaScript のキーボードハンドラーは、このページが読み取るのと同じ、key、code、keyCode、location のプロパティを持つ KeyboardEvent を受け取ります。処理したいキーを押して、code の値をハンドラーにコピーし、modifiers の行で、どのフラグが立つのかを確認してください。Dead、Unidentified、Process のようなキーでは、その配列でハンドラーが何を受け取るのかが、表にそのまま出ます。
購入前や液体をこぼした後の確認。 あるキーが違う文字を入力するとき、このページを使うと、ハードウェアが正しい位置を違う意味で通知している(配列の問題)のか、まったく別の位置を通知している(配線かファームウェアの問題)のかがわかります。すべてのキーが反応するかを確かめるには、代わりにキーボードテストをお使いください。
表示されないキー
Fn キーはキーボード内部で処理され、パソコンには届きません。Windows では、Windows キーはスタートメニューを開き、Print Screen は離したときにだけ、それも通知されないこともあります。メディアキー、輝度キー、ノートPCの Fn の組み合わせは、ページが読めるキーイベントを出さずに、システムを操作するのが普通です。ロック系のキーは反応します。Caps Lock、NumLock、Scroll Lock はそれぞれコードを通知しますが、macOS の Caps Lock だけは、押したときにしか通知せず、離したときは送りません。期待したキーが何も出ないときは、まずテキストエディターで試してください。そこでは動いて、ここでは動かないなら、壊れたスイッチではなく、上に挙げたシステムが処理するキーです。
関連するキーボードテスト
このページは、1回の押下をすべて詳しく表示します。キーボードのすべてのキーが反応するかを確認するには、トップのキーボードテストを使うと、押下が配列の図に対応づけられます。複数のキーを同時に押して一部が表示されないなら、キーボード同時押しテストで、同時押しのどのキーが届き、どれが落ちるかを調べられます。キーが間違っているのではなく、届くのが遅いと感じるなら、キーボード遅延テストで反応速度を測り、2台のキーボードを比較できます。
よくある質問
自分が押しているキーを調べるにはどうしますか?
このページをクリックして、そのキーを押してください。大きな表示にキーの名前が出て、その下の行に code、keyCode、location が表示されます。直近の12回分は下の表に残るので、続けて何個かキーを押しても、後から読み返せます。
key と code の違いは何ですか?
key は押下の意味で、入力される文字や実行される動作です。a、A、Enter、ArrowUp などが該当します。code は物理的なキーの位置で、KeyA や Digit1 のように表し、Shift やキーボードの言語配列では変わりません。同じキーを Shift つきで押すと、key は変わりますが、code は同じままです。
keyCode は今も使われていますか?
keyCode は非推奨で、ブラウザは key か code を推奨していますが、現在も動作し、古いコードやチュートリアル、ゲームエンジンの多くがまだ使っています。数値で、A は 65、Enter は 13、スペースは 32、Escape は 27 です。記号キーの値はブラウザによって異なることがあり、それが置き換えられた理由の1つです。
location とは何ですか?
location は、複数あるキーのうち、どちらを押したかを表します。standard は1つしかないキー、left と right は 2 つある Shift、Ctrl、Alt、Windows または Command の左右、numpad はテンキー上のキーです。そのため、メインの Enter とテンキーの Enter は、どちらもキー名が Enter でも区別できます。
キーが「Dead」や「Unidentified」と表示されるのはなぜですか?
Dead は、そのキーが配列上のアクセント記号キーで、次の文字を待ってから文字を出す状態であることを示します。ヨーロッパ系の配列でよく見られます。Unidentified は、ブラウザが既知の名前に割り当てられないキーイベントを受け取ったことを示し、一部のメディアキー、マクロキー、メーカー独自のキーで起こります。どちらの場合も、code と keyCode の欄で、物理的なキーはわかることが多いです。
Fn、Print Screen、Windows キーを押しても何も表示されないのはなぜですか?
Fn はキーボード内部で処理され、キーとしてパソコンに送られません。Windows の Print Screen と Windows キーは、ブラウザが見る前に OS が横取りします。メディアキーや輝度キーの大半も同様です。どれも故障ではなく、ウェブページから見えないだけです。
ゲームやスクリプトで使うキーコードを調べられますか?
はい。そのキーを押して、ゲームの割り当て、AutoHotkey、JavaScript のイベントハンドラーなど、物理キーで動くものには code の値を使い、入力された文字を気にするものには key の値を使ってください。ライブラリやゲームがまだ数値の keyCode を求める場合も、code の隣に数値が表示されます。
ほかのキーボードテスト
下のテストでは、キーボードの別の側面をそれぞれ詳しく調べられます。