CPSKit shows wheel-event counts, opposite-direction counts and signed vertical totals by unit. It does not calculate a timed speed score. Open the scroll wheel check.
These are browser events, not physical wheel notches or hardware polling measurements. There is no per-event log. Compare repeat runs under the same conditions; larger totals alone do not mean a faster or better mouse.
What a scroll speed test measures: event rate, amount and direction
- Wheel events per second: received event count divided by the measured duration in seconds. A timed test must state its window; pauses within it lower the average. This describes event delivery to the page, not the mouse’s USB reporting frequency.
- Amount per event:
deltaYis the vertical component. ReaddeltaModewith it before calling the amount pixels, lines or pages. Horizontal input usesdeltaX, which CPSKit does not total in this check. - Direction: for ordinary vertical scrolling, positive
deltaYpoints down the document and negative points up. This is the browser direction after system processing, so it need not match your finger’s motion under natural scrolling.
A pixel-mode test could calculate signed vertical delta per second by dividing its sum by time. Summing absolute values instead measures activity without cancellation; the two formulas differ when direction changes. Neither proves how far the document actually moved. A page can cancel wheel scrolling, hit a scroll boundary, or use the input for zoom. The W3C UI Events WheelEvent definition distinguishes event deltas from the default action they may trigger.
Notches, Windows wheel units, lines and pixels are different quantities
A notch is a physical detent you feel. A Windows native wheel delta is an input value. A browser wheel delta is an amount with its own unit. There is no universal conversion from a browser event to one notch, or from one line to a fixed number of pixels. The reference below connects each value to the layer where it belongs and the result you can actually interpret.
| Definition or rule | Value | Interpretation and source |
|---|---|---|
| Official browser and Windows definitions | ||
DOM_DELTA_PIXEL | 0 → pixels | Labels the event delta’s unit. Source: W3C UI Events: DOM_DELTA_PIXEL. |
DOM_DELTA_LINE | 1 → lines | Text-line units, not a pixel conversion. Source: W3C UI Events: DOM_DELTA_LINE. |
DOM_DELTA_PAGE | 2 → pages | Page units, not physical wheel rotations. Source: W3C UI Events: DOM_DELTA_PAGE. |
Windows WHEEL_DELTA | 120 per notch | Native Windows convention for one detent, not 120 browser pixels. Source: Microsoft Learn: MouseEventArgs.Delta. |
SPI_GETWHEELSCROLLLINES default | 3 lines | Documented default, not a reading of your current setting. Source: Microsoft Learn: SystemParametersInfoA. |
| CPSKit scroll check: counting rules | ||
| Unit buckets | 0 → px; 1 → lines; 2 → pages; otherwise unknown | Adds signed vertical amounts within each unit group; never converts or combines groups. See counting method. |
| Event counters | +1 per accepted event | Counts browser-delivered wheel input inside the pad during a run, excluding script-created events. Only input with a nonzero vertical amount also increments the vertical count. See counting method. |
| Opposite-direction count | Down: deltaY < 0; Up: deltaY > 0 | Counts each event opposing the selected direction, not adjacent sign changes. No amount or timing tolerance. See counting method. |
| Minimum completed sample | 5 vertical events | Fewer means the run cannot be judged. Horizontal-only events do not satisfy this minimum. See counting method. |
| Flag and repeat status | >0 opposite events; ≥2 flagged runs | Any opposite event flags a valid run; one flagged run needs another check, two or more show repeated observation. See counting method. |
Method: We paired documented browser and Windows values with the counting rules used by our tool. Official pages were retrieved 2026-10-31; the W3C rows cite the dated 7 September 2024 UI Events draft. Hexadecimal constants 0x00, 0x01 and 0x02 are shown as decimal 0, 1 and 2. No line-to-pixel or notch-to-event conversion was applied. These are reference values and counting rules, not measured mouse results.
CPSKit counting method: During a run, the pad counts incoming wheel input, adds its signed vertical amount to the matching unit total, and counts input opposing your selected direction. At least five vertical events are needed to judge a completed run; any opposite-direction event flags that run for review. Two flagged runs under the same direction setting show a repeated observation. Starting a run clears its observations; switching intended direction resets the run-status counts. Leaving the window or hiding the tab cancels the active run. Rules checked against the CPSKit scroll check on 2026-10-31.
Microsoft’s WM_MOUSEWHEEL documentation also allows finer-resolution wheels to send smaller native deltas more frequently. That is another reason not to divide browser deltaY by 120 to estimate notches. The default of three Windows lines does not require a browser to report deltaY = 3.
How to run a scroll wheel test and read events, direction and totals
- Open the scroll wheel test. Choose Down or Up under Intended direction, matching the browser direction you expect. Select Start check.
- Keep the pointer inside the pad and scroll only in that direction, producing at least five vertical events. Do not hold modifier keys. Keep the window in focus and let any momentum settle before selecting Finish run.
- Read events, opposite-direction events and totals by unit. Positive and negative deltas offset each other. Downward input usually produces a positive total; upward input a negative total. A small total can hide substantial back-and-forth activity. Pixel and line totals stay separate.
- Repeat with the same mouse, browser, settings and motion. Test the other direction in a separate run. A flagged result warrants another check; it does not identify a damaged encoder. A clear result means the symptom was not observed in those completed runs.
Hypothetical example: ten events of 100 pixels each
Example only, not a measurement: suppose you deliberately turn ten notches and, in this assumed setup, the browser delivers exactly ten events, each with deltaY = 100 and deltaMode = 0. The signed total is 10 × 100 = 1,000 px. With Down selected, CPSKit would show ten events, zero opposite-direction events and a pixel total of 1,000. The one-event-per-notch mapping is an assumption for this example, not something the page can verify.
If a separate timed test observed those events in exactly two seconds, the arithmetic would be 5 events/s and 500 px/s of signed delta. CPSKit does not display those rates. Its pad suppresses page scrolling when the browser allows it, so the 1,000 px total is not evidence of 1,000 px of page travel.
For a second hypothetical example, choose Down and receive pixel deltas +100, −100, −100, +100, +100. There are two opposite events and a signed total of +100 px. If all five deltas were negative, the opposite count would be five even though the sequence never changed sign. That is why this number should not be read as a count of physical reversals.
How to change scroll speed in Windows 11 and macOS
Windows 11: choose lines or one screen per wheel action
Open Settings → Bluetooth & devices → Mouse. Under Scrolling, set Roll the mouse wheel to scroll to Multiple lines at a time, then adjust Lines to scroll at a time. The alternative is One screen at a time. These are the controls documented by Microsoft Support: Change mouse settings. Try the change on a normal scrollable page, then repeat the wheel check. The setting changes the requested scrolling amount; it does not make your hand turn the wheel faster.
macOS: use Mouse Options or Trackpad Options for scroll speed
Open Apple menu → System Settings → Accessibility → Pointer Control. Select Mouse Options or Trackpad Options and adjust the Scroll speed slider, as documented in Apple’s guide to tracking, double-click and scrolling speed. Labels and available controls can depend on your macOS version and connected device.
System Settings → Mouse or Trackpad also contains device controls, but Tracking speed adjusts pointer movement. Do not use it as a substitute for scrolling speed. Natural scrolling changes direction. After a speed change, check content movement in the app you use, then compare a new browser sample; the web test cannot read the slider or confirm its value.
Why results differ between mice, trackpads and browsers
- Different input mechanisms: notched, free-spinning and high-resolution wheels need not produce equal event sizes or counts. A trackpad gesture can also produce wheel events. This check records the device as unverified.
- Different processing: OS settings, drivers and browser behavior affect the reported amount and timing. A pixel-mode result alone does not identify a trackpad, and a large delta alone does not prove skipped notches.
- Different measurement choices: a peak rate, a whole-run average, an absolute total and a signed total answer different questions. Compare matching units, formulas and durations before comparing scores.
- Different page behavior: smooth-scroll animation and page rendering can change how movement looks without supplying a direct measurement of the underlying wheel. An input count cannot reveal the smoothing algorithm or certify animation quality.
Change one condition at a time and record the browser, OS, device and relevant setting. If the problem is uneven movement, follow the skipping or stuttering guide. For unexpected direction, use the wrong-way or jumping scroll guide. For frequency claims, see why browser event rate is not hardware polling rate.
Scroll speed FAQ: scores, unit conversion and device limits
Why does a horizontal-only scroll not count?
It does increase the overall event count when received inside the pad during a run. But its vertical amount (deltaY) is zero, so it does not count toward the five vertical events needed to judge the run or add an opposite-direction event. Horizontal movement (deltaX) is not totaled; a horizontal-only run cannot be judged by this vertical-direction check.
What is a good scroll speed test score?
There is no universal pass mark across different units, settings and test formulas. Use repeated samples from the same setup to check consistency. For everyday scrolling, choose a setting that lets you reach content comfortably without overshooting.
Does a deltaY value of 120 mean one wheel notch?
No. The Windows native constant of 120 does not define the browser’s delta unit. Check deltaMode: a value of 120 might mean pixels, lines or pages. The browser event alone cannot establish how many physical detents you moved.
Can I convert line-mode results to pixels per second?
Only by supplying an explicit conversion assumption and a measured time window. One line has no universal pixel size across applications. Keep the result in lines per second unless the conversion is justified and labelled; CPSKit preserves the original unit totals.
Can this test measure polling rate or distinguish a mouse from a trackpad?
No. It observes wheel events delivered to the page, without verifying the device that originated them. It does not read polling rate, sensor DPI, hardware notch count or OS scroll settings. Use it for repeatable browser observations, not hardware certification.