How to Use
1
Move your cursor over the dark test zone in the centre of the page.
2
Click any mouse button — left, right, middle, back, or forward side button.
3
The zone immediately highlights with a unique colour and displays the button name and index.
4
Each press is added to the Click Log with a precise timestamp. Use the log to spot double-registers or chatter.
5
The Button Status indicators in the sidebar light up the first time each button is pressed — aim to light all five to confirm full button functionality.
6
Hit Reset (or press R) to clear counts and start fresh. Use Share to copy your session summary.
Button Colour Guide
- ● Left Button (index 0) — Primary click, most common action
- ● Right Button (index 2) — Secondary click, opens context menus
- ● Middle Button (index 1) — Scroll wheel press, opens links in new tab
- ● Back Button (index 3) — Side thumb button, navigates back
- ● Forward Button (index 4) — Side thumb button, navigates forward
The browser uses a different index order than the physical layout — button 1 is middle (scroll wheel), not right.
Understanding the Browser Button API
Browsers expose button presses via MouseEvent.button. The five standard indices:
- 0 — Left (primary)
- 1 — Middle (scroll wheel press)
- 2 — Right (context menu)
- 3 — Back / 4th physical button
- 4 — Forward / 5th physical button
The related property MouseEvent.buttons (plural) is a bitmask that reflects all buttons held simultaneously, which is different from .button (singular) that gives the button that triggered the current event.
Buttons beyond index 4 are not reliably detectable — gaming mice with 6+ buttons typically remap them to keyboard keys via driver software.
Side Buttons Not Working?
Some browsers intercept Mouse Button 3 (Back) and Button 4 (Forward) for page navigation before the page can see them. Fix by browser:
- Chrome / Chromium: No built-in setting — try an extension to disable mouse gesture navigation, or test in incognito with extensions off to rule them out.
- Firefox: Go to about:config → search mousebutton.4th.enabled and mousebutton.5th.enabled → set both to false.
- Edge: Settings → Appearance → Scrolling → turn off Swipe to navigate.
- Opera / Vivaldi: Settings → Mouse Gestures → disable or reassign side buttons.
- Safari (macOS): System Settings → Mouse → uncheck Swipe between pages.
If side buttons still do not register after browser changes, check whether your mouse driver (e.g. Logitech G HUB, Razer Synapse, SteelSeries GG) is remapping them to a macro or keyboard shortcut rather than passing a raw mouse event.
Right-Click Context Menu Suppressed
Inside the test zone the browser's native context menu is blocked (contextmenu event prevented) so right-click presses register and display correctly. Outside the zone, right-click behaves normally.
Mouse Switch Chatter — Diagnosis & Fixes
Chatter happens when a worn or low-quality switch briefly bounces on contact, registering multiple rapid clicks from a single physical press. Signs:
- Files open when you single-click in Windows Explorer
- Text selection drops unexpectedly while dragging
- Two or more log entries appear for one press
- Drag-and-drop operations abort mid-drag
To detect: Enable Chatter Detection in Settings and set the threshold to 10–25ms. Any same-button click faster than the threshold is flagged chatter in the log and counted in Session Stats → Chatter Events.
Fix options:
- Firmware update: Some gaming mice have a debounce setting in companion software — increase it to 8–16ms.
- Contact cleaner: A small spray of DeoxIT D5 into the switch can restore a worn contact temporarily.
- Switch replacement: Replacing the micro switch (e.g. Omron D2FC-F-7N, Kailh GM) is a permanent fix if you can solder.
- OS-level debounce: Windows and macOS do not expose a global click debounce setting. Some driver software (e.g. Logitech Options, Razer Synapse) has a debounce slider.
Hardware Debounce Explained
Every mouse firmware applies a minimum inter-click delay (debounce) to suppress chatter. Typical values:
- Office mice: 25–50ms
- Mid-range gaming mice: 8–16ms
- High-end gaming mice: 1–5ms
Higher debounce = more protection against chatter, but limits how fast you can double-click. Lower debounce = faster response, but worn switches chatter more easily. The ideal value is just above your switch's natural bounce duration (~1–3ms for a new switch).
Mouse Polling Rate & Input Latency
Polling rate is how often the mouse reports its position and button state to the OS, measured in Hz. Common values:
- 125 Hz — Reports every 8ms (standard office mouse)
- 500 Hz — Reports every 2ms
- 1000 Hz — Reports every 1ms (gaming standard)
- 4000–8000 Hz — Reports every 0.25–0.125ms (high-end gaming)
Higher polling rates reduce input latency. However, above 1000 Hz, gains are marginal for most users and CPU usage increases. The browser adds its own event processing delay on top of the polling interval, so timestamp precision in this tester is bounded by the browser event loop (~1ms resolution on modern hardware).
OS-Level Button Remapping
Both Windows and macOS allow you to swap left and right mouse buttons at the system level. If left and right appear swapped in this tester, check:
- Windows: Settings → Bluetooth & devices → Mouse → toggle Primary mouse button.
- macOS: System Settings → Mouse → toggle Primary mouse button.
Driver software (Logitech G HUB, Razer Synapse, SteelSeries GG, Corsair iCUE) can also remap any button to any function. If a button reports an unexpected index, open your driver software and inspect the button assignment profile.
Sound Feedback
When Sound on Click is enabled in Settings, the tester plays a short synthesised sine-wave tone on each press. Each button type uses a different pitch:
- Left — 520 Hz (mid-high)
- Middle — 380 Hz (low)
- Right — 440 Hz (A4, neutral)
- Back — 600 Hz (high)
- Forward — 560 Hz (high-mid)
The Sound Volume slider in Settings controls amplitude (5%–50%). Useful when testing with eyes off-screen or inside a game.
Testing All Buttons Quickly
- Watch the Button Status panel — each dot lights up permanently on first press.
- Aim to light all 5 indicators (Left, Right, Middle, Back, Forward) to confirm full hardware functionality.
- If an indicator never lights, that button is either not registering or being intercepted by the browser or driver — see Side Buttons Not Working and OS-Level Remapping above.
- Use Fullscreen (⛶ icon top-right of zone, or press F) for a distraction-free full-screen environment.
- Enable Chatter Detection at 15ms to verify no button double-registers under normal use.
Exporting Your Log
Use Export CSV in Settings → Data & Export to download the full click log as a .csv file. Each row contains:
- Timestamp — ISO 8601 date-time with milliseconds
- Button Name — Human-readable label (e.g. "Left Button")
- Button Index — Browser event index (0–4)
- Chatter — "yes" if flagged as chatter, "no" otherwise
Open the CSV in a spreadsheet to calculate inter-click intervals, click frequency, or chatter rate across a longer session.
Common Issues & Troubleshooting
- Click not registering at all: Ensure your cursor is inside the test zone. The zone requires a
mousedown event — some browser extensions block mouse events on certain pages.
- Right-click shows context menu: The context menu is suppressed only inside the zone boundary. Click precisely within the dark area.
- Middle-click scrolls the page: The tester prevents default on
auxclick events inside the zone, but some browsers may still activate auto-scroll. Ensure the cursor is fully inside the zone.
- Side buttons navigate the page: See Side Buttons Not Working section above.
- Log shows same button twice per press: This is likely chatter. Enable Chatter Detection in Settings at 10–20ms to quantify it.
- Timestamps all show the same value: Switch to HH:MM:SS.mmm format in Settings → Display → Timestamp Format for full clock resolution.
Glossary
- Debounce delay — Firmware-enforced minimum gap between registering two clicks on the same button to suppress switch bounce.
- Chatter / switch bounce — Rapid unintended repeated signals from a single click caused by a worn or low-quality switch contact.
- Polling rate — Frequency at which the mouse reports to the OS (Hz). Higher = lower input latency.
- MouseEvent.button — Browser API property returning the index (0–4) of the button that triggered the current event.
- MouseEvent.buttons — Browser API bitmask showing all buttons currently held down simultaneously.
- Primary button — The button assigned to the main click action; left by default, swappable in OS settings for left-handed use.
- Micro switch — The internal physical switch inside a mouse button (e.g. Omron D2FC series, Kailh GM). Its contact life is typically rated 10–50 million cycles.
Keyboard Shortcuts
- R — Reset all counts and click log
- F — Toggle fullscreen mode
- Esc — Close any open panel