Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions features/accelerometer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Accelerometer
description: The `Accelerometer`, `LinearAccelerationSensor` and `GravitySensor` APIs read the acceleration applied to a device in three dimensions, either including the effect of gravity, without its effect, or only its effect, respectively.
spec: https://w3c.github.io/accelerometer/
caniuse: accelerometer
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caniuse says Chrome 67 and Edge 79.
We say Chrome 91 and Edge 91.

Is this a large enough discrepancy that we should worry about? If not, this seems good.

group: sensors
status:
compute_from:
Expand Down
1 change: 1 addition & 0 deletions features/background-clip-text.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
name: "background-clip: text"
description: "The `background-clip: text` CSS declaration draws the background underneath only the text in the element."
spec: https://drafts.csswg.org/css-backgrounds-4/#background-clip
caniuse: background-clip-text
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our support data is quite different from caniuse's.

We have Chrome and Edge 120, which is OK. Caniuse shows earlier versions, but with vendor prefixes.

However, we show Firefox as unsupported, but caniuse shows support starting from Firefox 49.

As for Safari, we have 14, and they have 15.5, with a partial support note.

Even more confusing, caniuse shows:

Baseline (computed) Widely available across major browsers.

Even if our own feature is Limited Availability.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear to me why caniuse shows a Baseline banner on https://caniuse.com/background-clip-text. Nothing should map to it. I'm going to put this on my agenda for the next time I talk to Alexis.

group: background
1 change: 1 addition & 0 deletions features/background-sync.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Background sync
description: The background synchronization API registers a service worker callback to run only when the device is no longer offline. You can use this to let users continue using your app while offline and synchronize with a server after reconnecting.
spec: https://wicg.github.io/background-sync/spec/
caniuse: background-sync
status:
compute_from: api.SyncManager
compat_features:
Expand Down
1 change: 1 addition & 0 deletions features/gyroscope.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Gyroscope
description: The `Gyroscope` API reads the angular velocity of a device in three dimensions.
spec: https://w3c.github.io/gyroscope/#gyroscope-interface
caniuse: gyroscope
group: sensors
status:
compute_from: api.Gyroscope
Expand Down
1 change: 1 addition & 0 deletions features/intl-plural-rules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Intl.PluralRules
description: "The `Intl.PluralRules` API creates a locale-aware object that tells you which of the language's pluralization rules apply based on a given number."
group: intl
spec: https://tc39.es/ecma402/#pluralrules-objects
caniuse: intl-pluralrules
status:
compute_from: javascript.builtins.Intl.PluralRules
compat_features:
Expand Down
1 change: 1 addition & 0 deletions features/json.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: JSON
description: The `JSON` API provides static methods for parsing values from and converting values to JavaScript Object Notation (JSON), a serialization format for objects, arrays, numbers, strings, Boolean values, and null.
group: json
spec: https://tc39.es/ecma262/multipage/structured-data.html#sec-json-object
caniuse: json
status:
compute_from: javascript.builtins.JSON
compat_features:
Expand Down
1 change: 1 addition & 0 deletions features/link-rel-preconnect.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: '<link rel="preconnect">'
description: The `rel="preconnect"` attribute for the `<link>` HTML element is a hint to the browser that the page or user is likely to request resources from another origin, so the browser should preemptively start a connection to the `href` value's origin.
spec: https://html.spec.whatwg.org/multipage/links.html#link-type-preconnect
caniuse: link-rel-preconnect
group: resource-hints
compat_features:
- html.elements.link.rel.preconnect
1 change: 1 addition & 0 deletions features/magnetometer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Magnetometer
description: The `Magnetometer` API reads magnetic field sensor data from the device's magnetometer.
spec: https://w3c.github.io/magnetometer/
caniuse: magnetometer
group: sensors
compat_features:
- api.Magnetometer
Expand Down
2 changes: 2 additions & 0 deletions features/menu.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: <menu>
description: The `<menu>` element represents an unordered list of action items (`<li>`), such as a toolbar. It is a semantic alternative to the `<ul>` element.
spec: https://html.spec.whatwg.org/multipage/grouping-content.html#menus
# https://caniuse.com/menu is not linked here because it's for the <menuitem>
# element, a historical Firefox-only feature.
group: html-elements
# TODO: Tag relevant parts of api.HTMLLIElement when possible:
# https://github.com/web-platform-dx/web-features/issues/1173
Expand Down
1 change: 1 addition & 0 deletions features/multi-column.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Multi-column layout
description: Multi-column layout flows an element's content across one or more columns in a single row, without affecting the `display` property of its children.
spec: https://drafts.csswg.org/css-multicol-1/
caniuse: multicolumn
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caniuse is full of partial support notes for this feature. Our feature is Widely Available.
Should we look into these notes and decide if they're outdated, irrelevant, or if they should somehow regress the feature?

group: multi-column
status:
compute_from: css.properties.columns
Expand Down
1 change: 1 addition & 0 deletions features/mutation-events.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ name: Mutation events
description: Mutation events like `DOMSubtreeModified`, `DOMNodeInserted`, or `DOMNodeRemoved` fire when DOM changes occur.
# The latest spec doesn't mention them at all anymore.
spec: https://w3c.github.io/uievents/
caniuse: mutation-events
group: dom
discouraged:
removal_date: 2025-09-15
Expand Down
1 change: 1 addition & 0 deletions features/mutationobserver.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: MutationObserver
description: The `MutationObserver` API watches for changes to the DOM tree and calls a callback function when DOM changes occur.
spec: https://dom.spec.whatwg.org/#interface-mutationobserver
caniuse: mutationobserver
group: dom
compat_features:
- api.MutationObserver
Expand Down
1 change: 1 addition & 0 deletions features/orientation-sensor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ description: The `AbsoluteOrientationSensor` and `RelativeOrientationSensor` API
spec:
- https://w3c.github.io/orientation-sensor/#absoluteorientationsensor-interface
- https://w3c.github.io/orientation-sensor/#relativeorientationsensor-interface
caniuse: orientation-sensor
group: sensors
compat_features:
- api.OrientationSensor
Expand Down
2 changes: 2 additions & 0 deletions features/outline.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: outline
description: The `outline` CSS shorthand sets the color, style, and width of a line around an element, outside of the border.
spec: https://drafts.csswg.org/css-ui-4/#outline
# https://caniuse.com/outline is not linked because it covers both shorthand and
# longhands, which are split in web-features. TODO: merge the features.
compat_features:
- css.properties.outline
- css.properties.outline.dashed
Expand Down
4 changes: 2 additions & 2 deletions features/outlines.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Outlines
description: The `outline-color`, `outline-style`, and `outline-width` and `outline-offset` CSS properties style a line around an element, outside of the border.
spec: https://drafts.csswg.org/css-ui-4/#outline
# TODO: Caniuse support is close but would need to be reconciled.
# caniuse: outline
# https://caniuse.com/outline is not linked because it covers both shorthand and
# longhands, which are split in web-features. TODO: merge the features.
compat_features:
- css.properties.outline-color
- css.properties.outline-color.transparent
Expand Down
1 change: 1 addition & 0 deletions features/payment-request.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Payment request
description: The `PaymentRequest` API prompts the user to make a payment through the browser's user interface.
spec: https://w3c.github.io/payment-request/
caniuse: payment-request
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're almost in agreement with caniuse on this one except that caniuse has this partial note for Chrome, Edge, and Safari: "Missing support for PaymentResponse.prototype.retry() method", which we don't seem to care about.

Support versions are old enough that we might want to just ignore this.

group: payments
status:
compute_from: api.PaymentRequest
Expand Down
2 changes: 2 additions & 0 deletions features/pdf-viewer.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: pdfViewerEnabled
description: The `navigator.pdfViewerEnabled` property is a boolean for whether the browser navigates to and shows a PDF in the browser window or downloads the PDF.
spec: https://html.spec.whatwg.org/multipage/system-state.html#pdf-viewing-support
# Note: https://caniuse.com/pdf-viewer is not linked because it covers the
# built-in PDF viewer, which is much older than navigator.pdfViewerEnabled.
compat_features:
- api.Navigator.pdfViewerEnabled
1 change: 1 addition & 0 deletions features/prefers-color-scheme.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: prefers-color-scheme media query
description: The `prefers-color-scheme` CSS media query sets styles based on the requested color scheme, light or dark.
spec: https://drafts.csswg.org/mediaqueries-5/#prefers-color-scheme
caniuse: prefers-color-scheme
group: media-queries
status:
compute_from: css.at-rules.media.prefers-color-scheme
Expand Down
1 change: 1 addition & 0 deletions features/registerprotocolhandler.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: registerProtocolHandler
description: "The `navigator.registerProtocolHandler()` method declares a site's ability to handle an address scheme (also known as a protocol). For example, an email site can register to open `mailto:` URLs or a VoIP site to open `tel:` URLs."
spec: https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers
caniuse: registerprotocolhandler
status:
compute_from: api.Navigator.registerProtocolHandler
compat_features:
Expand Down
1 change: 1 addition & 0 deletions features/template-literals.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Template literals
description: Template literals are literals delimited with backtick (<code>`</code>) characters, allowing for multi-line strings, string interpolation with embedded expressions, and special constructs called tagged templates.
spec: https://tc39.es/ecma262/multipage/ecmascript-language-expressions.html#sec-template-literals
caniuse: template-literals
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We agree with caniuse on the fact that this is widely available, but caniuse has older versions than we do.
We might want to ignore this delta based on the fact that these are old versions anyway.

group: javascript
compat_features:
- javascript.grammar.template_literals
Expand Down
1 change: 1 addition & 0 deletions features/upgrade-insecure-requests.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Upgrade insecure requests
description: The `Upgrade-Insecure-Requests` HTTP request header tells the server that the response should redirect to a secure (HTTPS) resource.
spec: https://w3c.github.io/webappsec-upgrade-insecure-requests/
caniuse: upgradeinsecurerequests
group: security
compat_features:
- http.headers.Upgrade-Insecure-Requests
Expand Down
1 change: 1 addition & 0 deletions features/vibration.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: Vibration
description: The `navigator.vibrate()` method makes a tactile alert, if the device is equipped with a haptic motor.
spec: https://w3c.github.io/vibration/
caniuse: vibration
compat_features:
- api.Navigator.vibrate
2 changes: 2 additions & 0 deletions features/xml-serializer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
name: XMLSerializer
description: The `XMLSerializer` API provides the `serializeToString()` method to construct an XML string representing a DOM tree.
spec: https://w3c.github.io/DOM-Parsing/#the-xmlserializer-interface
# https://caniuse.com/xml-serializer is not linked because it covers all of
# DOMParser, XMLSerializer, innerHTML, outerHTML and insertAdjacentHTML.
group:
- parsing-and-serialization
- xml
Expand Down