Testing Controllers on Windows
Use Chrome or Edge for the most reliable Gamepad API support, close Steam before testing so it doesn't intercept your controller, and press any button after the page loads because browsers hide gamepads until you interact with them. That fixes 90% of the 'controller not detected' reports we see.
What Testing Controllers on Windows means
The setup that works
Windows has the most controllers, the most drivers, and the most background software competing for your gamepad. Getting reliable browser-based readings means eliminating the interference before it starts. Work through these steps in order.
- 01
Use Chrome or Edge
Both use the Chromium engine and share the same well-supported Gamepad API implementation, including vibration testing. Firefox works but reports axis counts differently on some controllers (shifting indices by one position) and does not support haptic feedback at all. Safari on Windows isn't relevant — Apple discontinued it years ago.
- 02
Close Steam before you test
This is the single biggest cause of 'controller detected but buttons do nothing' on Windows. Steam Input intercepts controllers at the driver level and remaps them before any other application sees the raw input. Fully quit Steam, or disable Steam's desktop controller layout for your controller. Then refresh the browser page.
- 03
Use a data-capable USB cable
Not every USB-C cable carries data — many included with phones and controllers are charge-only. The controller that shipped in your controller's box is guaranteed to be a data cable. Third-party cables should be marked USB 2.0 or higher; anything unmarked or advertised as 'charging cable' is unlikely to expose the gamepad to Windows at all.
- 04
Press a button after the page loads
Every browser hides connected controllers until the user physically interacts with one on the visible page. This is a privacy feature preventing sites from silently fingerprinting your hardware. If the tester says 'no controller detected,' the fix is almost always: click into the page, then press any button on the controller.
- 05
Prefer wired for measurement, wireless for convenience
For drift, latency, or polling-rate testing, wired USB gives the cleanest reading — no radio interference, no Bluetooth stack latency, no battery-level effects. For casual functional testing (buttons registering, sticks moving), wireless is fine. Never use Bluetooth for the latency test if you can help it.
Test for Testing Controllers on Windows
Fix Testing Controllers on Windows issues
Devices most affected by Testing Controllers on Windows
Related glossary terms
Testing Controllers on Windows questions
Two most common causes: Steam Input is running and intercepting the controller before the browser sees it, or you haven't pressed a button on the visible page yet. Fully close Steam and refresh the browser, then physically press a button on the controller. If a Steam-managed layout is what your games expect, this trade-off is real — you may need to test the controller with Steam closed, then restart Steam for gameplay.
For basic button and axis testing, Chrome and Edge are essentially identical because they share the Chromium engine. Firefox works, but for measurement it introduces two real quirks: it reports axis counts differently on some XInput controllers (shifting the axis index by one), and it doesn't support haptic feedback testing at all. For casual functional checks, Firefox is fine. For serious diagnostic testing, use Chrome or Edge.
Put the controller into pairing mode (usually holding a small pair button until an LED blinks rapidly — check the manual for your specific controller). Open Windows Settings → Bluetooth & devices → Add device → Bluetooth. Wait for the controller name to appear and click it. Once Windows shows 'Connected,' open the browser tester and press any button on the controller to make it visible to the page. If pairing fails repeatedly, unplug and reconnect the Bluetooth adapter or restart the Bluetooth Support Service.
Windows sees the controller at the OS level; the browser sees it only after the Gamepad API gets a signal. Three checks: press any button on the controller with the tester page in focus, confirm no other application (Steam, Xbox Accessories, DS4Windows) is holding the controller exclusively, and confirm you're on an HTTPS page — the Gamepad API drops packets on HTTP or local file origins for security.
For Xbox controllers, Windows' built-in XInput driver is always the right choice. For PlayStation controllers, Windows built-in works but Steam Input translates DualSense/DualShock 4 to XInput more reliably than raw HID. Third-party controllers (8BitDo, GuliKit, Nacon) usually work out of the box; a manufacturer-specific configurator like 8BitDo Ultimate Software or GuliKit's app is only needed for firmware updates or profile switching, not for browser testing.
Yes. Windows won't expose a controller to the browser if the cable can't carry data. USB-C is deceptive because charge-only cables look identical to data cables. The cable that came in the controller's box is a data cable. Random USB-C cables from a drawer are often not. If your controller doesn't appear in the browser, swap the cable first — this is a real fix, not a placebo.
Rear ports on a desktop are directly on the motherboard and are almost always more reliable than front-panel ports (which route through a case header). USB hubs, especially unpowered ones, can introduce power delivery issues that make wireless dongles disconnect intermittently. If you have connection problems, plug directly into a rear port before doing anything else.
Yes. The Gamepad API supports up to four simultaneous controllers via the standard XInput driver, and most modern testers can display them all. Each connected controller occupies its own slot (index 0, 1, 2, 3). Slot indices can be reused when a controller disconnects, so don't assume 'controller 0' is always the same physical device across a session.
Further reading
- Gamepad API — MDN Web Docs · MDN Web Docs
- Using the Gamepad API — MDN Web Docs · MDN Web Docs
- Steam Input Configuration Documentation · Steamworks Documentation
- Xbox Wireless Controller — Setup for Windows · Xbox Support