Goals

This document summarizes technologies developed or under development in W3C or elsewhere, and that can be used to build a particular type of applications (e.g. media applications, games) or to promote a particular aspect of application development (e.g. security). The document is organized in pages that present specific features per deployment status and explain their relevance to the underlying theme. Tables at the end of sections summarize the standardization and implementation status of specifications that define features presented in the text.

Features are mostly presented in isolation with minimal text. This is on purpose to ease moving features around as they progress on the standardization front and get deployed in implementations.

Audience

This document is mainly targeted at developers of Web applications willing to understand the status of the Web platform for particular vertical needs (e.g. publishing) or on particular devices (e.g. mobiles). Device manufacturers may also find valuable information about features that their products should support.

This document answers questions such as:

  • Which technologies are available today across browsers?
  • Which technologies should be available tomorrow?
  • What are the features that being explored and that could lead to new technologies later on?
  • Are there technical gaps in a given field for which there are no active standardization work today?

Understanding tables

Tables at the end of sections summarize information about individual features. Columns displayed may depend on the table. Features of interest come with a name, one or more specifications (or individual features within specifications) that enable this feature, and details about each specification.

Maturity levels

The maturity of a feature refers to its standardization status.

Maturity Meaning
Editor's Draft Defined in an Editor's Draft, not yet published officially anywhere. Feature should not be considered stable and possible implementations can still change substantively before the feature stabilizes.
Working Draft Defined in a W3C Working Draft. Feature should not be considered stable and possible implementations can still change substantively before the feature stabilizes.
Candidate Recommendation Defined in a W3C Candidate Recommendation. Feature may be considered stable but could still change based on implementation experience. Implementations may not be fully interoperable.
Proposed Recommendation Defined in a W3C Proposed Recommendation. Feature is undergoing a final review by W3C Members. It is stable and existing implementations should be mostly interoperable.
Recommendation Defined in a W3C Recommendation. Feature is stable and existing implementations should be mostly interoperable.
Living Standard Defined in a WHATWG Living Standard. Stability and interoperability depend on the feature being considered and are usually noted in the specification itself.
Note Defined in a W3C Note. Publication as a Note either indicates that the feature is informational in nature (e.g. guidelines, techniques, best practices), or that work on the feature has been discontinued for some reason.
Retired Feature was part of a Web standard, but implementation and usage are no longer recommended for some reason (e.g. privacy concerns, security issues, better mechanism available).

Implementation info

For features that target Web browsers, the "Current implementations" and "Implementation intents" columns display known implementation status in main browsers. The information is structured per implementation status, which can be one of:

  • Shipped: the feature is supported in the browser and can be used right away.
  • Experimental: the feature is planned for an upcoming version of the browser, and can be tried out in nightly builds of the browser. The feature may also be behind a flag, or it may require the use of a prefix.
  • In development: the feature is being developed but is not yet available.
  • Under consideration: the feature is not yet in development but is being considered for a future version of the browser.

The tables may contain implementation information about the following browsers:

Icon Browser name
Main browser engines
Chrome Chrome
Edge Microsoft Edge
Firefox Firefox
Safari Safari
Based on the main browser engines
Baidu Browser Baidu Browser
Opera Opera
QQ Browser QQ Browser
Samsung Internet Samsung Internet
UC Browser UC Browser

Badges overlaid on top of browser icons convey additional implementation information:

Badge Meaning
Desktop only Implementation information applies to the desktop version of the browser.
Mobile only Implementation information applies to the mobile version of the browser.
Note that the implementation info only applies to mobile versions where the browser uses its own layout engine (e.g. "Firefox for Android", or "Safari for iOS"), not to mobile versions where the browser uses another layout engine (e.g. "Firefox for iOS"). In other words, given the implementation information available today, the mobile badge means "iOS" for Safari, and "Android" for all other browsers.
Desktop and mobile Implementation information applies both to the desktop and mobile versions of the browser.
Behind a flag Some flag needs to be set in order to enable the feature in the browser. That flag may be a preference flag that the user may set in parameters, a compile flag that must be set before compiling the browser, or a runtime flag that must be set before starting the browser.
Prefix required A prefix must be used to access the feature. For instance, in Firefox, this usually means adding something like a -moz- prefix for CSS properties and a moz prefix to API functions.
Partial implementation Implementation info is not complete and support may be partial.

On devices that support hovering, a tooltip that summarizes the implementation information is displayed when the user moves over a browser icon.

Under the hoods, the implementation information is being gathered from the following platform status sources:

Clicking on a browser icon in an implementation should take you to the right page on the platform status Web site that provided the implementation information.

The absence of implementation information for a given browser usually means that the feature is not supported at all, and that it is not being developed for now in that browser. However, it may also mean that the implementation information is not yet available. If you notice missing or incorrect implementation info, please create an issue on the GitHub repository of this document.

Change History

November 2019

The November 2019 snapshot adds a few new proposals being incubated in the Web Platform Incubator Community Group, some new deliverables from various W3C working groups, and refreshes the status of other specifications. Changes made since the April 2019 snapshot:

Exploratory work
Technologies in progress
  • Mention Web components in Device Adaptation
  • Mention the Scalable Video Coding (SVC) Extension for WebRTC in Media
  • Mention two WebXR modules in Media
  • Move CSS Animation Worklet API to technologies in progress in Performance and Tuning
  • Move specifications now in Media WG to technologies in progress in Media
Well-deployed technologies

The implementation info has also been updated to reflect known implementation status in November 2019. Some of these updates may have been triggered by updates to underlying platform status sites. Main updates are:

  • Resize Observer shipped in Firefox and Safari, see Device Adaptation
  • datalist element in HTML shipped on all main browsers, see Forms
  • StorageManager shipped in Firefox (desktop only), see Data Storage
  • MediaStream Recording shipped in Safari (desktop only), see Media
  • Picture-in-Picture shipped in Firefox (desktop only), see Media
  • Background Fetch shipped in Chrome, see Application Lifecycle
  • Web Authentication shipped in Safari (desktop only), see Security and Privacy
  • Credential Management shipped in Firefox (mobile only), see Security and Privacy

April 2019

The April 2019 snapshot introduces a few additional technologies under incubation in the Web Platform Incubator Community Group and refreshes the status of other specifications. Changes made since the December 2018 snapshot:

Exploratory work
Technologies in progress
Well-deployed technologies
Discontinued features

The implementation info has also been updated to reflect known implementation status in April 2019. Some of these updates may have been triggered by updates to underlying platform status sites. Main updates are:

December 2018

The December 2018 snapshot focuses on new incubation efforts recently started in the Web Platform Incubator Community Group (WICG) to close the gap with native. Changes made since the July 2018 snapshot:

Exploratory work
Technologies in progress
Well-deployed technologies
Discontinued features

The implementation info has also been updated to reflect known implementation status in December 2018. Some of these updates may have been triggered by updates to underlying platform status sites. Main updates are:

July 2018

Performance appears to be the main focus of standardization efforts in the past few months, with new exploratory work on mechanisms to optimize performance and/or tune the behavior of web browsers to fit applications needs. Most updates in the July 2018 snapshot affect Performance and Tuning as a result:

Exploratory work
Technologies in progress
Well-deployed technologies
Features not covered by on-going work

The implementation info rendered in tables now also embeds information from the MDN Browser Compatibility Data project. Implementation data for a given specification can also be described at the feature level. When the framework does not have enough implementation data to assess whether a given implementation supports all features in a specification, it renders a "partial" badge.

Colors of maturity icons have been updated to use green for evergreen/living standards, and grey for specifications that do not contain normative content (such as group notes and guidelines).

A few other enhancements were made to the underlying framework e.g. to allow authors to link to the Editor's Draft, set the maturity status of a spec, and create "See also" and "Milestones" columns in summary tables (this roadmap does not use these features for now). Please refer to the documentation for details.

April 2018

The April 2018 snapshot introduces a number of features that were missing from the January 2018 snapshot. Content-wise, the following changes were made:

Exploratory work
Technologies in progress
Well-deployed technologies
Discontinued features

The implementation info rendered in tables at the end of each section now embeds information about mobile browsers, and warns when a prefix is required or when a flag must be set to use a feature. Such features are also now consistently flagged as "Experimental" throughout the tables. Implementation information about additional browsers (Baidu, Opera, QQ, Samsung Internet, UC Web) can now be displayed from a dropdown menu. By default, tables will only display information about main browsers (Chrome, Microsoft Edge, Firefox, Safari), because this information is more up-to-date and reliable (information for other browsers may still be outdated or incorrect in some cases).

This version also features a series of User Interface improvements to improve the readability and accessibility of the pages.

Under the hoods, the roadmap framework has been almost entirely re-written to ease Roadmap authoring, and the publication of future snapshots. For instance, the extraction of information about W3C, WHATWG, and IETF specifications should now be automatic in most cases. Please refer to the documentation for details.

January 2018

The January 2018 snapshot is a major overhaul of the previous mobile roadmap, published until August 2015. Categories have remained vastly intact, but the new version comes with a new lightweight design, and the contents of the pages have been significantly updated to follow the evolution of the Web platform in the past few years.

The roadmap is published in English and Chinese.

Some content may still be missing or incomplete. Among other things, implementation information only targets desktop browsers and is known not to be perfectly correct.