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 |
---|---|
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. | |
Defined in a W3C Working Draft. Feature should not be considered stable and possible implementations can still change substantively before the feature stabilizes. | |
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. | |
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. | |
Defined in a W3C Recommendation. Feature is stable and existing implementations should be mostly interoperable. | |
Defined in a WHATWG Living Standard. Stability and interoperability depend on the feature being considered and are usually noted in the specification itself. | |
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. | |
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 | |
Microsoft Edge | |
Firefox | |
Safari | |
Based on the main browser engines | |
Baidu Browser | |
Opera | |
QQ Browser | |
Samsung Internet | |
UC Browser |
Badges overlaid on top of browser icons convey additional implementation information:
Badge | Meaning |
---|---|
Implementation information applies to the desktop version of the browser. | |
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. |
|
Implementation information applies both to the desktop and mobile versions of the browser. | |
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. | |
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. |
|
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:
- Can I Use?
- Chrome Platform Status
- MDN Browser Compatibility Data
- Microsoft Edge web platform features status and roadmap
- WebKit Feature Status
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
- Mention WebGPU in Graphics and Layout
- Mention WebTransport in Network and Communications
- Mention WebCodecs in Media
- Mention
isInputPending
in Performance and Tuning and User Interaction - Mention the
<virtual-scroller>
proposal in Performance and Tuning - Mention Input for workers and worklets in User Interaction
- Mention Audio Device Client in Media
- Mention new performance metric interfaces in Performance and Tuning
- 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
- Move CSS Containment Module Level 1 to well-deployed technologies in Performance and Tuning
- Move WebAssembly to well-deployed technologies in Performance and Tuning
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
- Mention Cookie Store API in Data Storage
- Mention KV Storage in Data Storage
- Mention JS Self-Profiling API in Performance and Tuning
- Mention Trusted Types in Security and Privacy
- Rename Writable Files to Natife File System in Data Storage
- Technologies in progress
- Mention Clipboard API and Events in Forms
- Mention Resize Observer in Device Adaptation
- Move CSS Mobile Text Size to technologies in progress in Device Adaptation
- Move CSS Overscroll Behavior to technologies in progress in Performance and Tuning
- Move Feature Policy to technologies in progress in Security and Privacy
- Move DeviceOrientation Event Specification to technologies in progress and update description in Sensors and Local Interactions
- Well-deployed technologies
- Move Media Capture and Streams to well-deployed technologies in Sensors and Local Interactions
- Move Web Authentication to well-deployed technologies in Security and Privacy
- Discontinued features
- Mark Hardware Based Security Services as discontinued in Security and Privacy
- Mark Tracking Preference Expression (also known as Do Not Track) as discontinued in Security and Privacy
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:
- Accessible Rich Internet Applications (WAI-ARIA) 1.1 shipped in Chrome, see User Interaction
- Source capabilities in Media Capture and Streams shipped in Chrome, see Device Adaptation
- Streams shipped in Firefox (desktop only), see Network and Communications
- Subresource Integrity shipped on all main browsers, see Security and Privacy
- Web Animations shipped in Safari (desktop only), see Graphics and Layout
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
- Mention Autoplay Policy in Media
- Mention Background Fetch in Application Lifecycle and Network and Communications
- Mention Badging API in Application Lifecycle and User Interaction
- Mention CSS Painting API Level 1 in Graphics and Layout
- Mention Display Locking in Performance and Tuning
- Mention Portals in Application Lifecycle
- Mention Scroll-linked Animations in Graphics and Layout
- Mention WebHID in User Interaction
- Mention Writable Files in Data Storage
- Fix title of Event Timing API in Performance and Tuning
- Technologies in progress
- Move Geolocation Sensor to technologies in progress in Sensors and Local Interactions and Application Lifecycle, and mention background operations
- Move WebXR Device API to technologies in progress in Media
- Update description of Web Authentication in Security and Privacy
- Well-deployed technologies
- Move Pointer Events to the well-deployed section in User Interaction
- Discontinued features
- Mark Budget API as discontinued in Application Lifecycle
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:
- Variable fonts in CSS Fonts Module Level 4 shipped on all main browsers, see Graphics and Layout
- Media Queries Level 4 shipped on all main browsers, see Device Adaptation
- Picture-in-Picture shipped in Firefox mobile, experimental support in Safari, see Media
- Gamepad shipped on all main browsers, see User Interaction
- Web Share API shipped in Safari (desktop), see Application Lifecycle
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
- Mention the CSS Animation Worklet API in Performance and Tuning
- Mention the CSS Overscroll Behavior Module Level 1 in Performance and Tuning
- Mention the Event Timing Web Perf API in Performance and Tuning
- Mention Priority Hints in Performance and Tuning
- Mention the Web Budget API in Application Lifecycle
- Technologies in progress
- Mention CSS Containment Module Level 1 in Performance and Tuning
- Mention Gamepad in User Interaction
- Mention the Identifiers for WebRTC's Statistics API in Performance and Tuning
- Mention MediaStreamTrack Content Hints in Media
- Mention Referrer Policy in Security and Privacy
- Move Screen Orientation API from Graphics and Layout to Sensors and Local Interactions
- Well-deployed technologies
- Mention WebDriver in Performance and Tuning
- Features not covered by on-going work
- Add gesture events to User Interaction
- Drop "More fine-grained network prioritization" from Performance and Tuning as Prioriy Hints now address that gap
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
- Mention the Web Share API and the Web Share Target API in Application Lifecycle
- Mention Requesting/Revoking permissions specifications in Security and Privacy
- Mention Feature Policy in Security and Privacy
- Mention Element Queries in Device Adaptation
- Replace WebVR by WebXR and mention polyfill in Media
- Technologies in progress
- Fix Proximity Sensor implementation status in Sensors and Local Interactions
- Fix Ambient Light API implementation status in Firefox and Edge in Sensors and Local Interactions
- Fix Presentation API implementation status in WebKit in Media
- Mention the CSS
font-display
property and update text on downloadable fonts in Graphics and Layout - Mention the Streams specification in Network and Communications
- Mention Payment Method Identifiers and Payment Method Manifest in Payment and Services
- Well-deployed technologies
- Mention CSS Grid Layout in Graphics and Layout
- Mention the CSS
box-sizing
property in Graphics and Layout - Move
requestIdleCallback
to the well-deployed section in Performance and Tuning - Update text on WOFF (WOFF 2.0 was recently published as a W3C Recommendation), mention variable fonts in Graphics and Layout
- Refine accessibility part in User Interaction and rename the category to promote accessibility
- Mention the
passive
flag for event listeners in Performance and Tuning - Move the Date and time entries to the well-deployed section but warn about partial implementations in Forms
- Discontinued features
- Mark humidity, thermometer, barometer proposals as discontinued in Sensors and Local Interactions
- Mark appcache as discontinued in Application Lifecycle
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.