Skip to content

Latest commit

 

History

History
410 lines (258 loc) · 21.1 KB

README.md

File metadata and controls

410 lines (258 loc) · 21.1 KB

Interop 2024

Interop 2024 is an effort to increase interoperability across browsers in key technical areas that are of high priority to web developers and end users. This 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).

The process we went through to arrive at our priority list for Interop 2024 is available in the proposal selection summary.

Similar to Interop 2022 and Interop 2023, 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 2024 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 for the Interop team to work on throughout the year.

Interop 2024 is tightly focused on technology that is already specified in web standards.

Dashboard

Our dashboard lives at wpt.fyi/interop-2024. It computes an interop score as the percentage of tests in WPT that pass in all three browser engines.

Focus areas

The following features were selected for Interop 2024.

Accessibility

This focus area comes from work on one of the Interop 2023 investigation areas. The work resulted in tests that mean we can include improving the interoperability of some specific areas relating to the browser’s accessibility tree.

The first area is Accessible Name and Description Computation (accname). Accessible names convey the purpose or intent of the element. This helps users understand what the element is for and how they can interact with it. The accname specification defines how browsers create this accessible name string for an element. The ARIA specification includes a walkthrough of how this name is calculated.

The second area is computed role. The computed role of an element is a string that represents the role of the element as computed by the browser engine. This is used primarily in developer tools and, for example, in the WebDriver function getComputedRole, enabling interoperability testing.

Lastly, there's a new set of tests covering display: contents.

Work covered as part of Interop 2024

During Interop 2024 the aim is to ensure all browsers create accessible names and computed roles in the same way.

Resources

CSS Nesting

The CSS nesting module defines a syntax for nesting selectors, providing the ability to nest one style rule inside another, with the selector of the child rule relative to the selector of the parent rule.

CSS nesting is different from CSS preprocessors such as Sass in that it is parsed by the browser rather than being pre-compiled by a CSS preprocessor.

CSS nesting helps with the readability, modularity, and maintainability of CSS stylesheets. It also potentially helps reduce the size of CSS files, thereby decreasing the amount of data downloaded by users.

Work covered as part of Interop 2024

While all engines support nesting, there are differences as implementations happened while the specification was evolving. The work here will ensure that all engines support nesting in the same way, and implement all features of the spec.

Resources

Custom Properties

This focus area includes the @property at-rule. This rule lets you define a custom property, including type checking and initial value.

Work covered as part of Interop 2024

This focus area was included in Interop 2023, work this year is to make it fully interoperable.

Resources

Declarative Shadow DOM

Declarative Shadow DOM is a declarative API that allows the creation of shadow roots using only HTML and no JavaScript. This API allows Web Components that use Shadow DOM to make use of Server-Side Rendering (SSR), to get rendered content on screen quickly without requiring JavaScript for shadow root attachment.

Work covered as part of Interop 2024

Declarative Shadow DOM is already supported by Chrome, Safari, and Firefox. The work will ensure that any differences in implementation are resolved.

Resources

font-size-adjust

The font-size-adjust CSS property provides a way to modify the size of lowercase letters relative to the size of uppercase letters, which defines the overall font-size. This property is useful for situations where font fallback can occur.

Work covered as part of Interop 2024

The work includes basic support for the font-size-adjust property, support for the from-font keyword, and support for the two value syntax (which allows the developer to size according to another metric, not just x-height). Firefox and Safari have support for basic, from-font and two value. The Chrome implementation needs updating.

Resources

HTTP(S) URLs for WebSocket

The WebSocket constructor originally required ws: and wss: URLs, preventing the use of relative URLs and resulting workaround code.

The specification has been updated to allow http(s) schemes, and therefore relative URLs. These are normalized to ws: and wss:.

Work covered as part of Interop 2024

The change to the specification has already been implemented in Safari, in Interop 2024 the aim is to land implementations in the other browsers.

Resources

IndexedDB

IndexedDB is a way to persistently store data inside a user's browser. It lets authors create web applications with rich query abilities regardless of network availability, so applications can work both online and offline.

Work covered as part of Interop 2024

All engines have good support for version 2 IndexedDB functionality, however there are a number of inconsistencies with newer features (version 3), and it is these that Interop 2024 seeks to address.

The work this year does not include storage buckets.

Resources

Layout

This focus area covers layout methods included in Interop 2023 — flexbox, grid, and subgrid.

Work covered as part of Interop 2024

During Interop 24 remaining test failures for these areas will be addressed.

Resources

Pointer and mouse events

Pointer events are DOM events that are fired for a pointing device. They 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).

In Interop 2022, pointer and mouse events were one of the investigation areas. This led to the inclusion of pointer and mouse events as a focus area in 2023. These work included pointer and mouse interaction with pages, including how they behave with hit testing and scrolling areas.

Work covered as part of Interop 2024

Includes tests that were not addressed during Interop 2023, and some new tests. The work does not include touch or pen input.

Resources

Popover

The Popover API provides developers with a standard, consistent, flexible mechanism for displaying popover content on top of other page content. Popover content can be controlled either declaratively using HTML attributes, or via JavaScript.

Work covered as part of Interop 2024

The Popover API is implemented in Chrome and Safari, with the Firefox implementation due to ship. The work for Interop 2024 is to fix failing tests to ensure interoperable implementations. Work in this area does not include close watcher, hints, the anchor attribute, or the overlay property.

Resources

Relative Color Syntax

The CSS Relative Color syntax allows a color to be defined relative to another color, using the from keyword and optionally calc() for any of the color values.

Work covered as part of Interop 24

Relative color syntax is interoperable, however implementations don’t include the currentcolor keyword, the work during Interop 2024 will implement this keyword interoperably.

Resources

HTMLVideoElement.requestVideoFrameCallback()

The requestVideoFrameCallback() method of the HTMLVideoElement API lets you register a callback that runs in the rendering steps when a new video frame is sent to the compositor. This enables efficient per-video-frame operations on video, such as video processing and painting to a canvas, video analysis, or synchronization with external audio sources.

Work covered as part of Interop 24

The work involves implementing the method in Firefox, and fixing bugs in the Chrome and Safari implementations.

Resources

Scrollbar styling

The scrollbar-width property lets you set the maximum thickness of an element's scrollbars when they are shown. The scrollbar-gutter property provides a way to reserve space for the scrollbar, to prevent layout shifts as a scrollbar appears or disappears.

Work covered as part of Interop 2024

These properties are not currently implemented in all browsers, so the work this year is to make the properties interoperable.

Resources

@starting-style and transition-behavior

This focus area includes work on the @starting-style CSS rule. This rule is used to define starting values for properties set on an element that you want to transition from when the element receives its first style update, when first displayed on a previously loaded page.

Also included is the transition-behavior property which specifies whether transitions will be started for properties whose animation behavior is discrete.

Work covered as part of Interop 2024

These properties are currently implemented in Chrome and Edge, the aim is to make them interoperable across all browsers this year.

Resources

Text directionality

The :dir() CSS pseudo-class selector matches elements based on directionality, which is determined based on the HTML dir attribute. :dir(ltr) matches left-to-right text directionality, and :dir(rtl) matches elements with right-to-left text directionality. It is not equivalent to [dir] attribute selectors because it matches against directions inherited from an ancestor with the dir attribute, and because it matches against the direction computed from use of `dir=auto (which determines directionality from the first character in the text with strong directionality).

Work covered as part of Interop 2024

The :dir() pseudo-class was included in Interop 2023 as part of the pseudo-classes focus area. The work resulted in the need for some specification improvements, which have now been made. The work this year will ensure interoperability of :dir() and dir=auto, based on these improvements.

Resources

text-wrap: balance

The balance value of text-wrap lets the browser know that you would like it to balance the lines of text. It's typically used in headings or other short text sections to avoid typographic widows.

Work covered as part of Interop 2024

Currently, browsers differ in their support for the various longhand and shorthand versions of this property. The work this year aims to make these interoperable.

The focus area does not include tests for interactions with float and line-clamp.

Resources

URL

URLs are a fundamental part of the web platform, however as part of the early web they were under-specified leading to various interoperability problems with URL parsing.

Work covered as part of Interop 2024

URL was an Interop 2023 focus area, work will continue during Interop 2024 to fix remaining test failures.

Resources

Investigation Efforts

An investigation efforts consists of a set of tasks that will bring the feature up to the bar required for a Focus Area in the future. If this involves any standards work, that work must be done in the appropriate standards group, and those doing the work need to join that group.

The following investigation areas were selected for Interop 2023.

Accessibility Testing

Carried over from 2023, this investigation area involves working towards generating consistent accessibility trees from the same DOM and CSS.

Mobile Testing

Carried over from 2023, this investigation area involves doing the infrastructure work required to allow WPT Interop to accept future Interop proposals that test mobile-specific functionality which can't be scored using the current desktop-only wpt CI.

WebAssembly Testing

A new investigation area for 2024.

Join the conversation

You're also welcome to join the conversation in the #interop20xx:matrix.org Matrix channel!