Controller Not Detected in Browser

Fix a controller that is not showing up in your browser. Step-by-step troubleshooting for USB and Bluetooth gamepads on Windows, Mac, and Linux.

ZERO UPLOAD · ALL LOCAL
  1. Connect your gamepad via USB or Bluetooth.
  2. Press any button on the controller — the browser will detect it automatically.
  3. Watch the left and right stick canvases. A healthy stick rests near the center dot.
  4. Set the deadzone slider to match your game's deadzone (check game settings; most use 0.05–0.15).
  5. Leave the controller untouched for 10 seconds. Any dot movement outside the deadzone ring indicates drift.
  6. Press all buttons and triggers to confirm they register correctly.

What this page covers

  • Windows OS check Win+R > joy.cpl, confirms the controller is visible at the driver level before testing in browser
  • Linux permissions evdev nodes (/dev/input/event*) require membership in the input group: sudo usermod -aG input $USER
  • Chrome internals page chrome://gamepad-internals/ shows raw Gamepad API data, more sensitive than any third-party test page
  • Input mode switch controllers with a D/X switch (e.g. Logitech F310) need XInput mode for reliable browser mapping

Connect your controller and press any button to begin.

Browsers require at least one button press before exposing gamepad data — this is a security measure, not a bug.

Controller disconnected — reconnect and press any button to resume.

Left Stick
X0.00000 Y0.00000
Right Stick
X0.00000 Y0.00000
0.100
Bumpers & Triggers
LB
LT
RT
RB
D-Pad
System
Back
Start
L3
R3
Face
X
Y
A
B

Controller Not Detected in Browser: Troubleshooting Guide

The Web Gamepad API exposes connected controllers to a page only after the browser detects a connection or after a button or axis is used for the first time.1 This means the most common "not detected" result is not a broken controller: the controller is connected, but the page has not received the interaction that makes the browser expose it. Connect the controller, press any button, and the page should respond within a second.

If pressing a button still produces no detection, the issue is at a deeper level. Work through the checks below in order to isolate whether the problem is at the operating system level, the browser level, or the controller's input mode. Repeat any failed check after a browser reload and after reseating the cable or re-pairing Bluetooth.

Checking at the operating system level

On Windows, open the Run dialog (Win+R), type joy.cpl, and press Enter. If the controller does not appear in the Game Controllers list, the issue is at the OS driver level, not in the browser. Reinstall drivers or try a different USB port before opening any test page. On macOS, check System Information under Hardware and USB. On Linux, confirm your user account has read permission on the relevant /dev/input/event* device.2

Start where the browser gets its input

Because the browser reads from the OS, the OS must see the controller first. A device that does not appear in joy.cpl cannot be fixed by browser settings or page reloads alone. Resolve the OS recognition issue first, then test in the browser. The browser Gamepad API has no way to expose a controller that the operating system driver layer has not already registered, so confirming OS-level visibility is the most important first step, the trace a missing gamepad back to the OS or browser check you run before anything else.

Once the OS recognizes the device, open the tester in Chrome or Edge and press any button to prompt the browser to expose it. A controller that is visible in joy.cpl but still missing from the page usually needs that first button press, so do not assume the browser is broken before you have interacted with the device while the tab is open.

Browser compatibility and input mode

Chrome and Edge provide the broadest Gamepad API support. Firefox supports it but can delay exposing a gamepad until the user interacts with it while the page is visible, partly to reduce fingerprinting.3 Safari on iOS and some older macOS versions do not support the Gamepad API at all, so switch to Chrome or Edge if you are on Safari and seeing no detection.

Confirm the controller mode before blaming the browser

If the controller has a mode switch, like the Logitech F310's D/X switch on the back, or the 8BitDo's connection-mode buttons, confirm it is set to XInput mode. Logitech's F310 documentation describes XInput as the modern Windows gamepad standard and recommends setting the switch to X for modern games whenever possible.4 DirectInput mode produces a different device descriptor that some browsers do not map correctly, resulting in detection failures or unusual button assignments.

Bluetooth pairing troubleshooting by platform

Bluetooth controller detection failures in the browser often trace back to the OS pairing state rather than to the browser itself. On Windows 11, open Settings, then Bluetooth and devices, and check whether your controller appears as paired. A device that shows as paired but disconnected needs you to press its power or sync button to prompt Windows to reconnect. For Xbox controllers, hold the sync button on top until the Xbox logo blinks, which puts the controller into pairing mode for a fresh connection.5

On macOS, navigate to System Settings and then Bluetooth and look for the controller in the device list. If it shows as paired but not connected, click Connect next to the device entry. Apple’s Xbox controller guide follows the same pairing pattern: turn on the controller, hold the Connect button to enter pairing mode, then select it from Bluetooth settings.6 DualSense and DualShock 4 do not require any additional app on macOS.

Linux: reconnecting via bluetoothctl

On Linux, use bluetoothctl to inspect the pairing state: run bluetoothctl in a terminal, then type devices to list known devices. If your controller appears in the list, type connect followed by the device MAC address to reconnect. After reconnecting, reload the tester page and press a button. If the OS shows the device as connected but the browser still shows no gamepad, check the evdev permissions described in the Linux controller guide. Chromium opens Linux input devices through evdev nodes such as /dev/input/event*, so a Bluetooth controller has the same permission requirements as a USB connection.2

When to use this

Use this guide when the gamepad tester shows "waiting for controller" or no controller detected even after plugging in or pairing your gamepad via Bluetooth.1

Examples

Browser shows waiting because you forgot to press a button

Before
Status: Waiting for controller... (USB cable connected, no button pressed yet)
After
Status: Controller connected as Standard Gamepad (after pressing A on the controller)

The browser requires one physical button press before exposing the gamepad to the page. This is a security requirement, not a bug.

Logitech F310 not detected because mode switch is in wrong position

Before
Mode switch on back: D position / Browser: no controller detected after button presses
After
Mode switch moved to X position, controller unplugged and replugged then detected immediately on next button press

Always verify the mode switch position before diagnosing USB port or driver issues.

Linux permission issue preventing evdev access in Chrome

Before
ls -l /dev/input/js0 confirms device exists, but Chrome shows no controller
After
sudo usermod -aG input $USER then log out and back in and controller detected on next button press

Chrome on Linux uses the evdev interface (/dev/input/event*), not joydev (/dev/input/js*). Working in jstest-gtk does not guarantee evdev access.

Sources
  1. 1.

    MDN, "Using the Gamepad API," developer.mozilla.org, April 2026. https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

  2. 2.

    Chromium, "device/gamepad/gamepad_device_linux.cc," chromium.googlesource.com, accessed June 2026. https://chromium.googlesource.com/chromium/src/+/HEAD/device/gamepad/gamepad_device_linux.cc

  3. 3.

    MDN, "Implementing controls using the Gamepad API," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Games/Techniques/Controls_Gamepad_API

  4. 4.

    Logitech, "Using the input mode switch on the Gamepad F310 to select DirectInput or XInput," support.logi.com, accessed June 2026. https://support.logi.com/hc/en-us/articles/360023398693-Using-the-input-mode-switch-on-the-Gamepad-F310-to-select-DirectInput-or-XInput

  5. 5.

    Microsoft Q&A, "Xbox One Controller Discoverable but Fails to Connect to Windows 11 via Bluetooth," learn.microsoft.com, September 2025. https://learn.microsoft.com/en-us/answers/questions/5569932/xbox-one-controller-discoverable-but-fails-to-connect-to-windows-11

  6. 6.

    Apple Support, "Connect an Xbox wireless game controller to your Apple device," apple.com, January 2026. https://support.apple.com/en-us/111101

FAQ