When a gamepad tester stays empty, the problem is usually connection order, exclusive apps, or limited browser support, not a dead site. Start on Controller Detection so you can see whether navigator.getGamepads() lists anything at all. Then open the Controller Tester once a device name appears. The Gamepad API only exposes controllers the operating system already accepts, and many pads stay idle until you press a button after connecting.
Fast checklist
- Connect the pad, then press any face button to wake browser detection.
- Prefer USB if Bluetooth pairing is incomplete or flaky.
- Close games, Discord overlays, and exclusive capture tools that may lock the device.
- Retry in an up-to-date Chromium, Firefox, or Safari desktop build.
- On phones and tablets, Gamepad API support is often limited or missing.
USB versus Bluetooth
USB is the most reliable path for first detection and for rumble experiments on Vibration. Bluetooth must finish pairing in the OS Bluetooth panel before the browser can list the device. Incomplete pairing looks identical to a missing controller in a gamepad tester. On Windows, confirm the pad appears under Bluetooth or USB devices, then return to the browser and press a button again. The PC Controller Tester is a convenient place to retest after you fix the OS side.
Browser and platform limits
If Device Manager or system settings see the pad but the browser does not, the limitation is usually the browser stack. Mobile Safari and many Android browsers offer weak or inconsistent gamepad support. Private modes, outdated builds, and strict site permissions can also block events. Stick tools such as Stick Drift and Deadzone cannot run until detection succeeds, so solve presence first.
What to try next
Swap cables and ports, forget and re-pair Bluetooth, and test a second browser. If the pad works in one browser only, keep using that browser for diagnostics while you investigate extensions or policies on the other. Read Controller on PC for Windows quirks, Gamepad API Explained for honest API limits, and the general Troubleshooting tree when multiple symptoms stack. Extra notes live on the blog.
Remember: a blank detection page means the Gamepad API never received a live pad snapshot. Fix OS visibility, wake the controller with a button press, remove exclusive locks, and retest. Once the device lists, continue with button, stick drift, and deadzone checks so you separate connection failures from hardware wear.
The charge-only cable trap
The most common silent cause of a missing controller is a USB cable that only charges. Many cables bundled with phones, headsets, and cheap accessories carry power but no data wires at all — the pad lights up, charges happily, and never appears as a device. If your controller charges but the Controller Detection page stays empty, swap the cable first, before you blame drivers or browsers. A cable that works for data will make the pad appear in the operating system's device list; a charge-only cable never will. Test with a cable you know transfers data, and try another port while you are at it — front-panel ports and unpowered hubs fail more often than rear motherboard ports.
Check the controller's mode switch
Many modern pads — especially 8BitDo and multi-platform controllers — have a physical mode switch or a button combination that changes how they present themselves: X-input for Windows games, D-input for older titles, Switch mode for Nintendo consoles, sometimes a Mac mode too. In the wrong mode, a pad may be invisible to the browser, appear with the wrong button mapping, or show up only in some apps. If your pad has a mode switch, set it to X-input for PC browser testing, then reconnect and press a button. If it has no switch, check the maker's manual for a mode-change button hold at power-on — this single step resolves a surprising number of "never detected" cases.
Exclusive access: Steam, wrappers, and overlays
A controller that works in Steam but not in the browser is usually not broken — it is locked. Steam Input, DS4Windows, reWASD, and similar tools can claim exclusive access to the pad, which means the browser's Gamepad API never sees it. The same goes for a game or overlay running in the background. For browser testing, close Steam, wrapper tools, games, and Discord overlays completely, then reconnect the pad and press a button. If the Controller Tester lists the pad only after those apps close, you have found the cause — and the fix is simply to test with them closed, not to reinstall anything.
OS first, browser second: the decision tree
Use this order and you will stop guessing. First, check whether the operating system sees the pad at all: on Windows, look under Bluetooth and devices (and Device Manager for USB entries); on macOS and Linux, check the system's Bluetooth and USB device lists. If the OS does not list it, the problem is cable, port, mode, pairing, or power — fix that side first, because no browser setting can conjure a device the OS cannot see. If the OS does list it but the browser does not, the problem is the browser stack: an outdated build, a script-blocking extension, a private window quirk, or an exclusive lock from another app. Solve presence in the OS first, then move to the browser. Once the Controller Detection page lists the device, continue with the Controller Tester, then the Stick Drift Test and Deadzone Test to separate a connection failure from hardware wear.
Extensions, private windows, and clean profiles
Extensions that block scripts or fingerprinting can interfere with gamepad events, and private windows sometimes behave differently from normal ones. If a pad appears in one browser but not another, or works in a normal window but not privately, test in a clean browser profile with extensions disabled. If it works there, re-enable extensions one at a time until the culprit returns. Also confirm you pressed a button after connecting: browsers deliberately require a user gesture before exposing gamepads, so a pad that was never pressed will stay invisible no matter how perfect the setup is.
Frequently asked questions
Why does my controller work in Steam but not in the browser?
Usually exclusive access. Steam Input or a wrapper tool has claimed the pad, so the Gamepad API never receives it. Close Steam and wrapper tools completely, reconnect, press a button, and retest on the Controller Detection page.
Does the browser need permission to see my controller?
No permission prompt exists for gamepads. Browsers require a button press as a user gesture before listing a pad — that press is the whole "permission." A connected but never-pressed controller will stay invisible.
Why does my controller appear and then disappear?
Usually power saving, a loose cable, or sleep. The pad disconnects when it sleeps or the cable shifts, and the browser clears it. Reconnect over a reliable cable, press a button, and keep the pad awake during testing.
Why is my controller not detected on my phone?
Mobile browser gamepad support is limited and inconsistent. Many Android browsers and mobile Safari expose pads weakly or not at all. For reliable diagnosis, use a desktop Chromium, Firefox, or Safari build — and retest the same pad there before concluding it is faulty.