Mac のマウススクロールがカクつく —— 自分で測ってみる
下の2つの枠でそれぞれスクロールしてください。macOS が各スクロールイベントでソフトウェアに渡しているデータをそのまま記録し、2台を同一スケールで描画します。ホイールの方が使いづらい理由は、約2秒で見えてきます。
トラックパッド
待機中枠の中で2本指でスクロールしてください。さっと払って指を離すと、慣性も記録されます。
- ステップ量の種類数
- —
- イベント数
- —
- イベント / 秒
- —
- ステップ量の中央値
- —
- 最大ステップ量
- —
- 減衰の尾
- —
マウスホイール
待機中枠の中でホイールを回してください。先ほどと同じくらいの距離で構いません。
- ステップ量の種類数
- —
- イベント数
- —
- イベント / 秒
- —
- ステップ量の中央値
- —
- 最大ステップ量
- —
- 減衰の尾
- —
これは何を表しているか
縦線1本が1回のスクロールイベントです。横位置は到着した時刻、高さはページに要求した移動量を表します。両パネルは同じ棒幅・同じ縦軸スケールなので、2つの形状をそのまま比較できます。
本当に重要な数値は「ステップ量の種類数」
トラックパッドはイベントごとに連続的に変化する距離を報告し、指が離れた後もイベントを送り続けます。ホイールは同じ固定ノッチ値を何度も報告するだけです。トラックパッドは通常数十種類の値を生成しますが、ホイールは1種類しか生成しないことがよくあります。
この1つの数値がすべてを物語ります。ホイールが毎回同じ移動量を送ってくる場合、macOS には補間できる中間状態がなく、ページを段階的に動かすしかありません。故障ではなく、高価なマウスに変えても変わりません —— それがハードウェアの報告内容そのものだからです。
測定方法と限界
記録には標準の wheel DOM イベントを使用します。各パネルは最初のイベントで開始し、500 ミリ秒静止すると終了します。値はブラウザが公開しているもので、生のデバイスより1階層上にあります —— macOS が独自のスクロール処理を適用済みで、負荷が高いとブラウザがイベントを統合することもあります。マシンをまたいで絶対値を比べるのではなく、同じマシン上の2台を比較してください。
よくある質問
Mac でトラックパッドは快適なのに、マウスのスクロールがカクつくのはなぜ?
2つのデバイスが送る信号が根本的に異なるからです。トラックパッドは毎秒何度も連続的に変化する距離を報告し、指を離した後も報告を続けます —— その減衰が体感する慣性です。ホイールはクリックごとに同じ固定ノッチ値を報告し、その間には何もありません。macOS はホイールの値をそのまま適用するため、ページが段階的に動きます。このページのテストでは、両方の信号を同一スケールで表示します。
もっと高価なマウスに買い替えれば macOS のスクロールのカクつきは解決しますか?
通常は解決しません。ステップ量はホイールエンコーダーの特性であり、価格とは無関係です。一部の高解像度ホイールはより細かいステップを報告し、テストでは「ステップ量の種類数」が多く表示されます。しかし高級モデルを含むほとんどのマウスは同じ値を繰り返し報告するだけで、いくら費用をかけても macOS の補間方法は変わりません。補間する対象そのものが存在しないからです。
「ステップ量の種類数」とは何ですか?
1回の記録中にデバイスが報告した、異なるスクロール距離の数を数えたものです(浮動小数点のノイズを除くため小数第2位で丸めています)。トラックパッドはイベントごとにわずかに異なるため通常数十種類になります。ホイールは1種類だけのことが多いです。この数値が、両者の感触の違いを最も端的に示します。
これはハードウェアを直接読み取っているのですか?
いいえ。ブラウザが受け取る標準の wheel イベントを読み取っており、デバイスより1階層上にあります。macOS が独自のスクロール処理を適用済みで、負荷が高いとブラウザがイベントを統合することもあります。そのため絶対値はブラウザや macOS のバージョンによって異なります。意味があるのは同じマシン上の2台の比較であり、生の数値そのものではありません。
どのブラウザで動作しますか?
Safari と Firefox を含め、すべてのブラウザで動作します。標準の wheel DOM イベントのみを使うため、WebHID は不要で、デバイスの権限確認も表示されません。アップロードも保存も行いません —— ページを再読み込みすれば記録は消えます。
ホイールスクロールのカクつきは本当に改善できますか?
はい、ソフトウェアで可能です。ホイールが送らない中間フレームを生成できます。各ノッチが瞬間的なジャンプではなく、短いイージングアニメーションになります。LinguaX は macOS 13 以降で、USB でも Bluetooth でもあらゆるマウスに対してこれを行います。Min Step / Speed Gain / Duration の3つのパラメーターを調整でき、アプリごとのオン・オフにも対応し、トラックパッドには一切干渉しません。