gizmobench

Mouse Test

Buttons, wheel, double-click and movement, all on one screen. Click, scroll and move the pointer inside the stage and each part reports the moment it works: the right button is counted instead of opening a menu, the side buttons are asked not to navigate so the press can be counted, and the double-click test names a pair that arrived too fast for a hand, which is what a worn switch looks like.

move to draw · click to mark · scroll to fill the meter

Waiting for the first click, scroll or movement.

Left
0
Right
0
Middle
0
Back / Forward
0 · 0
Double-click
not yet
Polling
not measured

Inside the stage the context menu, the side-button navigation, the wheel press and page scrolling are all held back, because a test cannot count what the browser acts on first. Everywhere else on this page they behave normally. Nothing is uploaded and nothing is stored.

  • Buttonsevery one the browser reported
    nothing clicked yet
  • Wheelscroll up and down inside the stage
    nothing scrolled yet
  • Double-clicktwo clicks inside your system threshold
    no double-click registered yet
  • Report ratehow often the pointer reports while moving
    not measured yet: move the pointer across the stage

Move the pointer across the stage to measure how often it reports.

The five buttons a browser can name

A mouse can have any number of buttons; the DOM numbers five of them and reports anything else as a bare number with no agreed meaning. Numbers here are what your mouse sent, not what it has.

ButtonNumberWhat it normally doesPresses seen
Left0the primary button0
Right2the secondary button, which opens the context menu0
Middle1the wheel pressed down0
Back3the rear side button, which navigates back0
Forward4the front side button, which navigates forward0
Polling rate is an estimate, and it says so. A page can only count the movement events the browser delivers, and browsers merge those down to the display’s refresh rate unless the raw ones are asked for, which this tool does wherever the API exists. A reading of 1000 Hz is real; a reading of 60 Hz on a 60 Hz screen is the browser, not the mouse. Buttons, wheel and double-click are reported exactly as the browser delivers them. The report rate is an estimate from how often movement events arrive, which browsers cap at the display refresh rate unless raw events are requested; a low number on a 60 Hz screen is the browser, not the mouse.

Common questions

Why does right-clicking not open the context menu here?
Because the menu would swallow the event before the test could count it. The page holds the context menu back inside the dark stage and nowhere else, so a right-click anywhere else on this page opens the menu exactly as it normally would. The wheel press, the side buttons and page scrolling are held back in the same place and for the same reason: a test cannot count what the browser acts on first.
What is polling rate, and why does mine read 60 Hz?
Polling rate is how many times a second the mouse reports its position to the computer, commonly 125, 500 or 1000 Hz. A web page cannot ask the mouse directly. It can only count the movement events the browser delivers, and browsers merge those down to one per screen refresh unless the raw ones are requested, which this tool does through getCoalescedEvents wherever it exists. That cap is why the reading is labelled an estimate, and it is also why this page measures your display: it counts animation frames for half a second to find your refresh rate, then says whether the reading sits at that rate, which means the browser is capping it, or above it, which means the number is the mouse's own. A fixed assumption of 60 Hz would get this backwards on a 120 or 144 Hz screen.
How fast does a double-click have to be?
Windows and macOS both default to about half a second and both let you change it, so this tool uses 500 milliseconds as the common default rather than reading your machine's setting, which a web page cannot see. The two clicks also have to land within 10 pixels of each other: every operating system applies a distance limit as well as a time limit, because two clicks at opposite ends of the screen are two clicks.
My mouse registers two clicks when I press once. Is it broken?
Almost certainly the switch, and this tool will name it. A person cannot physically click twice in under 50 milliseconds, so when the gap between two left clicks comes in below that, the readout says it was too fast for a hand rather than calling it a clean double-click. That is the classic signature of a worn microswitch bouncing, and it is the most common reason a mouse gets replaced. Click once, slowly, ten or twenty times and watch whether the left count ever jumps by two.
Why do my back and forward buttons not show up?
Most likely your mouse has none, or its driver is sending keyboard shortcuts instead of button 3 and button 4. Those two are the only side buttons the DOM names, and a mouse with extra thumb buttons often maps them to something else entirely. Where the buttons do report, this page asks the browser not to navigate while the pointer is inside the stage, so pressing them counts the press instead of leaving the page. Anything the DOM has no name for is counted separately rather than guessed at.
Does the wheel count work with a trackpad?
It counts, but it does not mean the same thing. A wheel with detents sends one event per click of the wheel, so the notch count is the number of clicks. A trackpad sends a stream of small events for one two-finger gesture, plus more as the momentum runs out, so the notch count runs far higher than the number of gestures. The travel figure, in pixels, is the more useful number on a trackpad.
Does anything leave my computer?
No. Every count on this page is computed in your browser from events your browser already had, nothing is uploaded, nothing is stored between visits and there is no account. Reload the page or press Reset and the test starts from zero.

Buttons, wheel and double-click are reported exactly as the browser delivers them. The report rate is an estimate from how often movement events arrive, which browsers cap at the display refresh rate unless raw events are requested; a low number on a 60 Hz screen is the browser, not the mouse.