When using a Bluetooth gamepad to interact with a button for entering fullscreen mode, the gamepad input is not recognized as a user gesture to activate fullscreen mode. In contrast, when clicking the button using a mouse, the fullscreen mode works as expected. This behavior suggests that the gamepad input is not being treated as a valid user gesture. Expected Behavior: Gamepad input, such as button presses or triggers, should be recognized as valid user gestures and trigger fullscreen mode when interacting with the fullscreen button on websites. Actual Behavior: Gamepad input is not recognized as a valid user gesture to activate fullscreen mode. Only mouse clicks trigger fullscreen mode.
<rdar://problem/118247589>
I personally don't think this is unreasonable, but it's really something that needs to be raised on the HTML spec. For a concise description of what's going on, please see "So what constitutes a “user activation”": https://webkit.org/blog/13862/the-user-activation-api/ What would need to happen is that "gamepadconnected" should perhaps count as a “activation triggering user event”. > Gamepad input, such as button presses or triggers, should be recognized as valid user gestures and trigger fullscreen mode when interacting with the fullscreen button on websites. The problem is that gamepad button presses or triggers are not events. The gamepad API is a polling API, so the application checks periodically (through, for instance, .requestAnimationFrame()), so these are not events in way that would be needed to trigger user activation. There is an ongoing effort to change the Gamepad to an event driven API, but it's still some ways off. Filed HTML issue for you: https://github.com/whatwg/html/issues/10347