Mouse scroll wheel test
Scroll in one direction inside the pad. Steps that jump the wrong way are a worn wheel encoder.
Isolation: —
Scroll here, one direction at a time, notch by notch.
- Wheel type
- —
- Notches down
- 0
- Notches up
- 0
- Reversed notches
- 0
- Horizontal
- —
Result
Waiting for input
Loading the instrument…
A scroll wheel that jumps back while you scroll has a worn encoder. This test watches every wheel event: inside a scrolling series, a single notch in the opposite direction is counted as a reversal. Scroll 100 notches in one direction; no reversals is a pass, more than 2 % is a fault.
How to read the readings
| Reading | Pass | Marginal | Fault |
|---|---|---|---|
| Reversed notches per 100 | 0 | up to 2 | more than 2 |
| Notch size | 100 or 120 px, or 3 lines per notch | — | — |
| Count 20 | the browser saw 20 | — | missed or extra notches |
What a browser cannot measure
- Smooth scrolling, touchpads and free-spin wheels have no notches; only the direction check runs.
- macOS acceleration changes the size of each event, so notches are not counted there.
- Shift+wheel is reported as horizontal scrolling by the OS and is kept apart from tilt.
Fixing the fault
Windows
- Blow compressed air into the gap around the wheel while turning it.
- Turn off smooth scrolling in the maker’s software while testing.
- A worn encoder needs replacing; within warranty, claim a replacement.
macOS
- Test with acceleration in mind: rely on the reversal count, not the notch count.
Linux
libinput debug-eventsshows the raw wheel values for comparison.
Questions
Why does my scroll wheel jump?
The rotary encoder inside the wheel wears or gets dirty and sends a single step in the wrong direction. Compressed air sometimes helps; otherwise the encoder needs replacing.
Why are notches not counted on my Mac?
macOS accelerates scrolling, so the size of each event changes. The test only checks direction there.
Method and algorithm version
Algorithm version 1 (2026-10). deltaMode is read before the deltas, because Firefox chooses units by the first property read. The notch is the modal absolute delta; a series ends after 150 ms without events.