ByteScope

Mouse Test

ボタン5個、チャタリングのヒストグラム、ノッチ単位のホイール計、正直なポーリングレート推定——疑わしいマウスを載せる4連の診断台。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

1. ボタン

下の図の上で各ボタンを押してください。押している間は点灯し、一度反応したボタンは緑の枠で残るので、5 つを 1 つずつ確認できます。

ボタン押下回数状態
サイド(戻る)0未確認
0未確認
中央(ホイール)0未確認
0未確認
サイド(進む)0未確認

サイドボタンで「戻る/進む」が起きないようブラウザに要求していますが、従わないブラウザもあります。テスト中にページが移動したら、ボタンの故障ではなくブラウザ側の判断です。

2. ダブルクリックとチャタリング

普段どおりの間隔でターゲットをクリックしてください。意図的なダブルクリックではなく、単発のクリックで。結果に意味が出てくるのは 30 回あたりからです。

まだ記録がありません。

50 ms 未満の間隔は、人が指を離してもう一度押すには速すぎます。摩耗したマイクロスイッチのチャタリングはこう見えますが、極端に速いダブルクリック 1 回もまったく同じに見えます。診断ではなく手がかりとして読んでください。1 回だけなら何の証拠にもならず、30 回以上の通常のクリックで繰り返し出るなら対処する価値があります。

3. スクロールホイール

枠の中でスクロールしてください。枠内ではページはスクロールしません。ちょうど 10 クリック回して合計を見れば、飛びや二重カウントが分かります。

ここでスクロール
ノッチ(Y)
-ノッチ
ピクセル(Y)
-px
生の deltaY
-
deltaMode
-
回した合計
0.00ノッチ
差引(Y)
0.00ノッチ
イベント数
0
ノッチ(X)
-ノッチ

同じ 1 ノッチでも Chrome は deltaY 100、Firefox は deltaY 3 と送ってきます。上のノッチ値は両者が一致するよう正規化したもので、隣に生の値も並べています。

4. ポーリングレート

枠の中でポインタを数秒間、円を描くように動かしてください。間隔が 30 個に満たないうちは信頼度「低」と表示されます。

この中でポインタを動かす
受信レート
-Hz
近い標準値
-Hz
信頼度
-
間隔の中央値
-ms
間隔の数
-
除外
-

これはブラウザがポインタイベントを届けた速さであって、マウスの実際のレポートレートではありません。イベントの間引き、ディスプレイのリフレッシュレート、バックグラウンドの負荷が間に入るので、下限値として見てください。

DPI はここでは測れません。動きは、OS がポインタ加速と表示スケーリングを適用したあとの CSS ピクセルとして届くためです。

このツールについて

怪しいマウスを繋いだら、このページは4つの計測器を備えた診断台になります。ボタンテストでは画面上のマウス図が左・中・右と2つのサイドボタンの押下に反応して光り、ボタンごとに「反応済み」マークと押下回数を記録するので、「サイドボタンは生きているのか」が数秒で決着します。右クリックのコンテキストメニューは抑止し、サイドボタンによる「戻る/進む」もできる限り止めますが、これはブラウザによっては効きません。ダブルクリックテストはターゲットへの押下と解放のすべてに時刻を打ち、間隔をヒストグラムに描きます。ホイールテストはスクロールごとに方向・ノッチ数・ピクセル数を記録し、ノッチの累計も出すので、ちょうど10クリック回して飛びや二重カウントがないか照合できます。生の値はブラウザごとに違い——1ノッチがChromeではdeltaY: 100、FirefoxではdeltaY: 3——このページはどちらも1ノッチに正規化します。最後に、ターゲットの上でマウスを走らせるとレポートレートをHzで推定し、125〜8000の標準レートのうち最も近いものと確度を示します。本物のマウスが必要です。トラックパッドで意味のある結果が出るのは、スクロールと移動の計測だけです。

チャタリングのヒストグラムの読み方

劣化したマイクロスイッチはバウンドします。接点が離れる瞬間にばたつき、物理的には1回の押下がマウスからは2回として報告される——いわゆるチャタリングです。ヒストグラム上では、解放から次の押下までの間隔がおよそ50ms未満の山として現れます。人間が指を離してもう一度押すには、物理的に速すぎる間隔だからです。ただしこれは証拠であって診断ではありません。1サンプルだけ見れば、本当に素早いダブルクリックもまったく同じ形になります。だから普通のペースでターゲットを数十回クリックしてください。健康なスイッチなら50ms未満の領域は空のまま、チャタリングしているスイッチはそこを埋め続けます。パターンがはっきり出ても、言えるのは「スイッチがバウンドしている」ことまで。分解掃除や保証申請を決断する強い材料にはなりますが、故障の証明ではありません。

ブラウザで測れること、測れないこと

ポーリングレートの数字が測っているのは「ブラウザがポインターイベントを届けた速さ」であって、マウス本来のレポートレートではありません。ブラウザはポインターイベントをディスプレイのリフレッシュに合わせてまとめてしまうため、このページはgetCoalescedEvents()でまとめられた分を取り出します。これで実態にかなり近づきますが、USBバスを直接読んでいるわけではありません。数字は下限値、つまり健全性チェックとして扱ってください。バックグラウンドで重い処理が走っているマシンや60Hzのディスプレイでは、数字は下に引っ張られます。そしてDPI/CPIは、ブラウザではそもそも測れません。ページに届く移動量は、OSがポインター加速とスケーリングを適用した後のCSSピクセルで、そこからカウント/インチへ逆算する道は存在しないのです。ブラウザでマウスのDPIを「測定」できると謳うサイトは、あなたが入力した値から推定しているだけ——このページはそれを測定のふりをして出しません。

よくある質問

マウスが勝手にダブルクリックされます。チャタリングかどうか確かめるには?

ダブルクリックテストで、普通のペースでターゲットを数十回シングルクリックしてください。解放から次の押下までが50ms未満——人間が離してもう一度押すには速すぎる間隔——のクリックが積み上がっていくなら、1回の押下が2回として報告されている、つまりスイッチがバウンドしている強い証拠です。速い間隔が1〜2回混ざる程度では何も言えません。数十回の連続で山が育ち続けるかを見てください。それでも故障の証明ではなく、分解や保証申請を検討するための材料です。

1000Hzのマウスなのに、60Hz前後としか表示されないのはなぜ?

ブラウザはポインターイベントを画面のリフレッシュレートに合わせてまとめてからページに渡すからです。このページはgetCoalescedEvents()でまとめられたレポートを展開しており、リフレッシュレートを超える読みが出るのはそのおかげです。それでも60付近に張り付くなら、まずマシン側を疑ってください。60Hzのディスプレイや、バックグラウンドで負荷のかかっているシステムは数字を頭打ちにします。この数字はマウスが届けた量の下限であって、USBバスの実測ではありません。

ノートPCのトラックパッドでも使えますか?

一部だけです。2本指スクロールはホイールテストに載りますし、ポインターの移動も追跡されます。しかしボタン図とチャタリング検査は、マイクロスイッチを持つ物理的なマウスのための計測で、トラックパッドから出る数字に意味はありません。診断したいマウスがあるなら、そのマウスを直接繋いで測ってください。

なぜマウスのDPIが表示されないのですか?

ブラウザでは測れないからです。測れないものは表示しません。ページに届く移動量は、OSがポインター加速と画面スケーリングを適用した後のCSSピクセルで、元のカウント/インチ(CPI)の情報はその時点で失われています。ブラウザ上でDPIの数字を出すサイトは、あなたが入力した公称値から逆算しているだけ——それは測定ではなく推定です。本当のDPIは、メーカーのソフトウェアか仕様表で確認してください。

ダブルクリックが速いだけでも、チャタリング判定されますか?

使い方どおりなら、されません。意図した高速ダブルクリックとチャタリングは、1サンプルでは同じ間隔を刻みます——だからこそ、このテストは単発では何も判定しない設計です。前提は「普通のシングルクリックの連続」。落ち着いたペースでターゲットを押し続けて、それでも50ms未満の解放間隔が現れたなら、それはあなたの指ではありません。不安ならわざとゆっくりクリックしてください。チャタリングはクリックの速さに関係なく、押すたびに顔を出します。