Testers

Xbox Controller Test

Test your Xbox controller in the browser — check both sticks for drift, every button labelled A, B, X and Y, the bumpers, and the analog triggers.

No controller detected yet

Browsers only reveal a game controller to a web page after you press a button or move a stick on it — a deliberate privacy rule, not a bug in this page or a sign your controller isn’t working. If a PS5, Xbox, Switch Pro or USB controller is already connected, press any button on it now. Meanwhile, pick your controller below to see exactly where every button and stick sits.

Layout:

Showing the Xbox layout — selected manually.

LBRBLT: 0%RT: 0%D-pad upD-pad downD-pad leftD-pad rightL3R3AABBXXYYViewMenuGuide

Every check on this page reads directly from the browser's Gamepad API, live, with nothing sent anywhere — the values you see are exactly what your controller is reporting at this moment. Press buttons, push both sticks to their corners, and pull the triggers to see the full readout come alive.

Stick drift test: reading the resting deviation

The stick drift panel only means something once you let go. Push a stick around all you like first — that's expected movement, not drift — but then take your hand off it completely and watch the number settle. This tool waits for a short window where the stick isn't moving before it reports a "resting" value, so a number that keeps changing means you're still touching it rather than that the tool is broken.

A resting reading close to +0.00, +0.00 is a healthy stick. A small non-zero offset is normal — every analog stick has some noise, and most games apply their own dead zone specifically to swallow it. A larger resting offset, especially one that grows over weeks of use, is the classic symptom of stick wear: the potentiometer or Hall-effect sensor inside no longer reads true centre, and no amount of in-game sensitivity tweaking fixes that permanently.

Button coverage test: confirming every button reaches the browser

Press every button at least once — both face buttons, both shoulder buttons, both stick clicks, the d-pad, and the menu buttons — and watch the coverage panel tick up from "0 of 17 confirmed" toward a complete count. A button that stays unconfirmed no matter how many times you press it is not reaching the browser at all, which usually means a failing switch contact rather than a software problem, since every other button on the same pad is reporting fine through the identical code path.

Trigger test: why L2/R2 report a range, not just pressed or not

Unlike the face buttons, the two triggers on a modern controller are analog: squeeze gently and the fill bar above should creep up gradually rather than snapping straight to full. That range is what lets a racing game read how hard you're braking or a shooter read how far you've pulled a hair trigger. If your trigger bar only ever shows completely empty or completely full, see the FAQ below — it usually means the specific pad you're using wires that trigger as a simple on/off switch rather than a true analog input, which is a hardware choice some budget controllers make.

D-pad test: reading the four directions

The d-pad panel lights up whichever of the four directions you're currently pressing. Because it's built from four separate digital buttons rather than one analog element, there's no "diagonal drift" to worry about the way there is with a stick — a d-pad direction either registers or it doesn't, and a direction that never lights up regardless of how the pad is oriented points at a stuck or disconnected switch under that specific quadrant.

Testing your PS5, PS4, Xbox or Switch Pro controller by name

Every controller a browser recognises as a "standard" gamepad reports the same 17 buttons and 4 axes at the same indices — what genuinely differs between brands is what those indices are called and, for the two sticks, whether they sit at the same height or not. This tool draws a real wireframe of your specific controller rather than a generic diagram: PS5's DualSense and PS4's DualShock 4 share one layout (same buttons, same names — Cross, Circle, Square, Triangle — which is why one page answers both queries), Xbox pads get their own A/B/X/Y wireframe with offset sticks, and a Nintendo Switch Pro Controller gets its own wireframe with the swapped B/A/Y/X positions covered in the FAQ below.

The wireframe tries to detect your controller automatically from the text string your browser reports, and says so on the page — "auto-detected because…" — rather than presenting a guess as settled fact. That guess can be wrong: some platforms report a controller's id without enough information to identify it, and a third-party pad can print a misleading name of its own. The layout picker above the wireframe lets you choose PlayStation, Xbox, Nintendo Switch Pro or Generic yourself, and it works before you've connected anything at all — arrive from /ps5-controller-test, /xbox-controller-test, /ps4-controller-test or /switch-pro-controller-test and the matching wireframe is already showing.

A controller this tool doesn't recognise at all still gets the "Generic" layout: the same wireframe, the same 17 positions, with plain numbered labels instead of a brand guess it has no evidence for. Nothing is degraded or hidden — every button, both sticks and both triggers are still fully testable, just without a brand name attached to them.

Controller latency test: what a browser can and can't tell you

"Controller latency" usually means two different things, and this page can only speak honestly to one of them. If you mean whether the browser sees your button presses promptly, the Gamepad API is polled once per animation frame, so there is an inherent frame or two of delay built into any web page reading it — that's a property of the API, not a diagnosis of your hardware. If you mean whether your specific controller feels laggy compared to another one, that's a real and measurable difference in the physical world, but it lives in the connection method (wired USB beats a wireless dongle, which usually beats Bluetooth) and the controller's own internal polling rate — neither of which a web page can isolate or benchmark reliably. This tool will not invent a millisecond figure to answer that question; see the FAQ for what does affect it.

Questions

Is my analog stick drifting, or is this just normal dead zone?
Let go of the stick and watch the resting deviation number in the stick drift test panel above. Every analog stick reports a small amount of noise even when nobody is touching it — a healthy one settles under about 0.05, and this tool calls that 'centred'. A resting reading between roughly 0.05 and 0.15 is called 'minor noise': most games apply their own dead zone in that same range specifically to hide readings like it, so you likely won't notice it during play. Above about 0.15, the resting offset is larger than a typical dead zone is built to absorb, and this tool calls it 'likely drifting'. None of these numbers are a certified spec — the Gamepad API reports whatever the driver hands it — but the 0.15 line is borrowed from the low end of the dead-zone range game engines already use for this exact problem, so a reading above it is a genuine reason to recalibrate or clean the stick module before assuming the controller itself is failing.
How do I test my PS5 DualSense controller in a browser?
Connect the DualSense over USB-C or pair it over Bluetooth the same way you would for a console or PC game, then come to this page and press any button on it — the browser will not show a controller that has never been pressed, which is covered in more detail below. Once it appears, this tool identifies it from the id string Chrome and Firefox report, usually as 'PS5 controller (DualSense)', and draws it on the PlayStation wireframe: both sticks, the analog L2/R2 triggers, the four face buttons (Cross, Circle, Square, Triangle), the d-pad and the menu buttons, each lighting up at its real position as you press it. A PS4 DualShock 4 controller reports the identical button layout, so everything here applies to it too — that's why one page covers both. The touchpad click and the built-in microphone button are not part of the Gamepad API and won't ever light up here; everything else the pad reports as a standard gamepad will.
Why isn't my controller detected by this tool?
The single most common reason is also the least obvious one: browsers refuse to reveal a connected game controller to any web page until you press a button or move a stick on it, as a deliberate anti-fingerprinting measure. If you plugged in or paired your controller and came straight to this page, it will correctly show as not detected until you press something on it. If pressing buttons still shows nothing, check that the pad works in another application first (a driver or Bluetooth pairing problem will affect every program, not just this one), confirm you're on a recent desktop build of Chrome, Edge or Firefox — Safari's Gamepad API support has historically been unreliable — and try a different USB port or a fresh Bluetooth pairing, since a controller can appear connected at the OS level while still failing to report through the browser.
Can this tool measure my controller's input latency?
Not directly, and this page won't invent a number to imply that it can. The Gamepad API is polled, not event-driven, so anything read through it already carries at least one animation frame of built-in delay before it's a meaningful comparison of one controller against another — measuring that delay would mostly measure your monitor's refresh rate and your browser's own scheduling, not the controller. What genuinely affects the input lag you feel in a game is upstream of anything a browser can see: a wired USB connection is consistently faster than Bluetooth, a 2.4GHz USB dongle usually beats both Bluetooth and Bluetooth Low Energy, and a controller's own internal polling rate (often 125Hz to 1000Hz depending on mode) sets a hard floor no software workaround changes. If you want a browser-based feel for your own reaction speed rather than the hardware's, this site's reaction time test measures that directly.
Why do my triggers only show 0% or 100%, never in between?
L2 and R2 are analog on every current PS5, PS4 and Xbox pad, but this tool can only show you what the browser reports, and some cheaper third-party or older USB controllers wire their triggers as simple digital switches rather than a variable resistor. If yours jumps straight from 0% to 100% with nothing in between, that's a hardware and driver limitation rather than something wrong with this page — an official PS5 or Xbox controller connected properly should show the trigger bar fill smoothly as you squeeze it.
Does this work with a wired or Bluetooth Xbox controller?
Both. An Xbox controller connected by USB cable, by the Xbox Wireless proprietary dongle, or by standard Bluetooth all register through the same Gamepad API and appear here identically once you press a button on it — this tool has no way to tell which connection method is in use, only that a pad is present. If you're troubleshooting which connection feels more responsive, wired USB is the one with the fewest layers between the button and the browser.
Why are A and B swapped on my Nintendo Switch Pro Controller?
They're not swapped on your controller — they're genuinely arranged differently between the two brands, at the exact same physical position. The button in the BOTTOM position of the four-button diamond is labelled A on an Xbox pad and B on a Switch Pro Controller; the RIGHT position is B on Xbox and A on Switch Pro. Nintendo has used this arrangement since the SNES controller, decades before Xbox existed, so it isn't Nintendo's pads that are unusual — the two console families simply standardised on different corners for their most common confirm button. This tool's wireframe reflects your controller's real labels once it identifies it as a Switch Pro Controller (or once you pick 'Nintendo Switch Pro' yourself from the layout picker), so what you see on screen should match what's printed on your pad.
Why doesn't pressing the PS5 or PS4 touchpad do anything on this page?
The touchpad's click is a real, physical button on every DualSense and DualShock 4 controller, but it is not one of the buttons the Gamepad API's standard mapping exposes to a web page — browsers give a page 17 buttons and 4 axes for a 'standard' pad, and the touchpad click isn't among them on any browser this tool has been tested against. The bar drawn across the top of the PlayStation wireframe is there because it's part of what makes the silhouette recognisable, but it's intentionally never shown lit: lighting it up on a press this tool can't actually detect would be worse than leaving it honestly inert.
What if this tool gets my controller's brand wrong?
It will, sometimes — the guess is read from a text string (`Gamepad.id`) that browsers, operating systems and third-party drivers all format differently, and there's no way to make that guess certain. Use the layout picker above the wireframe to choose PlayStation, Xbox, Nintendo Switch Pro or Generic yourself; it works whether or not a controller is connected yet, and it overrides the guess for the rest of your session. The page also tells you, in plain words, why it picked the layout it did — 'auto-detected because the reported id names it an Xbox controller', for example — so a wrong guess is visible rather than silently presented as fact.