Gamepad / 04

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.

Notes

The test requires the standard gamepad mapping. Most modern controllers report 'standard'; if yours doesn't, the indices may be off.

No controller detected

Connect a gamepad and press any button to wake it. Then pull each trigger to full and release — the captured range updates live.

How it works

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.

Frequently asked

What is trigger deadzone?

The dead range near rest where small movements are ignored. A healthy trigger has a tiny deadzone (~3-5%) — enough to filter sensor noise without making the pull feel slow. A worn trigger develops a large deadzone (10-20%), where the first finger movement does nothing — that's the feel of an aging controller.

What should the full pull report?

98-100% on a healthy controller. Anything materially under 95% means dirt or wear in the trigger mechanism, often fixable with isopropyl alcohol and compressed air. Sub-90% may need spring replacement.

Does this test work on adaptive triggers (DualSense)?

Yes — but only if the trigger isn't actively resisting. Web browsers can't drive adaptive trigger force feedback, so the trigger will feel normal. The reading still shows the analog position.

Why is my Xbox controller showing trigger button 6 / 7 wrong?

On the 'standard' gamepad mapping, button 6 is LT and 7 is RT. If your controller doesn't report 'standard' mapping (some off-brand and older pads don't), trigger indices vary. Use the Gamepad info tool to check your mapping first.