検査手法と判定基準

WFH のすべての診断ツールは、この頁に書かれた方法で計測し、書かれた閾値で判定します。基準を変更した場合はこの頁に日付つきで追記します。

共通原則

  1. 計測はブラウザ内で完結(ゼロアップロード) — 各ツールは Web 標準 API(KeyboardEvent / PointerEvent / Web Audio / getUserMedia 等)で計測し、結果を含む一切のデータをサーバーへ送信しません。ページの開発者ツール(ネットワークタブ)でいつでも確認できます。
    唯一の例外は回線の安定性テストです。回線を測る以上、通信そのものが計測対象になるため、当サイト内のごく小さなファイル(/ping.txt・数バイト)を 20 回読み込みます。読み込むだけで、計測値も判定結果もサーバーには送りません。キー入力・声・映像といった他のツールの検査内容が送信されないことに変わりはありません
  2. 判定は「疑い」まで — ブラウザからは分解検査ができないため、故障の断定ではなく、計測値にもとづく切り分け(ソフト起因かハード起因か)と疑いの提示を行います
  3. 対処の提示順は固定 — ①メーカー保証 → ②無償の対処 → ③有償の対処 → ④買い替え。広告・アフィリエイトが判定に影響することはありません

キーボード診断

項目計測方法判定閾値と根拠
チャタリングKeyboardEvent の keyup→keydown 間隔を計測。OS のオートリピート(event.repeat)は除外45ms 未満で疑い。人間の意図的な連打の最短間隔は一般に 60ms 超のため、機械的誤入力と切り分け可能
全キー応答event.code 単位で押下を記録(JIS/US 配列切替・テンキー表示に対応。分母は表示中の盤面のキー数)複数回押しても記録されないキーは単体故障の疑い。ただし Win キー・PrintScreen 等 OS が先取するキーは検知不能と明記
同時押し押下中キー集合の最大サイズ実測値の表示のみ(良否判定なし)

マウス診断

項目計測方法判定閾値と根拠
チャタリング同一ボタンの mouseup→mousedown 間隔80ms 未満で疑い。意図的な最速ダブルクリックでも通常 150ms 以上のため
ボタン応答event.button 単位で記録(左/右/ホイール/戻る/進む)ブラウザがサイドボタンを先取する環境があることを明記
ポーリングレートPointerEvent(getCoalescedEvents で生イベント復元)の受信間隔の中央値から推定125/250/500/1000Hz の公称段階に丸めて表示。ブラウザの間引きの影響を受けるため参考値と明記

マイクテスト

項目計測方法判定閾値と根拠
入力レベルWeb Audio の AnalyserNode で時間領域波形を取得し、ピークを dBFS 換算発話時ピークが−30dB 未満のままなら入力不足(デバイス選択・OS 音量・物理ミュートの疑い)
クリッピング振幅が最大値の 98% を超えるサンプルの検出繰り返し検出で音割れ=入力ゲイン過大と判定
録音再生MediaRecorder でブラウザ内に一時保存(ページを閉じると破棄)

イヤホン・スピーカー検査

項目計測方法判定閾値と根拠
左右テストWeb Audio(OscillatorNode)で 440Hz のテスト音を生成し、StereoPannerNode(pan = −1/+1/0)で左右に振り分け音の高さと左右の振り分けは機械が保証。「聞こえたか」は利用者の自己申告のため、判定は「片方が聞こえない状態/音割れの症状あり/異常の報告なし」の 3 種類のみで、スコアは付けない
音割れテスト低音 80Hz・中音 400Hz を再生(gain 0.15〜0.18 固定。立ち上がり・終わりを linearRamp でなめらかにしノイズを防止)ビリビリ・ガサガサ音の有無を自己申告で記録
聞こえる高さ8k〜17.4kHz の 6 段階を再生(gain 0.12)加齢による正常な変化を含むため、故障判定には使わない。マイク不使用=録音・送信なし

モニターテスト

項目計測方法判定閾値と根拠
ドット抜け・色ムラ単色 6 面(白・黒・赤・緑・青・灰50%)とグラデーション+中間灰を全画面表示機械では検出できないため、ツールは「見つけやすい画面を出す係」に徹し、判定は利用者の目視による自己申告(有り/無し)。このためスコアは付けない
リフレッシュレートrequestAnimationFrame のタイムスタンプを約 2 秒収集し、フレーム間隔の中央値 m(ms)から round(1000 ÷ m) で算出中央値を使うのは処理落ちによる外れ値を除くため。省電力設定・OS 設定・ブラウザ制限で仕様値より低く出ることがあると明記

カメラテスト

項目計測方法判定閾値と根拠
フレームレート対応ブラウザでは実際に届いた映像の枚数を 2 秒間計数(requestVideoFrameCallback)。非対応時はカメラの申告値15fps 以上で正常。15fps を切ると相手から動きのカクつきが分かるため「要注意」
実測解像度track.getSettings() の width×height(カタログ最大値ではなく現在値)表示のみ(良否判定なし)
明るさ映像を縮小 canvas に描画し平均輝度(0〜255)を算出60 未満を「暗め」と表示。映像自体は届いているため正常判定は変えない。映像・画像データは端末外に一切送信せず、集計イベントにも含めない

コントローラーテスト

項目計測方法判定閾値と根拠
ドリフト実測スティックから手を離した状態で 3 秒間、各軸(x・y)の傾きの絶対値の最大を記録(Gamepad API)最大値 10% 超でドリフトの疑い(−40 点)、5〜10% は要注意(−15 点)、5% 未満は正常。根拠: 手放しのスティックは本来中央(0)に戻る。10% 超は多くのゲームの標準デッドゾーンを超えて誤入力になる量、5〜10% はデッドゾーンに収まることが多い量
ボタン検査標準マッピング 17 ボタンの押下と回数、L2・R2 はアナログ値表示のみ(押していないボタンの良否は判定できないため)

回線の安定性テスト

項目計測方法判定閾値と根拠
応答のばらつき(ジッター)同一オリジンの極小ファイル(/ping.txt)を 0.6 秒間隔で 20 回取得し、連続する応答時間の差の平均を算出(キャッシュ回避のため毎回 URL を変える)30ms 超で要注意(−20点)、100ms 超で「途切れやすい」(−45点)。根拠: 会議の音声は一定間隔で届くことを前提に再生されるため、平均の遅さより到着間隔の揺れが欠落として知覚される
届かなかった回数3 秒を超えた応答をタイムアウトとして計上1 回ごとに −15 点(上限 −45)。2 回以上で「途切れやすい」判定
応答時間(中央値)20 回の応答時間の中央値(外れ値の影響を避けるため平均ではなく中央値)表示のみ(良否判定に使わない)
計測しないものダウンロード速度(Mbps)は計測しません会議の不調は帯域より安定性に起因することが多く、速度測定は専門サイトの寡占領域であるため、当サイトでは扱いません。また計測経路は「端末→当サイトのエッジ」であり、会議サーバーまでの経路とは一致しないことをツール上に明記しています

スコアの算定(100 点満点・減点法)

ツール算定式帯域
キーボード100 −(二重入力の検出 1 回につき 15 点。減点上限 60)。検査した範囲のみを評価90 以上 良好 / 70〜89 要注意 / 70 未満 故障の疑い
マウス100 −(勝手な 2 回入力の検出 1 回につき 15 点。減点上限 60)
マイク声が届き音割れなし = 100 / 軽い音割れ = 85 / 音割れ多発 = 60 / 入力が小さい・無音 = 50
コントローラー100 −(ドリフト実測 10% 超 = 40 点・5〜10% = 15 点を、左右のスティックそれぞれに適用)
回線100 −(ばらつき 100ms 超 = 45 点/30ms 超 = 20 点)−(届かなかった回数 × 15 点。上限 45)

イヤホン・スピーカー検査とモニターテストは、判定の根拠が利用者の自己申告(耳・目)のためスコアを付けません。カメラテストは実測値(fps・解像度・明るさ)と判定のみで、点数化はしていません。

スコアは検査できた範囲の健全度です。単発の検出は誤検知の可能性があるため、繰り返し検査して再現性を確認してください。

改定履歴: 2026-09-19 初版(キーボード・マウス・マイクの 3 ツール、スコア算定を追加)/ 2026-09-19 モニター・カメラ・イヤホン・コントローラーの 4 ツールを追加。キーボードに JIS/US 配列切替とテンキーを追加 / 2026-09-20 回線の安定性テストを追加(8 ツール体制)