キーボードテスト HID キーコード 違い
HIDとキーコードの違いを先に整理
キーボードテストでキーを押すと、キー名やコード、押下状態などが表示されることがあります。これらは同じ情報ではありません。HID、HID Usage、キーコード、スキャンコードは、それぞれ異なる役割を持っています。
最も重要なのは、HIDは入力機器との通信に関する仕組みであり、キーコードはキー入力を識別するための値だという点です。HID自体が、ブラウザに表示されるキーコードと同じものを意味するわけではありません。
| 用語 | 意味 | 確認するときのポイント |
|---|---|---|
| HID | 人が操作する入力機器とコンピューターの間で情報をやり取りするための規格 | キーボードがどのように入力情報を伝えるか |
| HID Usage | キーなどの機能を識別するための番号 | どのキー機能として定義されているか |
| キーコード | キー入力を識別する値を指す一般的な呼び方 | どのOSやAPI、テストツールが使う値なのか |
| スキャンコード | キーボードのキー操作を識別するためのコード | OSなどがキー操作をどのように認識するか |
| ブラウザのキーイベント | ブラウザがキー操作を通知するイベント | キーの位置や入力された文字など、何を示す情報なのか |
たとえば、キーボードのキーを押してブラウザ上に「A」と表示された場合、画面に表示される文字だけでは、そのキーに関するすべての情報は分かりません。キーの物理的な位置、入力された文字、OSが認識した操作、HIDで伝えられる情報は、それぞれ区別する必要があります。
また、「キーコード」という言葉には注意が必要です。説明する製品やプログラムによって、ブラウザのイベント値、OSの仮想キーコード、その他の識別値を指す場合があります。数値が表示されていても、それだけでHID Usageやスキャンコードと同じものだと判断しないようにしましょう。
HID・HID Usage・キーコード・スキャンコードは何が違う?
4つの用語を正しく理解するには、キーボードからコンピューターへ入力情報が伝わる過程と、各段階で使われる識別情報を分けて考えると分かりやすくなります。
HIDは「ヒューマンインターフェイスデバイス」の略称です。キーボードやマウスなど、人が操作する機器がコンピューターと情報をやり取りするために使われます。
HIDキーボードでは、キー操作に関する情報がHIDレポートとして伝えられます。HIDレポートは、キーの機能を識別する番号そのものではなく、定義された形式に従って入力状態などを伝える情報です。
そのため、キーボードテストでHIDという用語を見かけた場合は、通信や入力機器の仕組みに関する説明なのか、個々のキーを識別する値の説明なのかを確認してください。
HID Usage:どのキー機能なのかを示す番号
HID Usageは、入力機器の機能を識別するための番号です。キーボードでは、文字キーや修飾キー、矢印キーなどの機能を区別するために使われます。
HID Usageは、HIDの定義に従ってキーの機能を表します。ただし、番号だけを見ても、使用しているページやプログラムがどのキー名に対応付けているかを確認しなければ、意味を取り違えることがあります。
また、HID Usageと画面に表示される文字は同じではありません。あるキーの機能を識別できても、実際に入力される文字はキーボード配列や入力設定によって変わる場合があります。
キーコード:何を識別する値なのかを確認する
キーコードは、キー入力を識別する値を指す言葉ですが、すべての環境で共通の単一形式が使われているわけではありません。
たとえば、ブラウザのキーイベントには、キー入力に関する情報としてkeyやcodeなどのプロパティがあります。一方、OSの入力処理では仮想キーコードなど、別の仕組みでキーを識別することがあります。
したがって、テスト画面に「キーコード」と表示されていたら、まず次の点を確認しましょう。
- ブラウザのKeyboardEventから取得した値なのか。
- OSの入力処理で使われるコードなのか。
- HID Usageやスキャンコードなど、別の形式の値なのか。
同じキーを押しても、異なる種類のコードを表示するツール同士では、値や表記が一致しない場合があります。比較する際は、数値だけでなく、その値の名称と取得元を確認することが重要です。
スキャンコード:キー操作を識別するコード
スキャンコードは、キーボードのキー操作を識別するために使われるコードです。特にWindowsの入力処理などでは、キー操作に関する情報としてスキャンコードが扱われます。
ただし、スキャンコードとHID Usageは異なる仕組みの識別情報です。HIDで伝えられるキー情報がOSの入力処理に渡る過程では、OSやデバイスの種類などに応じた処理が行われます。両者の数値を、そのまま同じ意味として扱うことはできません。
また、ブラウザのKeyboardEvent.codeも、一般にスキャンコードそのものと同義ではありません。物理的なキーの位置に基づく識別情報を表しますが、Webページが受け取る値とOS内部のコードは別の層に属します。
4つの用語を処理の層で比較する
| 分類 | 代表的な情報 | 主な役割 |
|---|---|---|
| 入力機器との通信 | HID、HIDレポート | キー操作などの情報をコンピューターへ伝える |
| 機能の識別 | HID Usage | 入力機器の機能を定義に従って識別する |
| OSの入力処理 | スキャンコード、仮想キーコードなど | OS側でキー操作を認識・処理する |
| ブラウザの入力処理 | KeyboardEvent.key、KeyboardEvent.code | Webページがキー操作や文字に関する情報を受け取る |
このように、HID、HID Usage、スキャンコード、キーコードは、関連していても同じものではありません。キーボードテストの表示を理解するには、どの段階の情報を確認しているのかを意識することが大切です。
キーボードのキー操作がブラウザのテスト画面に届くまで
キーボードテストでキーを押したとき、物理キーの情報がそのまま画面に表示されるわけではありません。入力機器からOS、ブラウザへと処理が進み、ブラウザがWebページにキーイベントを通知することで、テスト画面が反応します。
- 物理キーを押す:キーボードがキー操作を検出します。
- 入力情報を伝える:HIDキーボードなどでは、定義された形式のHIDレポートを通じて入力状態などが伝えられます。
- OSが入力を処理する:OSがデバイスからの情報を受け取り、キー操作を入力処理に渡します。
- ブラウザがイベントを通知する:ブラウザがWebページにキー操作に関するイベントを通知します。
- テスト画面が結果を表示する:ページ側のプログラムがイベント情報を読み取り、キー名や押下状態などを画面に反映します。
この流れは仕組みを理解するための概略です。実際の処理はOS、接続方式、ブラウザ、入力方式などによって異なり、すべての機器で完全に同じ経路をたどるとは限りません。
KeyboardEvent.keyとKeyboardEvent.codeの違い
ブラウザのキー入力を確認するときに特に重要なのが、KeyboardEvent.keyとKeyboardEvent.codeです。どちらもキーイベントから取得できる情報ですが、示している内容が異なります。
| 項目 | 何を示すか | 確認に向いている場面 |
|---|---|---|
| KeyboardEvent.key | キー操作によって得られる文字や、修飾キー・矢印キーなどの意味 | 入力された文字や、特定の機能キーの動作を確認するとき |
| KeyboardEvent.code | 物理的なキーの位置に基づく識別情報 | 文字配列よりも、押したキーの位置を基準に動作を確認するとき |
たとえば、同じ位置のキーでも、キーボード配列や修飾キーの状態によって、keyが示す文字は変わることがあります。一方、codeは文字そのものではなく、キーの位置に基づいて識別するための情報です。
そのため、キーボードテストで「押したキーの位置を確認したい」のか、「実際にどの文字や機能として認識されたかを確認したい」のかによって、見るべきプロパティが変わります。
ブラウザでの確認方法やキーイベントの基本については、ブラウザでキー入力を確認する仕組みと使い方も参考になります。
同じキーでも入力文字とキーの識別情報が異なる理由
キーボードテストで混乱しやすいのが、同じ物理キーを押しているのに、表示される文字やコードが想定と異なるケースです。この場合、故障と判断する前に、キーの位置、入力文字、配列設定、イベントの種類を分けて確認しましょう。
JIS配列とUS配列では文字の配置が異なる
JIS配列とUS配列では、記号キーの配置や一部のキーの形状・位置が異なります。そのため、同じ場所にあるキーを押しても、配列や入力設定によって入力される文字が期待と異なることがあります。
物理的なキーの位置を基準に調べたい場合はKeyboardEvent.codeを、入力された文字やキーの意味を確認したい場合はKeyboardEvent.keyを確認します。配列の違いを詳しく知りたい場合は、JIS配列とUS配列の違いも参照してください。
日本語入力の状態によって文字の表示が変わる
日本語入力では、IMEの状態や変換操作によって、キー操作と最終的に入力される文字の関係が変わります。キーを押したときのイベント情報と、変換後に確定した文字列は、同じものではありません。
たとえば、キーイベント上では特定のキー操作が確認できても、IMEによる変換や入力処理を経て、画面に表示される文字が異なる場合があります。これは必ずしもキーボードの故障を意味しません。
切り分ける際は、まずキーボードテストでキー押下の反応を確認し、その後、メモ帳などの入力欄で文字入力と変換の動作を確認します。テスト画面では反応するのに日本語入力だけがうまくいかない場合は、IMEや入力設定も確認しましょう。
キーの反応が異なるときに確認するポイント
- キーの位置:押した物理キーに対応する識別情報が表示されているか。
- 入力文字:KeyboardEvent.keyや実際の入力欄に表示される文字が期待どおりか。
- 配列設定:OS側で選択しているキーボード配列が、実際のキーボードと合っているか。
- 入力方式:IMEの有効・無効や変換状態が結果に影響していないか。
- テスト環境:ブラウザのフォーカスやページ側のキー処理が入力を妨げていないか。
矢印キーなど一部のキーで想定外の動作が起きる場合は、キーの識別情報だけでなく、アプリケーション側の動作も関係します。画面がスクロールするなどの問題については、矢印キーで画面がスクロールする原因と直し方も確認すると、入力自体の問題とページの動作を切り分けやすくなります。
キーボードテストで確認できること・できないこと
キーボードテストサイトでは、キーを押したときにブラウザが入力イベントを受け取るか、押下状態が正しく変化するかを確認できます。ただし、ブラウザ上でキーが反応したからといって、HIDレポートやスキャンコードを含む入力処理のすべてが正常だと判断できるわけではありません。
オンラインのキー入力テストで確認できること
- 単独キーの反応:文字キー、数字キー、矢印キー、ファンクションキーなどを押したときに反応するか。
- 修飾キーの状態:Shift、Ctrl、Alt、Metaなどを押したときに、テスト画面が状態を検出できるか。
- 同時押し:複数のキーを押したときに、それぞれの入力が検出されるか。
- キーイベントの情報:テストサイトが表示する場合、KeyboardEvent.keyやKeyboardEvent.codeなどの値が期待どおりか。
- 押下と解放:キーを押したときだけでなく、離したときにも状態が正しく更新されるか。
例えば、Aキーを押して画面に反応が出ても、表示された文字とキーの識別情報は同じものではありません。文字入力が目的なら表示文字やIMEの動作を確認し、ゲーム操作やキー配置の検証が目的ならKeyboardEvent.codeなども確認すると、原因を絞り込みやすくなります。
キーボードテストだけでは判断できないこと
- HIDレポートの内容:一般的なブラウザテストでは、USB機器から送られた生のHIDレポートを直接確認できません。
- スキャンコードの完全な検証:ブラウザが公開するキー情報だけでは、OSに届く前の低レベルな入力処理をすべて検証できません。
- 物理的な故障の確定:反応しない原因が、スイッチの故障、接続不良、OS設定、ブラウザの制限のどれなのかは、テスト結果だけでは断定できません。
- すべてのアプリでの動作:ブラウザで反応しても、ゲームや特定のソフトで同じように認識されるとは限りません。
特定のキーだけ反応しない場合は、別のブラウザやアプリでも試し、必要に応じてOSのキーボード設定やメーカーの診断機能を確認してください。同時押しで入力が抜ける場合は、Nキーロールオーバーとゴーストキーの違いも参考になります。
キーコードの表示や反応がおかしいときの確認手順
キーコードの表示が想定と違うときは、すぐにキーボードの故障と判断せず、入力したキー、配列設定、IME、ブラウザの順に確認しましょう。次の手順なら、設定の問題とハードウェアの問題を切り分けやすくなります。
1. 物理キーとテスト画面の反応を確認する
まず、問題のキーを数回押して、押下と解放が検出されるかを確認します。可能であれば、同じ種類の別のキーも試してください。特定のキーだけ反応しないのか、キーボード全体で反応が不安定なのかによって、次に確認すべき箇所が変わります。
2. JIS配列とUS配列の設定を確認する
キーボード本体の配列とOSの設定が一致していないと、記号キーなどで入力結果が期待と異なることがあります。刻印どおりの文字が入力されない場合は、JIS配列とUS配列の設定を確認してください。
一方、KeyboardEvent.codeは物理的なキー位置に基づく識別に使われ、KeyboardEvent.keyは入力状況や配列などに応じたキーの値を表します。この違いを踏まえ、画面に出た文字だけでキーの識別が間違っていると判断しないことが大切です。
3. IMEと修飾キーの状態を確認する
日本語入力中は、IMEの変換状態によって文字の入力結果が変わります。英数字入力と日本語入力を切り替え、同じキーの反応を比較してください。ShiftやCtrl、Altなどを組み合わせたときだけ問題が起きる場合は、修飾キーの押下状態やショートカットとの競合も確認します。
キー入力そのものではなく、漢字変換や入力モードの切り替えだけに問題があるなら、漢字変換できないときのIME・キー設定の対処法を確認するとよいでしょう。
オンラインのキーボードテストで反応しないキーがあれば、別のブラウザでも試します。さらに、メモ帳などの文字入力アプリや、問題が起きているゲームでも動作を確認してください。
- 特定のブラウザだけで起きる:ブラウザの設定、フォーカス、ページ側の処理などを確認する。
- 特定のアプリだけで起きる:アプリのキー割り当てやショートカット設定を確認する。
- 複数のアプリで同じキーが反応しない:OSの設定やキーボード本体、接続状態を確認する。
テストページにフォーカスがない場合や、ブラウザが特定のキーを処理する場合には、キーイベントが期待どおりに届かないことがあります。テスト画面を一度クリックしてから再試行してください。
5. 外付けキーボードやMacでも比較する
外付けキーボードを使用している場合は、接続をやり直し、別のUSBポートや接続方式でも試します。無線接続なら、電池残量や再接続も確認してください。
Macでは、Windowsと修飾キーの扱いやOSの入力設定が異なるため、同じキーでもアプリや環境によって結果が変わることがあります。Windows向けのキー表示をそのまま基準にせず、使用中のOSとテストサイトが対応しているキー情報を確認しましょう。
6. 必要なら低レベルの診断に切り替える
ブラウザでは正常なのに特定のソフトで不具合が続く場合や、HIDレポートそのものを確認する必要がある場合は、OSの診断機能や対応する開発者向けツールを使用します。ブラウザのキーイベント確認だけで、USB-HIDの通信やスキャンコードの異常まで特定することはできません。
HID Usageは、HIDの仕組みでキーなどの機能を識別するための値です。一方、キーコードという言葉は、OSやブラウザ、ライブラリなどによって異なる種類の値を指す場合があります。数値が似ていても、同じ規格の同じ項目を表しているとは限りません。
比較するときは、表示された数値だけでなく、その値がHID Usageなのか、スキャンコードなのか、ブラウザのキーイベントに含まれる情報なのかを確認してください。
ブラウザで確認する際は、KeyboardEvent.keyとKeyboardEvent.codeを混同しないことが重要です。前者はキー入力の意味や入力結果に関係し、後者は物理的なキー位置を識別するために使われます。
例えば、配列設定が異なる環境では、同じ位置のキーでもkeyの値が変わることがあります。codeの表示が期待どおりでも、文字入力が意図した結果になるとは限りません。反対に、入力文字が異なるからといって、物理キーの故障が確定するわけでもありません。
HIDは、キーボードなどの入力機器がコンピューターと情報をやり取りするための仕組みです。ただし、実際に利用できるキー情報やイベントの扱いは、機器、OS、ブラウザ、アプリの対応状況によって異なります。特殊キーやシステムに関係するキーは、一般的な文字キーと同じようにテストできない場合があります。
文字コードとキーの識別情報は別のもの
キーボードで入力した文字と、そのキーを識別する情報は区別する必要があります。文字コードは文字を表現するための仕組みであり、HID Usageやスキャンコード、ブラウザのキーイベントと同じものではありません。日本語の漢字や記号が入力できない場合も、文字コードだけを原因と決めつけず、IMEや配列設定、アプリ側の入力処理を確認しましょう。
キーコードの表示だけで故障を確定しない
オンラインテストで数値が表示されない、想定した名前と違う、特定のキーだけ反応しないといった結果は、診断の手掛かりにはなります。しかし、それだけでキーボードの故障やHID規格の問題を断定することはできません。複数の環境で比較し、問題が起きる条件を絞り込むことが大切です。
まとめ:目的に合ったキーボードテストを選ぶ
HID Usage、スキャンコード、キーコード、ブラウザのキーイベントは、キーボード入力の異なる段階や目的に関係する情報です。オンラインのキーボードテストは、キーが反応するか、ブラウザにどのような情報が届くかを確認するのに便利ですが、低レベルの通信や物理的な故障をすべて診断できるわけではありません。
まずはキーボードテストで問題のキーを確認し、JIS・US配列、IME、修飾キー、別のブラウザやアプリを順に比較してください。HIDレポートやスキャンコードの検証が必要な場合は、OSや対応する診断ツールに切り替えるのが適切です。
よくある質問
HIDとキーコードの違いは何ですか?
HIDは入力機器がコンピューターと情報をやり取りするための仕組みです。キーコードは、文脈によってキー入力を識別する値などを指します。両者は同じものではありません。
キーボードのキーコードとは何ですか?
キー入力を識別するための値を指します。ただし、OSやブラウザ、開発環境によって意味が異なる場合があるため、具体的な種類を確認する必要があります。
HID Usageとスキャンコードは同じですか?
同じではありません。HID UsageはHIDの仕組みで機能を識別する値で、スキャンコードはキー操作に関係する別の識別情報です。数値を直接同一視しないでください。
KeyboardEvent.keyとKeyboardEvent.codeの違いは何ですか?
keyは入力されたキーの意味や値に関係し、codeは物理的なキー位置の識別に使われます。配列や入力状態によって、両者の値は異なることがあります。
JIS配列なのにUS配列のような入力になるのはなぜですか?
キーボード本体の配列とOSの設定が一致していない可能性があります。OSのキーボード配列設定を確認し、必要に応じて設定を合わせてください。
キーコードが表示されない場合は故障ですか?
必ずしも故障ではありません。ブラウザの制限、ページのフォーカス、キーの種類、OSやアプリの処理などでも表示されないことがあります。別の環境でも確認してください。
オンラインのキーボードテストで物理的な故障を判定できますか?
故障の可能性を調べる手掛かりにはなりますが、テスト結果だけでは確定できません。別のブラウザやアプリ、接続方法で比較し、必要に応じてハードウェアの診断を行ってください。
MacでもWindowsと同じキーコードになりますか?
すべてが同じとは限りません。OSやブラウザ、キーの種類によって扱いが異なる場合があります。使用環境で表示される値と対応仕様を確認してください。