Web features explorer

📅 September 2026 release notes

Newly available

The following features are newly available:

  • alpha(): The alpha() CSS function computes a relative color value by adjusting the opacity of an origin color.
  • Asynchronously iterable streams: Asynchronous iteration of a stream allows you to use for await … of loops to iterate through a stream's incoming data.
  • autocorrect: The autocorrect global HTML attribute controls whether to automatically correct spelling or punctuation errors for user input.
  • light-dark() image values: The light-dark() CSS function accepts, in addition to colors, two <image> values, such as a gradient or URL, and uses one depending on the current color scheme.
  • overflow-anchor: The overflow-anchor CSS property sets an element as a possible scroll anchor, reducing unintended scrolling when document changes occur above the current scrollport. This is enabled by default where supported.
  • progress(): The progress() CSS function returns a ratio for the relative position of one value between two other values, clamped between 0 and 1. You can use it to interpolate a value for other calculations.
  • Top-level await: The await keyword, when used at the top level of a module (outside of an async function), delays parent module execution until after a promise fulfills.
  • JavaScript promise integration (WebAssembly): The JavaScript promise integration (JSPI) suspends a WebAssembly module when it calls a JavaScript method that returns a promise. The module resumes when the promise is resolved. You can use this to call asynchronous Web APIs from synchronous WebAssembly.

Widely available

The following features are now widely available:

  • Array grouping: The Object.groupBy() and Map.groupBy() static methods group values of arrays and iterables based on a function that returns a key for each value.
  • checkVisibility(): The checkVisibility() method checks if an element is potentially visible, with optional parameters for the kinds of visibility to check. For example, it checks whether the element has the style display: none, but can also check for visibility: hidden.
  • Promise.withResolvers(): The Promise.withResolvers() static method is an alternative to the Promise() constructor that returns both the promise and resolution functions. You can use this to access resolve and reject outside the scope of the executor function.
  • Transferable ArrayBuffer: The transfer() and transferToFixedLength() methods of ArrayBuffer move a buffer from one context to another (for example, to a worker).
  • Extended constant expressions (WebAssembly): The i32.add, i32.sub, i32.mul, i64.add, i64.sub, and i64.mul operations extend constant expressions to include arithmetic.

New in Chrome

The following features are now available in Chrome:

  • Iterator join(): The join() method of an Iterator object returns a string concatenation of all the iterator's items, separated by commas or a given separator string. It's similar to the join() method of arrays.

New in Chrome Android

The following features are now available in Chrome Android:

  • Iterator join(): The join() method of an Iterator object returns a string concatenation of all the iterator's items, separated by commas or a given separator string. It's similar to the join() method of arrays.

New in Edge

The following features are now available in Edge:

  • Iterator join(): The join() method of an Iterator object returns a string concatenation of all the iterator's items, separated by commas or a given separator string. It's similar to the join() method of arrays.

New in Firefox

The following features are now available in Firefox:

  • attr(): The attr() CSS function, in the context of any property, returns the value of an attribute of an HTML element, with the option to return it as a specific type or unit. You can set a default value for missing or invalid attributes.

New in Firefox for Android

The following features are now available in Firefox for Android:

  • attr(): The attr() CSS function, in the context of any property, returns the value of an attribute of an HTML element, with the option to return it as a specific type or unit. You can set a default value for missing or invalid attributes.

New in Safari

The following features are now available in Safari:

  • Anchor positioning: Anchor positioning places an element based on the position of another element. For example, you can place a tooltip next to the content it references.
  • ariaNotify(): The ariaNotify() method of Element and Document requests assistive technology software, if activated, to announce a message to the user. This can help make dynamic content changes more accessible to users.
  • Customizable <select>: The <select> element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.
  • ReadableStream.from(): The ReadableStream.from() static method converts an iterable or async iterable object, such as an array or async generator function, into a readable stream.
  • Service workers static routing: The service worker install event's addRoutes method declares resource paths that should either be fetched from the network or the cache, to bypass the service worker and improve performance.
  • stretch: The stretch CSS keyword expands a box as needed to fit its contents until the maximum size is reached, without preserving the content's preferred aspect ratio.
  • text-autospace: The text-autospace CSS property sets whether and how to insert spaces in inter-script text (such as when mixing Latin and Chinese characters) and around punctuation.
  • WebOTP: The OTPCredential API represents a one-time-password (OTP).

New in Safari on iOS

The following features are now available in Safari on iOS:

  • Anchor positioning: Anchor positioning places an element based on the position of another element. For example, you can place a tooltip next to the content it references.
  • ariaNotify(): The ariaNotify() method of Element and Document requests assistive technology software, if activated, to announce a message to the user. This can help make dynamic content changes more accessible to users.
  • Customizable <select>: The <select> element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS.
  • ReadableStream.from(): The ReadableStream.from() static method converts an iterable or async iterable object, such as an array or async generator function, into a readable stream.
  • Service workers static routing: The service worker install event's addRoutes method declares resource paths that should either be fetched from the network or the cache, to bypass the service worker and improve performance.
  • stretch: The stretch CSS keyword expands a box as needed to fit its contents until the maximum size is reached, without preserving the content's preferred aspect ratio.
  • text-autospace: The text-autospace CSS property sets whether and how to insert spaces in inter-script text (such as when mixing Latin and Chinese characters) and around punctuation.
  • WebOTP: The OTPCredential API represents a one-time-password (OTP).