How the test works
The browser lists a controller only after a button has been pressed on it, so the note under the picture asks for exactly that. Once the controller appears its name is shown and Start begins polling it sixty times a second or as fast as the display refreshes. Every button lights up on the picture while it is held and keeps a tint once it has been pressed; the two sticks move their dots with the axes; the triggers fill up with their analogue level, so a trigger that only reports fully on or off is visible at once. The chip counts buttons pressed out of the total the controller reports, the readout adds the stick axes moved.
The picture uses the standard layout of the Gamepad API: four face buttons, two shoulders, two triggers, two centre buttons, two clickable sticks, the four directions of the d-pad and the home button, 17 in all, with four axes for the sticks. The labels are chosen with the control below, Xbox letters, PlayStation symbols or plain numbers, and are guessed from the controller's name until you pick one. A stick counts as tested once it has been pushed past half of its range; a trigger counts as analogue once it has reported a value between released and pressed.
The Vibrate button in the corner of the picture asks the controller for a short rumble, a strong pulse of 400 milliseconds. It is enabled only while the test runs and the browser reports vibration support for the controller.
What the result means
The result is the number of buttons pressed, out of the total the controller reports. The context line adds the stick axes moved, whether the triggers reported analogue values, whether vibration was available and the controller's name.
- 17 of 17 buttons, 4 of 4 axes, analogue triggers. Everything the controller has is reaching the browser. Games will see the same.
- A button never lights up. Its switch or membrane is worn, or on a third-party pad the button is mapped somewhere unexpected; switch to the number labels to find it.
- Fewer axes than sticks. A stick that reports only one direction has a broken potentiometer on the other.
- Triggers not analogue. Normal for some controllers over Bluetooth and for pads in a compatibility mode; on an Xbox or PlayStation controller on a cable it means the trigger sensor is failing.
- A dot off centre with hands off. Stick drift beyond the 15 percent dead zone. It will show in games.
What to do about a dead button or a drifting stick
Try a cable instead of Bluetooth, and a different USB port; controllers behave differently over the two. Update the controller's firmware with the vendor tool and remove any remapping software, then retest. For drift, blow compressed air around the base of the stick and rotate it fully a dozen times; contact cleaner helps a potentiometer module for a while, and the modules are replaceable on most controllers, while newer pads with Hall-effect sticks do not drift at all. A dead face button is usually a worn conductive pad on the membrane, replaceable for a few euros.
When to return or claim the warranty
A new controller with a dead button, a stick that drifts on its own or triggers that report on and off only is defective and should be exchanged within the return window. For a warranty claim, screenshot the picture with the dot resting off centre or with the dark button visible after pressing everything, and note whether it happens on a cable as well. Stick drift within the warranty period has been the subject of consumer complaints against several manufacturers, and repairs are usually granted; damage from a drop or a spill is not covered.
Frequently asked questions
The browser does not see my controller. What now?
Press any button on the controller: Chrome, Edge and Firefox do not list a gamepad until it has been used once, as a privacy measure. If it still does not appear, check that the operating system sees it (Windows lists it under game controllers, macOS under Bluetooth) and try a cable instead of Bluetooth. Safari supports gamepads too, on iOS from version 13.
Why does the picture not match my controller?
The picture is the standard layout of the Gamepad API with 17 buttons and 4 axes, which is what Xbox, PlayStation and most third-party pads report. Pick the labels that match yours: Xbox, PlayStation or plain numbers. A controller with a non-standard mapping, an older joystick or a flight stick shows its buttons under numbers and may put them in unexpected places.
The stick drifts on the picture without me touching it. Is that stick drift?
Probably. The picture removes movement smaller than 15 percent of the range as noise, so a dot that sits off centre on its own is reporting more than that. Stick drift is wear of the potentiometer inside the stick module. Games hide small drift with their own dead zones; a dot that wanders freely will drift in games too.
Vibration does nothing. Is the controller broken?
Not necessarily. Vibration through the browser works in Chrome and Edge with most Xbox and PlayStation controllers, and the button is disabled when the browser reports no vibration support, as Firefox and Safari currently do. Over Bluetooth some controllers do not expose rumble at all. Test on a cable in Chrome before blaming the motors.
Is anything from my controller sent to a server?
No. Button and stick values are read by the page while the test runs, drawn on the picture and discarded. Nothing is stored and nothing is transmitted; the controller's name in the result is the one the operating system reports.