diff --git a/features/gamepad-extensions.yml b/features/gamepad-extensions.yml new file mode 100644 index 00000000000..b1bb296061a --- /dev/null +++ b/features/gamepad-extensions.yml @@ -0,0 +1,23 @@ +name: Gamepad extensions +description: The `hand` and `pose` properties of a `Gamepad` object represent the position in space and the hand that WebXR controllers are held in. +spec: https://w3c.github.io/gamepad/extensions.html +group: gamepad +status: + compute_from: api.GamepadPose +compat_features: + - api.Gamepad.displayId + - api.Gamepad.hand + - api.Gamepad.hapticActuators + - api.Gamepad.pose + - api.GamepadHapticActuator.canPlayEffectType + - api.GamepadHapticActuator.pulse + - api.GamepadHapticActuator.type + - 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-extensions.yml.dist b/features/gamepad-extensions.yml.dist new file mode 100644 index 00000000000..d91ce5f327b --- /dev/null +++ b/features/gamepad-extensions.yml.dist @@ -0,0 +1,46 @@ +# Generated from: gamepad-extensions.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + firefox: "55" + firefox_android: "55" +compat_features: + # baseline: false + # support: + # chrome: "68" + # chrome_android: "68" + # edge: "15" + # firefox: "55" + # firefox_android: "55" + # safari: "16.4" + - api.GamepadHapticActuator.type + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # firefox: "55" + # firefox_android: "55" + - api.Gamepad.hand + - api.Gamepad.hapticActuators + - api.Gamepad.pose + - api.GamepadHapticActuator.pulse + - 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 + + # baseline: false + # support: + # safari: "16.4" + - api.GamepadHapticActuator.canPlayEffectType + + # baseline: false + # support: {} + - api.Gamepad.displayId diff --git a/features/gamepad-haptics.yml b/features/gamepad-haptics.yml new file mode 100644 index 00000000000..c8f4907d174 --- /dev/null +++ b/features/gamepad-haptics.yml @@ -0,0 +1,16 @@ +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.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..2fc420683cb --- /dev/null +++ b/features/gamepad-haptics.yml.dist @@ -0,0 +1,49 @@ +# 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 diff --git a/features/gamepad.yml b/features/gamepad.yml new file mode 100644 index 00000000000..5c5cb0cabe7 --- /dev/null +++ b/features/gamepad.yml @@ -0,0 +1,26 @@ +name: Gamepad +description: The `Gamepad` 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.touched + - 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..9b9659a1d14 --- /dev/null +++ b/features/gamepad.yml.dist @@ -0,0 +1,85 @@ +# 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: + # chrome: "73" + # chrome_android: "73" + # edge: "15" + # firefox: "55" + # firefox_android: "55" + - api.GamepadButton.touched + + # 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