Interop 2025: A new round of cross-browser fixes for the web platform
Following the success of last year's project, the Interop 2025 initiative is now underway. The new set of focus areas spans CSS, performance-related APIs, and several other parts of the platform. While not every suggestion made it into the final list, the selected areas represent a broad push to resolve interoperability bugs and make more features Baseline Newly available across browsers.
You can track progress on the Interop 2025 dashboard at wpt.fyi/interop-2025, and features that reach Baseline Newly available status will appear in the Baseline 2025 list on webstatus.dev.
The 2025 focus areas
- Anchor positioning
backdrop-filter- Core Web Vitals
<details>element- Layout
- Modules
- Navigation API
- Pointer and mouse events
- Remove mutation events
@scopescrollendevent- Storage Access API
text-decorationURLPattern- View Transition API
- WebAssembly
- Web compat
- WebRTC
- Writing modes
As in previous years, there's also a set of investigation areas where the group isn't ready to commit to tests yet, but wants to do groundwork so these topics can become focus areas in the future:
- Accessibility testing
- Gamepad API testing
- Mobile testing
- Privacy testing
- WebVTT
CSS and UI features
Several of this year's areas address features that developers flagged as important in the State of CSS 2024 survey. These are changes aimed at making it easier to build polished user interfaces without workarounds.
Anchor positioning
CSS anchor positioning lets you pin a positioned element relative to another element on the page, which is particularly useful for popovers and similar UI components. Making this feature fully interoperable should reduce the need for third-party libraries when building anchored interfaces.
See the anchor positioning documentation on Chrome for Developers and the CSS Anchor positioning section on MDN for details.
Same-document view transitions
Interop 2025 covers same-document view transitions and the view-transition-class CSS property. These features make it possible to animate between states in single-page applications with declarative CSS, without needing JavaScript animation libraries.
Learn more in the guide to same-document view transitions for single-page applications and the MDN documentation for the View Transition API.
The backdrop-filter property
The backdrop-filter property has been Baseline Newly available since September 2024. It applies graphical effects—like blurring—to the area behind an element. Although the property is broadly supported, the test results show bugs and issues in current implementations. These issues don't affect every usage, but they've been a recurring problem for developers, so the project aims to get this feature working properly in all browsers.
The <details> element
The <details> disclosure element itself is Baseline Widely available, but a number of related enhancements have come along more recently and are part of this year's work:
- The
::markerand::details-contentCSS pseudo-elements. - Using
content-visibilityto toggle content instead ofdisplay. - Auto-expanding the
<details>element when there are find-in-page matches. - The
hidden="until-found"attribute, which keeps an element hidden until it's located by the browser's find-in-page search or reached via a URL fragment.
The CSS @scope at-rule
The @scope at-rule lets you write selectors that are limited to a sub-tree of the DOM. You can also define both an upper and a lower boundary, so a selector only matches elements between the two. For example, the following CSS only matches <img> elements inside an element with a class of .card:
@scope (.card) {
img {
border-color: green;
}
}
When you add a lower boundary, the image is only matched when it's between the .card element and outside of a .card__content element:
@scope (.card) to (.card__content) {
img {
border-color: green;
}
}
For more examples, see the guide to limiting the reach of your selectors with the CSS @scope at-rule and the @scope documentation on MDN.
The scrollend event
Before the scrollend event existed, there was no dependable way to know when a scroll gesture truly finished, the typical workaround being a setTimeout() check that really only detected a pause:
document.onscroll = event => {
clearTimeout(window.scrollEndTimer)
window.scrollEndTimer = setTimeout(callback, 100)
}
With the scrollend event, the browser handles that evaluation:
document.onscrollend = event => {
// ...
}
The text-decoration property
The text-decoration shorthand covers text-decoration-line, text-decoration-color, text-decoration-style, and text-decoration-thickness. Though it's counted as Baseline Widely available, Safari only supports the unprefixed shorthand for text-decoration-line. Closing that gap is on the agenda for 2025.
Writing modes
The CSS writing-mode property includes values for vertical text layout, which are mostly intended for scripts that display vertically. But the sideways-lr and sideways-rl values are also useful for vertical typography as a design choice, independent of language support, and they've had patchy browser support. That's slated for correction this year.
The logical properties overflow-inline and overflow-block are also included in this area. They allow control over content overflow in boxes regardless of the writing mode in use.
Core Web Vitals
The Core Web Vitals work for 2025 covers Largest Contentful Paint (LCP) and Interaction to Next Paint (INP). The goal is to make the underlying APIs—the LargestContentfulPaint API and the Event Timing API—consistent across browsers. Cumulative Layout Shift (CLS) is not part of this year's scope.
WebAssembly
The WebAssembly work in 2025 targets two specific areas:
- JavaScript string builtins, so WebAssembly's built-in string functions mirror a subset of the JavaScript
StringAPI and can be called without JavaScript glue code. - Resizable buffers integration, to make WebAssembly interoperate smoothly with JavaScript code that uses resizable buffers.
Removing a legacy API
Interop 2025 also includes a removal from the platform: Mutation events. These deprecated events are superseded by the significantly more performant Mutation Observer API, which is Baseline Widely available. Chrome already removed mutation events in Chrome 126; this focus area aims to complete the removal across all other browsers.
For the background on why these events are being removed, see Mutation events will be removed from Chrome.
Further reading
The full list of features and their descriptions is available in the project README. The other organizations contributing to Interop 2025 have also published their own announcements.



