YuvalGGYuvalGG

Tools

Mouse test

Focus the board, then click buttons and scroll the wheel pad. Active buttons light up; buttons you have pressed at least once stay marked until you reset. The polling box times pointermove events while you move the pointer.

Click here to focus, then press mouse buttons

Back#3 · 0
Forward#4 · 0
Left#0 · 0
Middle#1 · 0
Right#2 · 0

Last event

—

Button

—

buttons bitmask

—

pointerType

—

Held now

—

Buttons tested (sticky)

0

Clicks by button

L:0 · M:0 · R:0 · Back:0 · Fwd:0

Wheel

Hover and scroll

The page stays still while the pointer is over this pad.

Last deltaY / deltaX

—

Direction

—

Vertical ticks

up 0 · down 0

Horizontal ticks

left 0 · right 0

Double-click / chatter

Intervals between consecutive downs of the same button. Browser-event timing, not a calibrated lab meter.

No chatter flagged yet for this threshold.

Last 10 intervals

—

Polling rate

Move the pointer quickly inside the box. A still pointer sends no events.

Move fast in this area

Current

—

Average

—

Max

—

Nearest common rate

—

Current is the moving rate over the last 500 ms, and that number refreshes every 500 ms. Average and max keep every sample. Browsers can cap or merge pointermove events, so very high rates may read lower here. The nearest rate is the closest of 125, 250, 500, 1000, 2000, 4000, and 8000 Hz to the average. This is the event rate in this tab, not the setting in the mouse software.

Side buttons (Back / Forward) are often blocked or remapped by the browser or OS. This page reports what the tab receives via Pointer Events — not a hardware-certified switch test.

How this mouse test works

The button area listens for pointerdown and pointerup while it has focus. Each event carries a button index, a buttons bitmask of what is still held, and apointerType. The sticky “tested” map marks every button that produced at least one down. Right-click is stopped with preventDefault on contextmenu inside the test area so you can exercise button 2 without opening the browser menu.

The wheel pad listens for wheel on the pad itself, including while the pointer is only hovering. The listener is not passive and calls preventDefault, so the article does not scroll. Last deltaY / deltaX, a simple direction label, and session tick counts show what the browser delivered. The pad can also take keyboard focus.

The polling box listens for pointermove. If the event has getCoalescedEvents, each coalesced timestamp is a sample. Hertz is 1000 divided by the milliseconds between samples. Average Hertz is the number of those gaps divided by the time they cover, for the whole run. Current uses only the gaps from the last 500 ms and the displayed Current number changes every 500 ms. A gap longer than 80 ms is a pause, not a slow mouse. The nearest common rate is the closest of 125, 250, 500, 1000, 2000, 4000, and 8000 Hz to the average. Browsers can cap or merge these events, so a very high setting may read lower here. The number is the event rate in this tab, not the firmware setting. A separate polling-rate tester can use pointerrawupdate where the browser supports it.

Chatter for gaming mice

A worn or dirty microswitch can bounce and fire an extra click a few tens of milliseconds after a real press. Games and desktop UIs then see a phantom double-click. This page records intervals between consecutive downs of the same button (left by default) and flags any gap under 60, 80, or 100 ms—your choice. The list shows the last ~10 intervals so you can tell a one-off from a pattern.

That measurement is browser-event timing. It is not a calibrated debounce lab result, and this tool does not invent a 0–100 “health” score. Pair it with the click-speed test if you care about intentional CPS, and with the raw input test for a dot trail of movement reports.

Limits

  • OS and browser shortcuts can swallow Back/Forward or middle-click actions before this tab sees them.
  • Touchpads and touch screens may report different pointerType values and fewer side buttons.
  • Wheel deltas are browser units, not physical notches; high-resolution wheels can send many small deltas per notch.
  • Short intervals can be intentional double-clicks—raise the threshold or slow down if you only care about accidental bounce.
  • Browsers can cap pointermove, so very high polling rates may read lower than the mouse software setting.

For sensor and aim settings, see mouse polling rate, mouse acceleration, and mouse DPI. Buying context lives on best gaming mouse.

Common questions

Why does a side button not light up?

Many browsers and operating systems remap Back and Forward (buttons 3 and 4) to history navigation, or never deliver those Pointer Events to the page. Try another browser, disable mouse-button remapping in your mouse software, and click the test area first so it has focus.

What is double-click chatter?

Chatter (or debounce failure) is when one physical press produces two or more click events close together. This tool measures the interval between consecutive pointerdown events on the same button and flags intervals under your chosen threshold (60, 80, or 100 ms). That timing comes from browser events, not a calibrated lab meter.

Does a flagged interval prove my switch is broken?

No. Fast intentional double-clicks, OS accessibility settings, browser extensions, and high system load can also produce short intervals. Treat a repeated flag under a stable threshold as a reason to retest in another app or with your mouse vendor tools—not as a hardware verdict.

Why does the wheel pad not scroll the page?

The pad listens for wheel directly and calls preventDefault, so the page stays still while the pointer is over it. You do not have to click the pad first. It can still take keyboard focus. Vertical and horizontal tick counts are session totals until Reset.

How is the polling rate measured?

The polling box listens for pointermove. When the browser provides getCoalescedEvents, those timestamps are counted too. Hertz is 1000 divided by the milliseconds between samples. Average and max use every moving gap for the whole run. Current is that same rate over only the last 500 ms, and the Current number refreshes every 500 ms. A gap longer than 80 ms is treated as a pause. The nearest rate is the closest of 125, 250, 500, 1000, 2000, 4000, and 8000 Hz to the average.

Why might a high polling rate read lower?

Browsers can cap or merge pointermove events, so a mouse set well above 1000 Hz may show a lower number here. This is the event rate in the tab, not the setting in the mouse software.

Is this a DPI test?

No. DPI is counts per inch. This page does not measure that. The DPI guide covers the sensor setting.

What do button numbers mean?

They follow the Pointer Events / UI Events model: 0 left, 1 middle, 2 right, 3 back, 4 forward. The buttons bitmask shows which buttons are held at once (1 left, 2 right, 4 middle, 8 back, 16 forward).

Comments

No comments yet. Be the first to share what you think.