Testing Controllers on iOS and Android
Use Safari 16.4 or later on iPhone and iPad, or Chrome on Android — both support the Gamepad API for reading connected controllers. Bluetooth pairing works with DualSense, Xbox Wireless, and most MFi controllers on both platforms. Mobile browser testing is less reliable than desktop, but works for basic button and stick verification.
What Testing Controllers on iOS and Android means
The mobile setup that works
Mobile browser controller support arrived late — iOS Safari didn't ship Gamepad API until March 2023 (Safari 16.4). Android had it earlier through Chrome. Both work for basic controller testing today, with real tradeoffs in reliability compared to desktop.
- 01
Confirm your browser version
On iPhone or iPad, Settings → General → About shows the iOS version. iOS 16.4 or later is required for the Gamepad API in Safari. On Android, Chrome supports the Gamepad API on Android 8 and later. Older phones can install a modern Chrome or Firefox but may still have reduced controller support at the OS level.
- 02
Pair a Bluetooth controller
iPhone/iPad: Settings → Bluetooth → tap the controller name once it appears. Android: Settings → Connected devices → Pair new device. Both platforms handle DualSense, Xbox Wireless Controller, 8BitDo Pro 2, and any modern Bluetooth pad. Put the controller in pairing mode first — usually a small pair button held until an LED blinks fast.
- 03
Use USB-C for MFi and wired controllers
iPhone 15 and later, all iPad Pro/Air models, and every modern Android phone use USB-C. MFi-certified wired controllers like Backbone One (USB-C variant), Razer Kishi V2, and GameSir X2 Pro plug directly into the phone's USB-C port. The controller is detected as soon as it's connected — no Bluetooth pairing needed.
- 04
Open the browser and press a button
Same rule as desktop — the browser hides the controller until you interact with it. Open the tester page, tap into it to make the page focused, and press any button on the controller. The tester should immediately show the controller's ID and start reading buttons and axes.
- 05
Landscape orientation for the best test view
Most controller testers show axes and button state in a wide layout that reads better in landscape. Rotate the phone or tablet before starting the test to avoid the interface being cramped. On iPad, this is especially valuable — the extra screen real estate lets you see all axes and all buttons at once.
Test for Testing Controllers on iOS and Android
Fix Testing Controllers on iOS and Android issues
Devices most affected by Testing Controllers on iOS and Android
Related glossary terms
Testing Controllers on iOS and Android questions
Three most common causes. First, check your iOS version — 16.4 or later is required for Gamepad API support. Second, confirm the controller is paired in Settings → Bluetooth and shows Connected, not just Not Connected. Third, tap into the browser page to give it focus and then press any button — the browser hides the controller until it detects user interaction with the page while the controller reports input.
No. Bluetooth on mobile adds meaningful latency compared to wired desktop — typically 15-30ms floor versus 3-6ms wired. For basic functional testing (does this button register, does this stick move) it's fine. For serious latency measurement or polling-rate comparison, use a wired desktop setup. Mobile testing is convenience-first, precision-second.
For the Gamepad API in Safari, both types work through the same interface — buttons and axes report identically. Where they differ is at the app level and for rumble: MFi certification guarantees compatibility with Apple's Game Controller framework and often unlocks additional features. For browser testing specifically, an MFi controller and a Bluetooth Xbox pad will produce equivalent results.
Yes — they're USB-C wired controllers that plug directly into your phone. They appear as standard game controllers to the browser Gamepad API immediately after connection. This is one of the more reliable mobile testing paths because there's no Bluetooth stack in the middle. Note that Backbone and Kishi don't have their own sticks or buttons that differ from your phone — they wrap the phone in a controller housing.
Mobile Bluetooth stacks are less stable than desktop under RF-crowded conditions. Common causes: another Bluetooth device (headphones, watch) competing for bandwidth, low controller battery draining faster than expected on newer power-hungry pads, or the phone in low-power mode aggressively suspending background Bluetooth activity. Try disabling other Bluetooth devices during testing and confirm the controller's battery is above 30%.
Recent Safari builds added GamepadHapticActuator support for dual-rumble, but coverage is patchy across controllers. MFi-certified controllers vary — some models officially don't support rumble even when connected. The safest way to check: run the browser tester's vibration test and see what happens. If nothing rumbles, it may be the controller or the specific Safari build rather than a fundamental limitation.
Joy-Cons pair via Bluetooth to iOS 16 and Android 10 and later, but appear as separate 'left' and 'right' controllers rather than a unified pad. Most browser Gamepad API testers don't handle this pairing well — you'll see two controllers each reporting a subset of inputs rather than one combined controller. Native Switch pairing is the intended use; browser testing works but is awkward.
Open the browser, tap into the page, and press any button on the controller. If the tester shows the controller's name and starts reading inputs within a second, you're good. If it stays at 'no controller detected' after 10-15 seconds of button-pressing, the platform doesn't support that controller in the browser — try a different controller or fall back to desktop.
Further reading
- Gamepad API — MDN Web Docs · MDN Web Docs
- Safari 16.4 Release Notes — WebKit · WebKit
- Game Controller — Apple Developer Documentation · Apple Developer
- Use a wireless game controller with your iPhone or iPad · Apple Support