How the controller tester works
Your browser reads the controller through the Gamepad API about as often as your screen refreshes. Each tile shows one button: it turns blue while held, stays green once it has worked, and shows how far it is pressed, so analog triggers should climb smoothly from 0% to 100%. Each circle shows a pair of stick axes, with the dot following the stick and the numbers giving its exact position from −1 to 1.
If your browser recognises the controller's layout, the tiles are named after the familiar Xbox and PlayStation positions. Otherwise they're simply numbered, and the order depends on the controller's driver.
Checking for stick drift
- Let go of both sticks and put the controller down.
- Watch the numbers. A healthy stick rests within about ±0.05 of zero. Values that sit higher, or creep while you aren't touching anything, point to drift.
- Roll each stick slowly around its edge. The dot should trace a full circle and reach close to ±1 in every direction.
- Click each stick down and check the stick-press tiles light up.
Small resting values are normal; games ignore them with a "dead zone". Drift that shows up in games usually measures well above 0.1 here.
Frequently asked questions
Why are my buttons numbered instead of named?
The browser didn't recognise your controller's layout, so it can't promise which number is which button. Press each button and note which tile lights up.
The vibration button is greyed out. Is my rumble broken?
Not necessarily. Vibration only works in some browsers (mainly Chrome and Edge) and with some controllers. Firefox and Safari don't offer it to websites yet.
Can I test two controllers at once?
Yes. Each connected controller gets its own panel, in the order the browser found them.
Does this work with a phone or tablet?
It works wherever the browser supports controllers, including recent Chrome on Android and Safari on iPhone and iPad with a Bluetooth gamepad paired.