piapia123
ja

デバイス総合テスト

メディア

処理はすべてブラウザ内で完結します。データは送信されません

キーボード

ここをクリックして任意のキーを押してください

読み取りはすべて端末内で完結し、通信は行いません。⚠️ 各タブの監視とメディアは離れるときに解放します。カメラとマイクはそのタブが有効な間だけ開き、離れると停止します。

デバイスで確認できるものを 1 ページにまとめました。キーボード、マウス、タッチ、カメラ、マイク、センサー、バッテリー、ゲームパッドの 8 項目をタブで切り替えます。 ⚠️ 意図した設計が二つあります。第一に、各タブは自分が有効な間だけ許可を求め、イベントを登録し、離れるときに解放します —— ページを開いた瞬間にカメラとマイクを開くのは不安を与えるうえ、ブラウザーに「このサイトがカメラを使い続けている」という記録を残します。カメラのタブに切り替えて「開く」を押したときだけ許可を求め、離れれば `track.stop()` します。第二に、これらの API はブラウザーや端末によって欠け方が大きく異なります。欠けているときの現れ方は多くの場合「イベントが来ない、値が空」です。このページは 0 を表示する代わりに「このブラウザーは提供していません」とはっきり書きます —— 0 を見た人は壊れていない機器を直しに行くためです。 読み取りはすべて端末内で完結し、通信も送信も行いません。

機能

  • キーボード:押すと code / key / keyCode と修飾キーの状態を表示し、メイン領域でまだ押していないキーの進捗も出します
  • マウス:左右と中央、サイド 2 ボタン、ホイールの向きと換算ステップ、ダブルクリック判定、ポインター位置と速度、pointerType
  • タッチ:最大接触点数と現在の各点の座標、さらに圧力が本当に取得できるかを判定(常に 0.5 なら非対応)
  • カメラ:デバイスを一覧し、開いたあとは実際にネゴシエートされた解像度とフレームレートだけを表示。プレビューは既定でオフ、いつでも非表示にできます
  • マイク:AnalyserNode の RMS によるリアルタイム音量バー。ワンクリックで停止
  • センサー:deviceorientation と devicemotion の値。データが無いときは 0 ではなく「提供されていません」と説明します
  • バッテリー:getBattery の残量と充電状態。API が無い場合は明確に案内します(多くのブラウザーが削除済み)
  • ゲームパッド:getGamepads のボタンとスティックの状態。接続して任意のボタンを押すと認識されます
  • 各タブは離れるときにイベントとメディアを解放します。カメラとマイクはそのタブが有効な間だけ開きます

使い方

  1. 上のタブで項目ごとに確認します。キーボードとマウスはボタンを押さなくても結果が出ます
  2. カメラとマイクのタブは「開く」を押したときだけ許可を求めます。同意するまで開きません
  3. センサーとゲームパッドはデスクトップではデータが無いことが多く、その場合は理由を表示します
  4. 確認が終わって離れるかページを閉じると、カメラとマイクは自動で停止します

よくある質問

ページを開いたときにカメラが自動で開かないのはなぜですか
ページを開いた瞬間にカメラとマイクを開くのは不安を与えるうえ、ブラウザーに「このサイトがカメラを使い続けている」という記録を残すためです。タブに切り替えて「開く」を押したときだけ許可を求め、離れればすぐに `track.stop()` します。この種のツールで最も避けるべき間違いです。
バッテリーが「提供されていません」と出るのはなぜですか
Battery Status API は指紋採取に使われやすいため、プライバシー上の理由から多くのブラウザーが削除しました。Firefox は実装したことがなく、Chrome も多くの環境で削除済みです。つまり表示はブラウザーの挙動で、機器の故障ではありません。
タッチの圧力が非対応と出るのはなぜですか
タッチイベントの仕様では、圧力に非対応の機器は `pressure: 0.5` を返すと定められています。これは「半分押した」ではなく「分からない」という意味です。そのため常に 0.5 のときは非対応と判定し、半分埋まったバーで誤解させないようにしています。
センサーのデータが出ないのはなぜですか
傾きと動きのデータは端末内蔵のセンサーから取得します。多くのデスクトップには無いため、しばらく待ってもデータが来なければ 0 を並べる代わりに「このブラウザーは提供していません」と表示します。

関連ツール