Triggers.
Slowly pull each trigger to full and release. We log the min / max for left (button 6) and right (button 7) over 7 seconds — confirms full range and reveals deadzone.
The test requires the standard gamepad mapping. Most modern controllers report 'standard'; if yours doesn't, the indices may be off.
Connect a gamepad and press any button to wake it. Then pull each trigger to full and release — the captured range updates live.
We poll navigator.getGamepads()[0].buttons[6].value and .buttons[7].value every ~16 ms for 7 seconds. Both values are floats in 0-1 representing analog position. We track min and max for each.
A healthy trigger should reach the max within a fraction of a second of full pull and return to within a couple percent of zero when released.