diff --git a/features/gamepad-haptics.yml b/features/gamepad-haptics.yml new file mode 100644 index 00000000000..b7152252c5c --- /dev/null +++ b/features/gamepad-haptics.yml @@ -0,0 +1,18 @@ +name: Gamepad haptic feedback +description: The `gamepad.vibrationActuator` property represents a gamepad's haptics hardware, which allows you to control the vibration motors in a gamepad. +spec: https://w3c.github.io/gamepad/#gamepadhapticactuator-interface +group: gamepad +status: + compute_from: api.Gamepad.vibrationActuator +compat_features: + - api.Gamepad.hapticActuators + - api.GamepadHapticActuator.pulse + - api.Gamepad.vibrationActuator + - api.GamepadHapticActuator + - api.GamepadHapticActuator.effects + - api.GamepadHapticActuator.effects.type_trigger-rumble + - api.GamepadHapticActuator.playEffect + - api.GamepadHapticActuator.playEffect.params_leftTrigger_parameter + - api.GamepadHapticActuator.playEffect.params_rightTrigger_parameter + - api.GamepadHapticActuator.playEffect.type_trigger-rumble + - api.GamepadHapticActuator.reset diff --git a/features/gamepad-haptics.yml.dist b/features/gamepad-haptics.yml.dist new file mode 100644 index 00000000000..6507dd44596 --- /dev/null +++ b/features/gamepad-haptics.yml.dist @@ -0,0 +1,56 @@ +# Generated from: gamepad-haptics.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "68" + chrome_android: "68" + edge: "79" + safari: "16.4" +compat_features: + # baseline: false + # support: + # chrome: "68" + # chrome_android: "68" + # edge: "15" + # firefox: "55" + # firefox_android: "55" + # safari: "16.4" + - api.GamepadHapticActuator + + # baseline: false + # support: + # chrome: "68" + # chrome_android: "68" + # edge: "15" + # safari: "16.4" + - api.GamepadHapticActuator.playEffect + - api.GamepadHapticActuator.reset + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # chrome: "68" + # chrome_android: "68" + # edge: "79" + # safari: "16.4" + - api.Gamepad.vibrationActuator + + # baseline: false + # support: + # chrome: "126" + # chrome_android: "126" + # edge: "126" + - api.GamepadHapticActuator.effects + - api.GamepadHapticActuator.effects.type_trigger-rumble + - api.GamepadHapticActuator.playEffect.params_leftTrigger_parameter + - api.GamepadHapticActuator.playEffect.params_rightTrigger_parameter + - api.GamepadHapticActuator.playEffect.type_trigger-rumble + + # baseline: false + # support: + # firefox: "55" + # firefox_android: "55" + - api.Gamepad.hapticActuators + - api.GamepadHapticActuator.pulse diff --git a/features/gamepad-touch.yml b/features/gamepad-touch.yml new file mode 100644 index 00000000000..40e4a1a04f6 --- /dev/null +++ b/features/gamepad-touch.yml @@ -0,0 +1,6 @@ +name: Gamepad touch buttons +description: The `touched` property of a `GamepadButton` object indicates whether a button capable of detecting touch is currently touched. +spec: https://w3c.github.io/gamepad/#dom-gamepadbutton-touched +group: gamepad +compat_features: + - api.GamepadButton.touched diff --git a/features/gamepad-touch.yml.dist b/features/gamepad-touch.yml.dist new file mode 100644 index 00000000000..763013b56e7 --- /dev/null +++ b/features/gamepad-touch.yml.dist @@ -0,0 +1,13 @@ +# Generated from: gamepad-touch.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "73" + chrome_android: "73" + edge: "15" + firefox: "55" + firefox_android: "55" +compat_features: + - api.GamepadButton.touched diff --git a/features/gamepad-vr.yml b/features/gamepad-vr.yml new file mode 100644 index 00000000000..dd6a331cae5 --- /dev/null +++ b/features/gamepad-vr.yml @@ -0,0 +1,16 @@ +name: Gamepad VR hands and poses +description: The `hand` and `pose` properties of a `Gamepad` object represent the position in space and the hand that WebVR controllers are held in. +spec: https://w3c.github.io/gamepad/extensions.html +group: gamepad +compat_features: + - api.Gamepad.hand + - api.Gamepad.pose + - api.GamepadPose + - api.GamepadPose.angularAcceleration + - api.GamepadPose.angularVelocity + - api.GamepadPose.hasOrientation + - api.GamepadPose.hasPosition + - api.GamepadPose.linearAcceleration + - api.GamepadPose.linearVelocity + - api.GamepadPose.orientation + - api.GamepadPose.position diff --git a/features/gamepad-vr.yml.dist b/features/gamepad-vr.yml.dist new file mode 100644 index 00000000000..41345082244 --- /dev/null +++ b/features/gamepad-vr.yml.dist @@ -0,0 +1,20 @@ +# Generated from: gamepad-vr.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + firefox: "55" + firefox_android: "55" +compat_features: + - api.Gamepad.hand + - api.Gamepad.pose + - api.GamepadPose + - api.GamepadPose.angularAcceleration + - api.GamepadPose.angularVelocity + - api.GamepadPose.hasOrientation + - api.GamepadPose.hasPosition + - api.GamepadPose.linearAcceleration + - api.GamepadPose.linearVelocity + - api.GamepadPose.orientation + - api.GamepadPose.position diff --git a/features/gamepad.yml b/features/gamepad.yml new file mode 100644 index 00000000000..d79cc3fc238 --- /dev/null +++ b/features/gamepad.yml @@ -0,0 +1,25 @@ +name: Gamepad +description: The `navigator.getGamepads()` API accesses and responds to signals from game controllers. +spec: https://w3c.github.io/gamepad/ +caniuse: gamepad +group: gamepad +status: + compute_from: api.Gamepad +compat_features: + - api.Gamepad + - api.Gamepad.axes + - api.Gamepad.buttons + - api.Gamepad.connected + - api.Gamepad.id + - api.Gamepad.index + - api.Gamepad.mapping + - api.Gamepad.timestamp + - api.GamepadButton + - api.GamepadButton.pressed + - api.GamepadButton.value + - api.Navigator.getGamepads + - api.GamepadEvent + - api.GamepadEvent.GamepadEvent + - api.GamepadEvent.gamepad + - api.Window.gamepadconnected_event + - api.Window.gamepaddisconnected_event diff --git a/features/gamepad.yml.dist b/features/gamepad.yml.dist new file mode 100644 index 00000000000..a6c917d29a6 --- /dev/null +++ b/features/gamepad.yml.dist @@ -0,0 +1,76 @@ +# Generated from: gamepad.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2017-03-27 + baseline_high_date: 2019-09-27 + support: + chrome: "21" + chrome_android: "25" + edge: "12" + firefox: "29" + firefox_android: "32" + safari: "10.1" + safari_ios: "10.3" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "21" + # chrome_android: "25" + # edge: "12" + # firefox: "29" + # firefox_android: "32" + # safari: "10.1" + # safari_ios: "10.3" + - api.Gamepad + - api.Gamepad.axes + - api.Gamepad.buttons + - api.Gamepad.id + - api.Gamepad.index + - api.Gamepad.mapping + - api.Gamepad.timestamp + - api.GamepadButton + - api.GamepadButton.pressed + - api.GamepadButton.value + - api.GamepadEvent + - api.GamepadEvent.gamepad + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "25" + # chrome_android: "25" + # edge: "12" + # firefox: "29" + # firefox_android: "32" + # safari: "10.1" + # safari_ios: "10.3" + - api.Gamepad.connected + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "35" + # chrome_android: "35" + # edge: "12" + # firefox: "29" + # firefox_android: "32" + # safari: "10.1" + # safari_ios: "10.3" + - api.GamepadEvent.GamepadEvent + - api.Navigator.getGamepads + + # baseline: false + # support: + # firefox: "89" + # firefox_android: "89" + # safari: "16" + # safari_ios: "16" + - api.Window.gamepadconnected_event + - api.Window.gamepaddisconnected_event diff --git a/groups/gamepad.yml b/groups/gamepad.yml new file mode 100644 index 00000000000..82013df8157 --- /dev/null +++ b/groups/gamepad.yml @@ -0,0 +1 @@ +name: Gamepad