The Controller-on-Browser Setup That Actually Works
The Gamepad API has existed in browsers since 2013, which should mean that controller support in browser games is solved. It is not solved. Here is what is actually true in 2025.
The hardware that works most reliably
Xbox Series S/X controller via USB cable is the most reliable setup across all browsers. The Xinput driver (built into Windows since XP) is what browsers implement against, so the Xbox controller effectively set the standard. Via Bluetooth, Xbox controllers work in Chrome and Edge but require re-pairing on browser restart in some configurations — use USB for anything where reliability matters. DualShock 4 works in Chrome/Edge via USB and Bluetooth with slightly less consistent button mapping. Nintendo Switch Pro controller requires a third-party Bluetooth driver on Windows (8BitDo's driver is the reliable choice) to register correctly in browsers — native HID detection misses it.
The browser that works best
Chrome has the best Gamepad API implementation as of 2025. Edge is identical (same Chromium base). Firefox is reliable on Windows but has known issues with vibration API on macOS. Safari added basic gamepad support in 16.4 but does not implement the vibration API. For competitive play where you want vibration feedback: Chrome via USB on Windows. For casual play where you just want buttons to work: Chrome, Edge, or Firefox on Windows or Linux.
Verifying your controller is registering
Navigate to gamepad-tester.com in Chrome. Press any button. The page should immediately show your controller's identifier and all active inputs. If nothing appears: (1) On Windows, check Device Manager for unrecognised controllers. (2) On macOS, check that the browser has input monitoring permission (System Preferences → Privacy → Input Monitoring). (3) Disconnect Bluetooth and try USB. (4) In Chrome, check chrome://flags for 'Gamepad API' flags. The gamepad-tester.com site is the reliable diagnostic — if it works there, it will work in any browser game with proper Gamepad API implementation.
What 'controller supported' actually means in practice
Bramwell audited 24 browser games with 'controller support' claims in 2023. Four had genuinely good implementations — correct analogue sensitivity, full button mapping, working vibration. Twelve had 'button detection' only — face buttons worked, triggers and sticks did not. Eight had broken controller support that produced in-game actions inconsistently. The games with genuinely good controller support in the browser are almost all in two categories: .io games that have invested in it specifically (Krunker.io with their input system), and Unity WebGL ports of games that already had controller support in native builds.
◆ ◆ ◆
Frequently Asked Questions
Can I use a generic USB gamepad for browser games?
Generic USB gamepads are hit-or-miss. They register as HID devices but their button ordering often does not match the standard mapping that browser games expect. If you have a generic pad and games are registering wrong buttons: gamepad-tester.com will show you the raw button indices so you can mentally remap. Some browser games let you manually remap controls; most do not.
Does the phone's gyroscope work as a game controller?
On iOS and Android, the DeviceOrientation API allows websites to read gyroscope data. Some browser games (particularly racing games and ball-rolling games) use this deliberately. Others trigger it accidentally. The games in the controller-friendly category have been tested with USB gamepad specifically — phone gyroscope is a separate input profile that very few browser games handle well.
◆ ◆ ◆
Amazon Associate
Find browser game peripherals and guides on Amazon
◆ ◆ ◆