Keymap Labs research · 8分

ブラウザのゲームパッド互換性:テストでわかること

コントローラーの認識、標準マッピング、セキュアコンテキスト、ブラウザやOS間での検証に関する実用的な互換性の注意点です。

Web Gamepad APIを使用すると、ブラウザが公開を許可したコントローラーオブジェクトにページからアクセスできます。これは非常に便利ですが、利用可能であっても、プラットフォーム間でデバイス名、ボタンの並び順、軸の並び順、機能サポートが同一であるとは限りません。

ユーザーアクティベーションと認識

ブラウザは、接続されたデバイスを認識する前に、ゲームパッドのボタン入力を待機する場合があります。これにより受動的なフィンガープリントを減らせますが、コントローラーが物理的に接続されていても navigator.getGamepads() 最初は空の項目を返します。Keymap Labsはユーザーにボタンを押すよう促し、現在のリストを検査し続けながら接続イベントを待機します。

一部のブラウザのデバイス機能にはセキュアな接続が必要です。使用してください https://keymap.ioを使用し、ブラウザを最新の状態に保ち、結果を比較する際はコピーされたページや埋め込みバージョンのページを避けてください。

標準および汎用マッピング

ゲームパッドオブジェクトは標準マッピングを宣言でき、これによりフェイスボタン、ショルダーボタン、トリガー、スティック、方向ボタンの一般的な配置が提供されます。汎用デバイスはマッピングが空の場合があり、デバイス固有の順序で生の配列を公開します。

Keymap Labsは常に生のボタンインデックスと軸の値を表示します。これにより、コントローラーが馴染みのある図と一致しない場合でもツールが役立ちます。不当な確信を持って汎用入力を名前変更することはありません。

アナログトリガーは、スタックに応じて、小数値を持つボタン、個別の軸、またはデジタルボタンとして表示される場合があります。タッチパッド、ジャイロ、バッテリー状態、LED、ハプティクスなどの追加機能は、コアマッピングを通じて一貫して利用できるわけではなく、標準的な診断範囲外です。

接続とインデックスの動作

ゲームパッドはブラウザセッション内でインデックスを受け取ります。切断して再接続すると、アクティブな項目が変わる可能性があります。ライブラボは利用可能なデバイスを選択し、接続の変更に応答します。複数のコントローラーが認識されている場合はデバイスセレクターを使用してください。

ワイヤレスモードでは、USBモードとは異なる識別子や機能セットが公開される場合があります。その違いはトラブルシューティング中に記録しておくべきです。ブラウザから見える識別子は、プライバシーやドライバーの理由で汎用的なものになることもあります。

検証マトリックス

厳密な互換性の比較には、OSやブラウザエンジンを横断した物理デバイスが必要です。Keymap Labsは標準APIを使用し、欠落しているボタンや軸を防御的に処理しますが、オンラインテストですべてのコントローラードライバーをエミュレートすることはできません。

有用な比較記録には以下が含まれます:

  • OSとそのバージョン
  • ブラウザエンジンとそのバージョン
  • コントローラーのモデルとファームウェア
  • 有線、Bluetooth、または専用レシーバー
  • 報告されたID、マッピング、軸とボタンの数
  • トリガーの表現とスティックの順序
  • 接続、再接続、フォーカスの動作

結果は「どこでも動作する」という不変の証明ではなく、日付付きの観測結果として扱う必要があります。ブラウザやOSのアップデートにより、マッピングが時間の経過とともに変化する可能性があります。

空の結果の解釈

ページ上にコントローラーが表示されない場合、デバイスがない、ユーザーアクティベーションがない、ブラウザの制限、競合するアプリケーション、ドライバー層、または接続の問題が考えられます。 ゲームパッド検出ガイド では、それらの層を順を追って確認します。

デバイスは表示されているが視覚的なラベルが間違っている場合、生のインデックスの変化で入力がブラウザに到達していることを確認できます。軸が中央に戻らない場合、 スティックドリフトテスト は時間指定のサンプルを追加しますが、その結果は現在のマッピングとキャリブレーションに依存します。

互換性の約束

Keymap LabsはGamepad APIを公開する最新のブラウザをサポートしており、利用できない場合は明示的なフォールバック状態を提供します。アカウント、ブラウザ拡張機能、ドライバーは必要ありません。高度なコントローラー機能やユニバーサルラベルを保証するものではありません。

その約束は意図的に正確なものです。ユーザーはプラットフォームが許可する範囲で動作する生の診断結果を受け取り、許可されない場合は有用な説明を受け取ります。