本文へ移動
Develop Tools
← 使い方ガイドへ戻る

キーを1回押したのに2回入力される原因|チャタリングを確認

「a」が「aa」になる現象は、短時間の再入力、長押しの自動リピート、アプリ側処理を区別して確認します。

正常なkeydownとkeyup、短時間の再入力、長押しrepeatの違い
正常なkeydownとkeyup、短時間の再入力、長押しrepeatの違い

結論:最初に確認すること

短く一度押す操作を複数回行い、チャタリング疑いの履歴を確認します。長押し中だけ連続する場合はOSの自動リピートも確認します。

ブラウザの検出結果だけで物理故障を断定しません。同じ操作を別アプリ、別ブラウザ、可能なら別端末でも比較します。

キーボードテスターで入力を確認する

対象キーを単独で押し、次に普段使う組み合わせで押します。画面上の押下中・確認済みキー、同時押し履歴、チャタリング疑いを順に見ます。

  • 初期値50msで10回程度押す
  • 判定間隔を10〜300msの範囲で調整する
  • 長押しせず、毎回完全に離す
  • 別アプリで文字の重複も比較する

結果の読み方

テスターはkeyupから次のkeydownまでが設定値以内の再入力を疑いとして記録し、ブラウザのevent.repeatは判定から除外します。疑いの表示だけでチャタリング確定とはしません。

観測結果次に確認する場所
テスターでも反応しないキーボード本体、接続、OSの認識を優先
テスターでは反応する対象アプリのフォーカス、ショートカット、キー割り当てを優先
特定の組み合わせだけ欠ける配列設定、同時押し仕様、ブラウザ予約キーを確認
短時間に複数回記録される自動リピートとチャタリングを区別して再確認

原因を層ごとに切り分ける

入力経路はキーボード本体だけではありません。接続、OS、ブラウザ、Webアプリを一段ずつ比較すると、設定変更の範囲を絞れます。

確認層着目点比較方法
Physical Keyboardスイッチ、接点、キーキャップ、配列単独キーと複数キーを同じ条件で押す
USB / Bluetoothケーブル、USBポート、電池、無線接続有線・無線、別ポート、再接続で比較する
Operating System配列、IME、固定キー、キーリピートOS設定と別アプリで同じキーを試す
Browserフォーカス、ショートカット、イベント処理別タブ・別ブラウザでも再現するか確認する
Web Applicationキー割り当て、入力欄、ゲーム設定テスターの結果と対象アプリの結果を比較する
候補目安確認方法
キーボード本体特定キーだけ不安定、別PCでも再現清掃、別接続、メーカーの診断手順を確認
接続複数キーが一斉に途切れる、無線時だけ発生別USBポート、有線接続、電池交換で比較
OS設定配列や修飾キーの意味が想定と違う入力言語、配列、固定キー、リピート設定を確認
ブラウザ・アプリテスターでは反応するが対象アプリで反応しないフォーカス、ショートカット、キー割り当てを確認

仕様と開発時の注意点

KeyboardEvent.repeatはキーを押し続けた自動反復でtrueになります。一方、チャタリング疑いは解放後の短い再入力として観測されるため、同じ連続入力でも時間関係が異なります。

window.addEventListener('keydown', event => {
  if (event.repeat) return;
  // 物理的な再入力候補だけを別途比較する
});

ブラウザやOSが予約しているキー操作は、ページへイベントが届かない場合があります。テスターの表示と物理キーの状態が常に一対一になるとは限りません。

設定変更後に同じ条件で再テストする

判定間隔を変更した場合も、同じ回数・同じ押し方で比較します。別PCでも同じキーにだけ疑いが出るかを確認すると範囲を絞れます。

  • 一度に変更する設定は一つにする
  • 同じキーを同じ順序・同じ組み合わせで押す
  • 押下中表示が解放後に消えることも確認する
  • 改善しなければ変更を戻し、次の層を確認する

プライバシーと参考仕様

テスターは入力状態をブラウザ内で処理します。WebHIDで製品情報を確認する操作はブラウザの許可が必要です。記事の技術説明は次の標準仕様と公式情報を基準にしています。

資料URL確認できる内容
W3C「UI Events」https://www.w3.org/TR/uievents/keydown・keyup・修飾キーなど、ブラウザの入力イベント仕様
W3C「UI Events KeyboardEvent key Values」https://www.w3.org/TR/uievents-key/KeyboardEvent.keyが返す値の標準
W3C「UI Events KeyboardEvent code Values」https://www.w3.org/TR/uievents-code/物理キー位置を表すKeyboardEvent.codeの標準
MDN「KeyboardEvent」https://developer.mozilla.org/docs/Web/API/KeyboardEventkey・code・repeat・isComposingなどの開発者向け解説
Microsoft「Mouse and keyboard problems in Windows」https://support.microsoft.com/windows/mouse-and-keyboard-problems-in-windows接続、USB、電池、清掃などの一般的な確認手順

実務的な確認例

最初に問題が起きるアプリ名、キー、単独入力か同時押しか、接続方式を記録します。再現条件を固定すると、結果を比較しやすくなります。

テスターで同じ操作を行い、結果が異なる層だけ設定を変更します。変更後も同じ条件で再テストしてください。

  1. 配列とサイズを実機に合わせる
  2. 問題のキーを単独で押して離す
  3. 普段使う組み合わせでも押す
  4. 別アプリまたは別ブラウザで比較する
  5. 変更内容と再テスト結果を記録する

テスターで確認できるのはブラウザへ届いた入力です。ハードウェア故障、無線品質、アプリ内部処理を自動診断するものではありません。

よくある質問

テスターで反応しなければキーボードの故障ですか?
故障とは断定できません。接続、OSの配列とアクセシビリティ設定、ブラウザのフォーカス、対象アプリのキー割り当てを分けて確認してください。
入力したキーの内容はサーバーへ送信されますか?
キーボードテスターの判定処理はブラウザ内で完結し、入力イベントをDevelopToolsのサーバーへ送信しません。

ブラウザで試す

入力内容はブラウザ内で処理されます。元データを残したうえで、結果を確認してから保存・共有してください。

キーボード入力をテストする