diff --git a/features/composition-events.yml b/features/composition-events.yml new file mode 100644 index 00000000000..8df7dd64452 --- /dev/null +++ b/features/composition-events.yml @@ -0,0 +1,10 @@ +name: Composition events +description: The `compositionstart`, `compositionupdate`, and `compositionend` events fire when an input method editor adds characters that might not be commonly available on keyboards. Examples of these characters are emoji, logograms in Asian languages, or input from speech recognition processors. +spec: https://w3c.github.io/uievents/#events-compositionevents +compat_features: + - api.CompositionEvent + - api.CompositionEvent.CompositionEvent + - api.CompositionEvent.data + - api.Element.compositionend_event + - api.Element.compositionstart_event + - api.Element.compositionupdate_event diff --git a/features/composition-events.yml.dist b/features/composition-events.yml.dist new file mode 100644 index 00000000000..b5138e605f5 --- /dev/null +++ b/features/composition-events.yml.dist @@ -0,0 +1,58 @@ +# Generated from: composition-events.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2017-04-19 + baseline_high_date: 2019-10-19 + support: + chrome: "26" + chrome_android: "26" + edge: "12" + firefox: "53" + firefox_android: "53" + safari: "7" + safari_ios: "7" +compat_features: + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "15" + # chrome_android: "18" + # edge: "12" + # firefox: "9" + # firefox_android: "9" + # safari: "5" + # safari_ios: "5" + - api.CompositionEvent + - api.CompositionEvent.data + - api.Element.compositionend_event + - api.Element.compositionstart_event + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "18" + # chrome_android: "18" + # edge: "12" + # firefox: "9" + # firefox_android: "9" + # safari: "5" + # safari_ios: "5" + - api.Element.compositionupdate_event + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2017-04-19 + # baseline_high_date: 2019-10-19 + # support: + # chrome: "26" + # chrome_android: "26" + # edge: "12" + # firefox: "53" + # firefox_android: "53" + # safari: "7" + # safari_ios: "7" + - api.CompositionEvent.CompositionEvent diff --git a/features/focus-events.yml b/features/focus-events.yml new file mode 100644 index 00000000000..7108fd9f1d0 --- /dev/null +++ b/features/focus-events.yml @@ -0,0 +1,18 @@ +name: Focus events +description: Focus events, such as `focus` and `blur`, fire when an element gets or loses focus. +spec: https://w3c.github.io/uievents/#events-focusevent +compute_from: + - api.Element.blur_event + - api.Element.focus_event +# It's possible that caniuse's `focusin-focusout-events` could be linked here +# or broken out into a separate feature. But caniuse and BCD conflict, +# making this difficult. See this issue to help resolve this: +# https://github.com/web-platform-dx/web-features/issues/2327 +compat_features: + - api.Element.blur_event + - api.Element.focus_event + - api.Element.focusin_event + - api.Element.focusout_event + - api.FocusEvent + - api.FocusEvent.FocusEvent + - api.FocusEvent.relatedTarget diff --git a/features/focus-events.yml.dist b/features/focus-events.yml.dist new file mode 100644 index 00000000000..465ed030f69 --- /dev/null +++ b/features/focus-events.yml.dist @@ -0,0 +1,56 @@ +# Generated from: focus-events.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + safari: "7" + safari_ios: "7" +compat_features: + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "6" + # firefox_android: "6" + # safari: "3.1" + # safari_ios: "2" + - api.Element.blur_event + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "24" + # firefox_android: "24" + # safari: "3.1" + # safari_ios: "2" + - api.Element.focus_event + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "26" + # chrome_android: "26" + # edge: "12" + # firefox: "24" + # firefox_android: "24" + # safari: "7" + # safari_ios: "7" + - api.FocusEvent + - api.FocusEvent.FocusEvent + - api.FocusEvent.relatedTarget + + # baseline: false + # support: + # safari: "5" + # safari_ios: "4.2" + - api.Element.focusin_event + - api.Element.focusout_event diff --git a/features/input-event.yml b/features/input-event.yml index fe8a70ebc4c..db8877daec2 100644 --- a/features/input-event.yml +++ b/features/input-event.yml @@ -1,4 +1,17 @@ -name: input (event) +name: Input events description: The `input` event fires when a form control changes or an element with the `contenteditable` attribute changes. spec: https://w3c.github.io/uievents/#event-type-input caniuse: input-event +status: + compute_from: api.Element.input_event +compat_features: + - api.Element.beforeinput_event + - api.Element.input_event + - api.InputEvent + - api.InputEvent.InputEvent + - api.InputEvent.inputType + - api.InputEvent.data + - api.InputEvent.dataTransfer + - api.InputEvent.getTargetRanges + - api.InputEvent.inputType.insertFromPasteAsQuotation + - api.InputEvent.isComposing diff --git a/features/input-event.yml.dist b/features/input-event.yml.dist index 42de8626ad1..ee9b4f480ae 100644 --- a/features/input-event.yml.dist +++ b/features/input-event.yml.dist @@ -2,17 +2,19 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: low - baseline_low_date: 2023-03-27 + baseline: high + baseline_low_date: 2020-01-15 + baseline_high_date: 2022-07-15 support: - chrome: "60" - chrome_android: "60" + chrome: "1" + chrome_android: "18" edge: "79" - firefox: "87" - firefox_android: "87" - safari: "16.4" - safari_ios: "16.4" + firefox: "6" + firefox_android: "6" + safari: "3.1" + safari_ios: "2" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -78,6 +80,7 @@ compat_features: # firefox_android: "87" # safari: "10.1" # safari_ios: "10.3" + - api.Element.beforeinput_event - api.InputEvent.getTargetRanges # baseline: low @@ -91,3 +94,9 @@ compat_features: # safari: "16.4" # safari_ios: "16.4" - api.InputEvent.isComposing + + # baseline: false + # support: + # firefox: "67" + # firefox_android: "67" + - api.InputEvent.inputType.insertFromPasteAsQuotation diff --git a/features/keyboard-events.yml b/features/keyboard-events.yml new file mode 100644 index 00000000000..dae6bdec438 --- /dev/null +++ b/features/keyboard-events.yml @@ -0,0 +1,35 @@ +name: Keyboard events +description: The `keydown` and `keyup` events fire for each key press (or, with modifier keys, a combination of key presses) on a keyboard. +spec: https://w3c.github.io/uievents/#events-keyboardevents +status: + compute_from: + - api.Element.keydown_event + - api.Element.keyup_event +compat_features: + - api.Element.keydown_event + - api.Element.keyup_event + - api.KeyboardEvent + - api.KeyboardEvent.KeyboardEvent + - api.KeyboardEvent.altKey + - api.KeyboardEvent.code + - api.KeyboardEvent.ctrlKey + - api.KeyboardEvent.getModifierState + - api.KeyboardEvent.getModifierState.key_parameter_alt + - api.KeyboardEvent.getModifierState.key_parameter_altgraph + - api.KeyboardEvent.getModifierState.key_parameter_capslock + - api.KeyboardEvent.getModifierState.key_parameter_control + - api.KeyboardEvent.getModifierState.key_parameter_fn + - api.KeyboardEvent.getModifierState.key_parameter_meta + - api.KeyboardEvent.getModifierState.key_parameter_numlock + - api.KeyboardEvent.getModifierState.key_parameter_scrolllock + - api.KeyboardEvent.getModifierState.key_parameter_shift + - api.KeyboardEvent.getModifierState.key_parameter_symbol + - api.KeyboardEvent.isComposing + - api.KeyboardEvent.key + - api.KeyboardEvent.key.dead_key + - api.KeyboardEvent.key.non_printable_keys + - api.KeyboardEvent.key.printable_key + - api.KeyboardEvent.location + - api.KeyboardEvent.metaKey + - api.KeyboardEvent.repeat + - api.KeyboardEvent.shiftKey diff --git a/features/keyboard-events.yml.dist b/features/keyboard-events.yml.dist new file mode 100644 index 00000000000..a3cbbff5264 --- /dev/null +++ b/features/keyboard-events.yml.dist @@ -0,0 +1,229 @@ +# Generated from: keyboard-events.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "1" + chrome_android: "18" + edge: "12" + firefox: "6" + firefox_android: "6" + safari: "1.2" + safari_ios: "1" +compat_features: + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1.5" + # firefox_android: "4" + # safari: "1.2" + # safari_ios: "1" + - api.KeyboardEvent + - api.KeyboardEvent.altKey + - api.KeyboardEvent.ctrlKey + - api.KeyboardEvent.metaKey + - api.KeyboardEvent.shiftKey + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "6" + # firefox_android: "6" + # safari: "1.2" + # safari_ios: "1" + - api.Element.keydown_event + - api.Element.keyup_event + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "26" + # chrome_android: "26" + # edge: "12" + # firefox: "31" + # firefox_android: "31" + # safari: "7" + # safari_ios: "7" + - api.KeyboardEvent.KeyboardEvent + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "30" + # chrome_android: "30" + # edge: "12" + # firefox: "15" + # firefox_android: "15" + # safari: "8" + # safari_ios: "8" + - api.KeyboardEvent.location + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "30" + # chrome_android: "30" + # edge: "12" + # firefox: "15" + # firefox_android: "15" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.getModifierState + - api.KeyboardEvent.getModifierState.key_parameter_alt + - api.KeyboardEvent.getModifierState.key_parameter_control + - api.KeyboardEvent.getModifierState.key_parameter_shift + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "12" + # firefox: "15" + # firefox_android: "15" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.getModifierState.key_parameter_capslock + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "51" + # chrome_android: "51" + # edge: "12" + # firefox: "23" + # firefox_android: "23" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.key + - api.KeyboardEvent.key.non_printable_keys + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "51" + # chrome_android: "51" + # edge: "12" + # firefox: "29" + # firefox_android: "29" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.key.printable_key + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "30" + # chrome_android: "30" + # edge: "79" + # firefox: "15" + # firefox_android: "15" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.getModifierState.key_parameter_meta + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "79" + # firefox: "15" + # firefox_android: "15" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.getModifierState.key_parameter_altgraph + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "79" + # firefox: "38" + # firefox_android: "38" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.code + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "56" + # chrome_android: "56" + # edge: "79" + # firefox: "31" + # firefox_android: "31" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.isComposing + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "51" + # chrome_android: "51" + # edge: ≤79 + # firefox: "37" + # firefox_android: "37" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.key.dead_key + + # baseline: false + # support: + # edge: "12" + # firefox: "28" + # firefox_android: "28" + # safari: "10.1" + # safari_ios: "10.3" + - api.KeyboardEvent.repeat + + # baseline: false + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "79" + # firefox: "15" + # firefox_android: "15" + - api.KeyboardEvent.getModifierState.key_parameter_fn + - api.KeyboardEvent.getModifierState.key_parameter_scrolllock + + # baseline: false + # support: + # chrome: "48" + # chrome_android: "48" + # edge: ≤79 + # firefox: "15" + # firefox_android: "15" + - api.KeyboardEvent.getModifierState.key_parameter_numlock + + # baseline: false + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "79" + - api.KeyboardEvent.getModifierState.key_parameter_symbol diff --git a/features/mouse-events.yml b/features/mouse-events.yml index c4cff3bb0d0..d53a451500b 100644 --- a/features/mouse-events.yml +++ b/features/mouse-events.yml @@ -9,7 +9,9 @@ status: compute_from: - api.MouseEvent compat_features: + - api.Element.auxclick_event - api.Element.click_event + - api.Element.contextmenu_event - api.Element.dblclick_event - api.Element.mousedown_event - api.Element.mouseup_event diff --git a/features/mouse-events.yml.dist b/features/mouse-events.yml.dist index 8882468460c..8cd866f1282 100644 --- a/features/mouse-events.yml.dist +++ b/features/mouse-events.yml.dist @@ -189,3 +189,22 @@ compat_features: # safari: "12.1" # safari_ios: "12.2" - api.MouseEvent.getModifierState + + # baseline: false + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "6" + # firefox_android: "6" + # safari: "3" + - api.Element.contextmenu_event + + # baseline: false + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "79" + # firefox: "53" + # firefox_android: "53" + - api.Element.auxclick_event diff --git a/features/draft/spec/pointerevents3.yml b/features/pointer-events-api.yml similarity index 70% rename from features/draft/spec/pointerevents3.yml rename to features/pointer-events-api.yml index 99298a878ec..00a13b01c07 100644 --- a/features/draft/spec/pointerevents3.yml +++ b/features/pointer-events-api.yml @@ -1,8 +1,13 @@ -draft_date: 2024-11-07 name: Pointer Events -description: TODO +description: Pointer events, such as `pointerdown`, and the `PointerEvent` API, represent general pointing inputs, from a wide range of devices, such as a mouse, pen or stylus, or touch with one or more fingers. Not to be confused with the `pointer-events` CSS property. spec: https://w3c.github.io/pointerevents/ +caniuse: pointer +status: + compute_from: api.Element.pointerdown_event compat_features: + - api.Element.auxclick_event.type_pointerevent + - api.Element.click_event.type_pointerevent + - api.Element.contextmenu_event.type_pointerevent - api.Element.gotpointercapture_event - api.Element.hasPointerCapture - api.Element.lostpointercapture_event @@ -38,18 +43,3 @@ compat_features: - api.PointerEvent.tiltY - api.PointerEvent.twist - api.PointerEvent.width - -# The following features in the spec are already part of web-features: -# - DOM: -# - api.Element -# - touch-action: -# - css.properties.touch-action -# - css.properties.touch-action.manipulation -# - css.properties.touch-action.none -# - css.properties.touch-action.pan-down -# - css.properties.touch-action.pan-left -# - css.properties.touch-action.pan-right -# - css.properties.touch-action.pan-up -# - css.properties.touch-action.pan-x -# - css.properties.touch-action.pan-y -# - css.properties.touch-action.pinch-zoom diff --git a/features/draft/spec/pointerevents3.yml.dist b/features/pointer-events-api.yml.dist similarity index 87% rename from features/draft/spec/pointerevents3.yml.dist rename to features/pointer-events-api.yml.dist index 90310d03875..2504c5ecc48 100644 --- a/features/draft/spec/pointerevents3.yml.dist +++ b/features/pointer-events-api.yml.dist @@ -1,9 +1,18 @@ -# Generated from: pointerevents3.yml +# Generated from: pointer-events-api.yml # Do not edit this file by hand. Edit the source file instead! status: - baseline: false - support: {} + baseline: high + baseline_low_date: 2020-07-28 + baseline_high_date: 2023-01-28 + support: + chrome: "55" + chrome_android: "55" + edge: "12" + firefox: "59" + firefox_android: "79" + safari: "13" + safari_ios: "13" compat_features: # baseline: high # baseline_low_date: 2020-07-28 @@ -18,6 +27,7 @@ compat_features: # safari_ios: "13" - api.Navigator.maxTouchPoints + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2020-07-28 # baseline_high_date: 2023-01-28 @@ -139,6 +149,15 @@ compat_features: # edge: "79" - api.Element.pointerrawupdate_event + # baseline: false + # support: + # chrome: "92" + # chrome_android: "92" + # edge: "92" + - api.Element.auxclick_event.type_pointerevent + - api.Element.click_event.type_pointerevent + - api.Element.contextmenu_event.type_pointerevent + # baseline: false # support: # chrome: "128" @@ -146,7 +165,6 @@ compat_features: # edge: "128" - api.PointerEvent.persistentDeviceId - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: {} - api.PointerEvent.pointerType.fractional_coordinates diff --git a/features/wheel-events.yml b/features/wheel-events.yml new file mode 100644 index 00000000000..ad0b93bc78c --- /dev/null +++ b/features/wheel-events.yml @@ -0,0 +1,14 @@ +name: Wheel events +description: The `wheel` event fires when the user moves a mouse wheel or similar spatially rotating input device. +spec: https://w3c.github.io/uievents/#events-wheelevents +status: + compute_from: api.Element.wheel_event +compat_features: + - api.Element.wheel_event + - api.WheelEvent + - api.WheelEvent.WheelEvent + - api.WheelEvent.deltaMode + - api.WheelEvent.deltaX + - api.WheelEvent.deltaY + - api.WheelEvent.deltaZ + - api.WheelEvent.pinch_to_zoom_support diff --git a/features/wheel-events.yml.dist b/features/wheel-events.yml.dist new file mode 100644 index 00000000000..c4ed809da78 --- /dev/null +++ b/features/wheel-events.yml.dist @@ -0,0 +1,75 @@ +# Generated from: wheel-events.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "31" + chrome_android: "31" + edge: "12" + firefox: "17" + firefox_android: "17" + safari: "7" +compat_features: + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "17" + # firefox_android: "17" + # safari: "3" + # safari_ios: "1" + - api.WheelEvent + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "26" + # chrome_android: "26" + # edge: "12" + # firefox: "17" + # firefox_android: "17" + # safari: "7" + # safari_ios: "7" + - api.WheelEvent.WheelEvent + - api.WheelEvent.deltaMode + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "31" + # chrome_android: "31" + # edge: "12" + # firefox: "17" + # firefox_android: "17" + # safari: "8" + # safari_ios: "8" + - api.WheelEvent.deltaX + - api.WheelEvent.deltaY + - api.WheelEvent.deltaZ + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # chrome: "31" + # chrome_android: "31" + # edge: "12" + # firefox: "17" + # firefox_android: "17" + # safari: "7" + - api.Element.wheel_event + + # baseline: false + # support: + # chrome: "31" + # chrome_android: "31" + # edge: "79" + # firefox: "55" + # firefox_android: "55" + # safari: "15" + - api.WheelEvent.pinch_to_zoom_support