Interop 2025 is an effort to increase the interoperability of key features of the web platform across browsers. These features, which are of high priority to web developers and end users, have been proposed by the web development community, and have been selected by the Interop Project team (to learn more, see Interop 2025 proposal selection process).
The Interop 2025 effort is part of the web-platform-tests (WPT) project — an automated test suite for web standards — and run by a team of representatives from companies that make substantial contributions to browser rendering engines (including Apple, Bocoup, Google, Igalia, Microsoft, and Mozilla).
Similar to previous years (2022, 2023, and 2024), the tests we selected will be continuously run on automated testing infrastructure. The test pass rates for each browser rendering engine will be displayed on the Interop 2025 dashboard — displaying the percentage of passing tests in each chosen area, and an overall total score of tests that pass in every browser. The dashboard will also display scores for group progress on particular investigation efforts selected by the Interop team to work on throughout the year.
Interop 2025 is focused on technology that is already specified in web standards.
CSS anchor positioning sets an element's position and size based on the position and size of another element. For example, you can use anchor positioning to place a tooltip next to the content it references, in a way that avoids overflows or offscreen rendering.
Resources:
The backdrop-filter
CSS property applies graphical effects such as blurring or color shifting to the area that's behind an element.
Resources:
- Focus area proposal
- Tests
- Spec
- backdrop-filter, on MDN
Web Vitals is an initiative to provide unified guidance for quality signals that are essential to delivering a great user experience on the web. The Core Web Vitals metrics are the subset of Web Vitals that apply to all web pages and that each represents a distinct facet of the user experience. This year, the work will focus on implementing the Largest Contentful Paint (LCP) and Interaction to Next Paint (INP) metrics across browsers. The Cumulative Layout Shift (CLS) metric is not in scope.
Resources:
The <details>
element is a disclosure widget which can be expanded to reveal additional content. When closed, only the nested <summary>
element is visible.
This year, the work will focus on making recent additions to the <details>
element work across all browsers, including:
- The
::marker
and::details-content
CSS pseudo-elements. - Using
content-visibility
to toggle the content instead of display. - Auto-expanding the
<details>
element with find-in-page matches.
In addition, this focus area also includes the hidden="until-found"
attribute, which hides an element until it is found using the browser's find-in-page search or it is directly navigated to by following a URL fragment.
Resources:
- Focus area proposal for
<details>/<summary>
rendering - Focus area proposal for
hidden=until-found
- Tests
- Specs: details element, hidden attribute
<details>
: The Details disclosure element, on MDN- ::marker, on MDN
- ::details-content, on MDN
- The hidden until found state, on MDN
This focus area is a carry over from Interop 2024. See last year's layout focus area description. This year, the work will focus on continuing to improve the interoperability of Grid and Flexbox in CSS, as these are important primitives.
Resources:
The JavaScript import statement can load JavaScript modules. In addition, when used with the type
attribute, it can load CSS modules or JSON data. For example, import … with { type: "json" }
loads JSON data (also known as JSON module scripts).
This year, the work will focus on importing JSON module scripts.
Resources:
- Focus area proposal for JSON module scripts
- Focus area proposal for import attributes
- Tests
- Spec
- import, on MDN
- import attributes, on MDN
The Navigation API makes it easier for applications to manage meaningful user state changes within the application. The API initiates, intercepts, or modifies browser navigation actions.
Resources:
- Focus area proposal
- Tests
- Spec
- Navigation API, on MDN
Pointer and mouse events are DOM events that are fired due to the user interacting with a pointing device. Pointer events are designed to create a single DOM event model to handle pointing input devices such as a mouse, pen/stylus or touch (such as one or more fingers). This focus area is a carry over from Interop 2024. See last year's focus area description.
Resources:
- Focus area proposal
- Tests
- Spec
- Pointer events, on MDN
- MouseEvent, on MDN
The legacy mutation events like DOMSubtreeModified
, DOMNodeInserted
, or DOMNodeRemoved
watch for changes to the DOM and run an event listener callback when DOM changes occur. These mutation events were deprecated in favor of the MutationObserver API, which is more performant and less error-prone.
The goal this year is to fully remove support for mutation events in all browsers.
Resources:
- Focus area proposal
- Tests
- MutationEvent, on MDN
- MutationObserver, on MDN
The @scope
CSS at-rule selects the DOM subtree within which a group of CSS rules apply.
Resources:
- Focus area proposal
- Tests
- Spec
- @scope, on MDN
The scrollend
event fires when an element or document has finished scrolling.
Resources:
The document.requestStorageAccess()
method allows content in iframes to request storing and reading cookies and other site data, while the document.hasStorageAccess()
method checks if such access is granted. The Storage Access API makes it possible to remove third-party cookies while supporting authenticated embedding.
Storage access headers are out of scope for this focus area.
Resources:
The text-decoration
CSS property sets the style and color of decorative lines including underline, overline, line-through, or a combination of lines.
This year, the goal is to remove the need for a vendor prefix when using the text-decoration
CSS property, and to make it interoperable across all browsers.
Resources:
- Focus area proposal
- Tests
- Spec
- text-decoration, on MDN
The URLPattern API creates patterns that can be matched against URLs or URL components.
Resources:
- Focus area proposal
- Tests
- Spec
- URL Pattern API, on MDN
View transitions allow you to create animated visual transitions between different states of a document.
This year, the work will focus on making same-document view transitions interoperable and on implementing the view-transition-class
CSS property.
Resources:
- Focus are proposal for same-document view transitions
- Focus area proposal for view transition classes
- Tests
- Spec
- View Transition API, on MDN
The WebAssembly API lets you load WebAssembly code (also known as Wasm), a portable binary instruction format. This year, the work will focus on the following features:
- JS string builtins: to make the WebAssembly builtin string functions mirror a subset of the JavaScript String API so it can be callable without JavaScript glue code.
- Resizable buffers integration: to integrate WebAssembly into JS code that uses resizable buffers.
Resources:
- Focus area proposal for JS string builtins
- Focus area proposal for resizable buffer integration
- Tests
- Spec
- WebAssembly, on MDN
Web compatibility refers to whether a website works as intended in a particular browser version.
The tests in this focus area were selected based on evidence that differences between browsers have caused real-world problems for web developers or end users. This year, the work will focus on web compatibility issues with CSS properties like appearance
, zoom
, list-style-position
, and overscroll-behavior
, as well as CSP, PerformanceObserver, and document.caretPositionFromPoint
.
Resources:
- Focus area proposal for
appearance
- Focus area proposal for
zoom
- Focus area proposal for Error events when a worker is blocked via CSP
- Focus area proposal for
Performance.observe
with bothentryTypes
andbuffered
- Focus area proposal for
list-style-position
on bare<li>
elements - Focus area proposal for
overscroll-behavior
on the root scroller - Focus area proposal for
document.caretPositionFromPoint()
- Tests
- appearance, on MDN
- zoom, on MDN
- Content Security Policy (CSP), on MDN
- PerformanceObserver: observe() method, on MDN
- list-style-position, on MDN
- overscroll-behavior, on MDN
- Document: caretPositionFromPoint() method, on MDN
The WebRTC API establishes real-time communication channels directly between browsers. It is commonly used in video conferencing applications. This year, the work will focus on the following features:
RTCRtpScriptTransform
, which allows scripts to modify the media stream, and which is commonly used to implement end-to-end encryption in WebRTC applications.- Make
RTCDataChannels
transferable to workers to enable off-main-thread processing of data.
Resources:
- Focus area proposal for RTCRtpScriptTransform
- Focus area proposal for transferable RTCDataChannels
- Tests
- Spec
- WebRTC API, on MDN
The writing-mode
CSS property sets whether text is laid out horizontally or vertically, and left to right, or right to left. In addition, logical CSS properties, such as overflow-inline
and overflow-block
make it possible to control what happens when content overflows boxes, regardless of the writing mode.
The goal is to add support for the sideways-lr
and sideways-rl
values of the writing-mode
property, as well as the overflow-inline
and overflow-block
properties.
Resources:
- Focus area proposal for writing-mode
- Focus area proposal for overflow-inline/block
- Tests
- Spec
- writing-mode, on MDN
- overflow-inline, on MDN
- overflow-block, on MDN
In addition to the above focus areas, Interop 2025 also commits to making progress on the following investigation efforts. Each investigation effort below consists of a set of tasks that will bring the corresponding feature up to the bar that's required for it to possibly become a focus area in the future.
This is a continuation of last year's accessibility testing investigation. The goal is to work towards generating consistent accessibility trees from the same DOM and CSS and to investigate the testing infrastructure that's still needed for Interop.
Resources:
The goal is to investigate improving testability of the Gamepad API.
Resources:
This is a continuation of last year's mobile testing investigation. It involves doing the infrastructure work that's required for WPT tests to run correctly on mobile devices, and therefore for future iterations of the Interop project to accept proposals that are mobile-specific.
Resources:
- Focus area proposal for Viewport meta element: interactive-widget property
- Focus area proposal for Layout Viewport and Viewport-Relative Lengths
- Focus area proposal for Mobile Testing Results for Interop/WPT
Privacy is an essential feature of the web platform. The goal is to investigate the tests that should be written to better cover the privacy-related features of the platform, and write those tests.
Resources:
WebVTT is a captions and subtitles format. WebVTT files are loaded using the <track>
element, and the VTTCue API can be used to create or update cues dynamically. The goal of this investigation effort is to ??? MISSING.
Resources: