Web platform features explorer

📃 September 2025 release notes

Newly available

The following features are newly available:

  • content-visibility: The content-visibility CSS property delays rendering an element, including layout and painting, until it is needed.
  • ::details-content: The ::details-content pseudo-element selects the expandable content of a <details> element, excluding the <summary>.
  • <link rel="dns-prefetch">: The rel="dns-prefetch" attribute for the <link> HTML element is a hint to the browser that the page or user is likely to request resources from another domain, so the browser should preemptively resolve DNS for the href value's domain.
  • Unsanitized HTML parsing methods: The Document.parseHTMLUnsafe() static method parses HTML into a DOM tree, while the setHTMLUnsafe() method of Element and ShadowRoot parses and inserts HTML into an existing tree. No sanitization applies to these methods, so never call them with user-provided HTML strings.
  • Uint8Array base64 and hex conversion: The Uint8Array object methods fromBase64(), toBase64(), and setFromBase64() convert to and from base64 strings. The fromHex(), toHex(), and setFromHex() methods convert to and from hex strings.
  • URLPattern: The URLPattern API creates patterns that can be matched against URLs or URL components.

Widely available

The following features are now widely available:

  • Constructed stylesheets: The CSSStyleSheet constructor creates a new stylesheet which can be shared between a document and multiple shadow roots using adoptedStyleSheets.
  • font-synthesis-small-caps: The font-synthesis-small-caps CSS property sets whether or not the browser should synthesize small caps typefaces when they're missing from the font.
  • font-synthesis-style: The font-synthesis-style CSS property sets whether or not the browser should synthesize italic and oblique typefaces when they're missing from the font.
  • font-synthesis-weight: The font-synthesis-weight CSS property sets whether or not the browser should synthesize bold typefaces when they're missing from the font.
  • font-variant-alternates: The font-variant-alternates CSS property, along with the @font-feature-values at-rule, chooses when to use a font's alternate glyphs.
  • Form-associated custom elements: Custom elements may act like built-in form elements, via the the attachInternals() method of HTMLElement and the ElementInternals API.
  • Import maps: A <script type="importmap"> HTML element provides an import map as a JSON string. An import map controls how the browser should resolve module specifiers when importing JavaScript modules.
  • Media query range syntax: The range syntax of CSS media queries allows you to use mathematical comparison operators such as <, >, <=, and >= to define a range of values for a media query. For example, (400px < width < 1000px) returns true if the viewport width is between 400px and 1000px.
  • messageerror: The messageerror event fires on a target, such as a window or worker, when an incoming message cannot be deserialized. This event can fire for many types of messages, such as cross-document messages or broadcast channel messages.
  • Notifications from service workers and installed apps: Notifications via service worker registration's showNotification() method, sent from installed web applications (for example, saved to the Home Screen on Safari for iOS), show a message to the user, typically using the notification system of the host operating system.
  • Offscreen canvas: The OffscreenCanvas API provides a canvas that can be drawn to off screen, with no dependencies on the DOM, which can be used to run heavy rendering operations inside a worker context.
  • Origin private file system: The navigator.storage.getDirectory() method returns a FileSystemDirectoryHandle that is restricted to a specific origin and invisible to the user's actual file system for faster file-based applications, such as SQLite databases.
  • outline: The outline CSS shorthand sets the color, style, and width of a line around an element, outside of the border.
  • pdfViewerEnabled: 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.
  • Push messages: The Push API subscribes to and receives server-initiated messages. Subscribers receive pushed messages in the background, even after periods inactive or offline.
  • requestAnimationFrame() in workers: The requestAnimationFrame() method in workers schedules a function that runs before the next repaint. Together with offscreen canvas, you can animate content from a worker.
  • Resource size: The decodedBodySize, encodedBodySize, and transferSize properties of the PerformanceResourceTiming API reports the size of resources loaded.
  • Screen orientation: The screen.orientation API gets information about the orientation of the viewport, such as landscape or portrait. With this API, you can adapt an application's layout or behavior in response to changes in orientation.
  • Server timing: The serverTiming property of the PerformanceResourceTiming API contains server timing information about network requests.
  • Imperative slot assignment: The assign() method for <slot> elements assigns nodes to the slot, as an alternative to using the slot and name HTML attributes. The nodes must be children of a shadow host and the shadow root must be created with the slotAssignment set to "manual". Also known as manual slot assignment.
  • translate: The translate HTML attribute marks whether an element's text should be translated.
  • sin(), cos(), tan(), asin(), acos(), atan(), and atan2() (CSS): The sin(), cos(), tan(), asin(), acos(), atan(), and atan2() CSS functions compute various trigonometric functions.
  • Fixed-width SIMD (WebAssembly): 128-bit SIMD (Single Instruction Multiple Data) performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions.

New in Chrome

The following features are now available in Chrome:

  • IndexedDB getAllRecords(): The getAllRecords() method of IDBObjectStore and IDBIndex return records and their primary keys from an IndexedDB store or index. The records can be read in batches and in reverse order. The getAllRecords() methods speed up read operations on large datasets.
  • Custom highlights from point: The CSS.highlights.highlightsFromPoint() method returns an array of Highlight objects at a specified point.
  • WebRTC encoded transform: The WebRTC encoded transform API allows you to modify audio and video streams in WebRTC connections. For example, it can be used for visual effects or custom codecs.

New in Chrome Android

The following features are now available in Chrome Android:

  • IndexedDB getAllRecords(): The getAllRecords() method of IDBObjectStore and IDBIndex return records and their primary keys from an IndexedDB store or index. The records can be read in batches and in reverse order. The getAllRecords() methods speed up read operations on large datasets.
  • Custom highlights from point: The CSS.highlights.highlightsFromPoint() method returns an array of Highlight objects at a specified point.
  • WebRTC encoded transform: The WebRTC encoded transform API allows you to modify audio and video streams in WebRTC connections. For example, it can be used for visual effects or custom codecs.

New in Edge

The following features are now available in Edge:

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.
  • contrast-color(): The contrast-color() CSS function picks a color that has guaranteed contrast against a specified foreground or background color.
  • Scoped custom element registries: The CustomElementRegistry() constructor creates a new custom element registry that's separate from the global window.customElements registry. Creating more than one registry is useful for multiple custom elements that have the same tag name to coexist.
  • Scroll-driven animations: The animation-timeline, scroll-timeline, and view-timeline CSS properties advance animations based on the user's scroll position.
  • text-wrap: pretty: The text-wrap: pretty CSS declaration prioritizes better layout over speed when text is broken into multiple lines.
  • text-wrap-style: The text-wrap-style CSS property sets how lines break in text that overflows the container. It can also be set with the text-wrap shorthand.
  • Trusted types: Trusted types allow you to lock down insecure parts of the DOM API and prevent client-side cross-site scripting (XSS) attacks.
  • Web authentication signal methods: The signalUnknownCredential(), signalAllAcceptedCredentials(), and signalCurrentUserDetails() methods of PublicKeyCredential inform authenticators of the state of public key credentials, so that incorrect or revoked credentials may be updated, removed, or hidden.
  • WebCodecs: The WebCodecs API provides low-level access to individual video frames and chunks of audio samples, for full control over the way media is processed.
  • WebGPU: The navigator.gpu API performs operations such as rendering and computation on dedicated graphics hardware (also known as a Graphics Processing Unit).

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.
  • contrast-color(): The contrast-color() CSS function picks a color that has guaranteed contrast against a specified foreground or background color.
  • Scoped custom element registries: The CustomElementRegistry() constructor creates a new custom element registry that's separate from the global window.customElements registry. Creating more than one registry is useful for multiple custom elements that have the same tag name to coexist.
  • Scroll-driven animations: The animation-timeline, scroll-timeline, and view-timeline CSS properties advance animations based on the user's scroll position.
  • text-wrap: pretty: The text-wrap: pretty CSS declaration prioritizes better layout over speed when text is broken into multiple lines.
  • text-wrap-style: The text-wrap-style CSS property sets how lines break in text that overflows the container. It can also be set with the text-wrap shorthand.
  • Trusted types: Trusted types allow you to lock down insecure parts of the DOM API and prevent client-side cross-site scripting (XSS) attacks.
  • Web authentication signal methods: The signalUnknownCredential(), signalAllAcceptedCredentials(), and signalCurrentUserDetails() methods of PublicKeyCredential inform authenticators of the state of public key credentials, so that incorrect or revoked credentials may be updated, removed, or hidden.
  • WebCodecs: The WebCodecs API provides low-level access to individual video frames and chunks of audio samples, for full control over the way media is processed.
  • WebGPU: The navigator.gpu API performs operations such as rendering and computation on dedicated graphics hardware (also known as a Graphics Processing Unit).