Web Media API Snapshot 2017

Final Community Group Report (References fixed 15 May 2018)

Latest editor's draft:
https://w3c.github.io/webmediaapi/
Editors:
David Evans (British Broadcasting Corporation)
Mark Vickers (Comcast)
Participate:
GitHub w3c/webmediaapi
File a bug
Commit history
Pull requests

Abstract

This specification lists the Web APIs to support media web apps that are supported across all four of the most widely used user agent code bases at the time of publication. This specification should be updated at least annually to keep pace with the evolving Web platform. We encourage manufacturers to develop products that support the APIs in the most recent version of Web Media API Snapshot. This specification is comprised of references to existing specifications in W3C and other specification groups. The target devices will include any device that runs a modern HTML user agent, including televisions, game machines, set-top boxes, mobile devices and personal computers.

The goal of this Web Media API Community Group specification is to transition to the W3C Recommendation Track for standards development.

Status of This Document

This specification was published by the Web Media API Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Final Specification Agreement (FSA) other conditions apply. Learn more about W3C Community and Business Groups.

1. Introduction §

This section is non-normative.

Writing portable media web apps across browsers on consumer products (e.g. smart TVs, game machines, set-top boxes) is much more difficult than writing portable media web apps across PC browsers. One main reason for this is that the browsers on consumer products are often quite out-of-date. While browsers integrated into consumer products are often built from the same major HTML user agent code bases as PC browsers, it is not unusual for a consumer product to be using a code base release that is three or more years old, while PC browsers use recent code base releases.

This specification is intended to address this problem by collecting together into one definition key specifications used by media web apps that are all supported in common by all of the four major web user agent code bases, as of 2017. The specification will then be used to generate a test suite, to enable device manufacturers to specify and verify that their browsers are up-to-date with current web standards.

However, this specification is not a complete definition of the Web platform. There may be additional specifications that are included in all code bases that are not included in this specification. Furthermore, individual code bases include APIs that are not supported on all other code bases, but are nonetheless widely used. Therefore, this specification and associated tests should only be used as verification of a minimum set of required APIs. There is no suggestion that APIs not included in this specification should be removed from implementations.

It is intended that this specification be updated periodically to reflect adoption of new specifications in the Web platform. For example, the specification might be updated once a year for media devices being introduced onto the market in the following year.

Each version of the specification will additionally recommend a set of useful web specifications which are not yet supported by all code bases, in order to encourage all code bases to support these recommended APIs.

Specifications that are required in this version of this specification may fall out of use in the web and be dropped in whole or in part from some user agent code bases. Hence a specification being "Required" in this version of this specification does not guarantee that it will remain "Required" in future versions of this specification.

This specification is being developed in close cooperation with the CTA WAVE Project.

2. Conformance §

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key word MUST is to be interpreted as described in [RFC2119].

3. Web Media APIs currently supported on all platforms §

3.1 Introduction §

This section is non-normative.

This section lists the Web APIs to support media web apps that are supported across all four of the most widely used user agent code bases at the time of publication (though there are no requirements around explicit version number or release date for any client code bases). We encourage manufacturers to develop products that support the APIs in the most recent version of this specification.

The approach taken in this draft is only to include specifications that are of particular significance to authors, but not include all the specifications cited by those included specifications. For example, IETF RFC 1345, Character Mnemonics and Character Sets [RFC1345] is required by HTML 5.1 [HTML51], and is therefore not included as a required specification here.

3.1.1 Features with limited implementation §

Parts of some web specifications are not currently implemented across all user agent code bases and may never be. Consequently, these features will not be included in our tests. Any such features are noted as exceptions under that API.

3.1.2 At-risk features §

Some specifications referenced in this section may not have reached Recommendation and, as such, may contain 'at-risk' features. Since the most common reason for features being marked as at-risk is lack of implementations, such features may not be present in some implementations of this specification and will not be tested as part of our tests.

3.2 HTML core specifications §

Devices MUST be conforming implementations of the following specifications:

3.3 CSS specifications §

Editor's note

The following list of widely deployed and interoperable CSS specs is taken directly from CSS Snapshot 2017 [CSS-2017]

Devices MUST be conforming implementations of the following specifications:

3.4 Media specifications §

Devices MUST be conforming implementations of the following specifications:

3.5 Graphics specifications §

Devices MUST be conforming implementations of the following specifications:

3.6 Font specifications §

Devices MUST be conforming implementations of the following specifications:

3.7 Networking specifications §

Devices MUST be conforming implementations of the following specifications:

3.8 Security specifications §

Devices MUST be conforming implementations of the following specifications:

3.9 Other web specifications §

Devices MUST be conforming implementations of the following specifications:

4. Web Media APIs proposed to be supported on all platforms §

This section is non-normative.

APIs in this section represent desired functionality that is important for web media delivery, but is not yet implemented widely enough to be Required. We encourage the following APIs be implemented on all HTML user agents as soon as possible. It is expected that, as implementations become available, some of these specifications may become Required Specifications in a future version of this specification.

4.1 HTML core specifications §

4.2 Media specifications §

4.3 Graphics specifications §

4.4 Networking specifications §

4.5 Other web specifications §

A. References §

A.1 Normative references §

[2DCONTEXT]
HTML Canvas 2D Context. Rik Cabanier; Jatinder Mann; Jay Munro; Tom Wiltzius; Ian Hickson. W3C. 19 November 2015. W3C Recommendation. URL: https://www.w3.org/TR/2dcontext/
[CHANNEL-MESSAGING]
HTML Standard: Channel messaging. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/comms.html#channel-messaging
[COMPOSITING]
Compositing and Blending Level 1. Rik Cabanier; Nikos Andronikos. W3C. 13 January 2015. W3C Candidate Recommendation. URL: https://www.w3.org/TR/compositing-1/
[CSP2]
Content Security Policy Level 2. Mike West; Adam Barth; Daniel Veditz. W3C. 15 December 2016. W3C Recommendation. URL: https://www.w3.org/TR/CSP2/
[CSS-CASCADE-3]
CSS Cascading and Inheritance Level 3. Elika Etemad; Tab Atkins Jr.. W3C. 19 May 2016. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-cascade-3/
[CSS-FLEXBOX-1]
CSS Flexible Box Layout Module Level 1. Tab Atkins Jr.; Elika Etemad; Rossen Atanassov. W3C. 19 October 2017. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-FONTS-3]
CSS Fonts Module Level 3. John Daggett. W3C. 15 March 2018. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-fonts-3/
[CSS-NAMESPACES-3]
CSS Namespaces Module Level 3. Elika Etemad. W3C. 20 March 2014. W3C Recommendation. URL: https://www.w3.org/TR/css-namespaces-3/
[CSS-STYLE-ATTR]
CSS Style Attributes. Tantek Çelik; Elika Etemad. W3C. 7 November 2013. W3C Recommendation. URL: https://www.w3.org/TR/css-style-attr/
[CSS-SYNTAX-3]
CSS Syntax Module Level 3. Tab Atkins Jr.; Simon Sapin. W3C. 20 February 2014. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-syntax-3/
[CSS-TRANSFORMS-1]
CSS Transforms Module Level 1. Simon Fraser; Dean Jackson; Theresa O'Connor; Dirk Schulze. W3C. 30 November 2017. W3C Working Draft. URL: https://www.w3.org/TR/css-transforms-1/
[CSS-UI-3]
CSS Basic User Interface Module Level 3 (CSS3 UI). Tantek Çelik; Florian Rivoal. W3C. 14 December 2017. W3C Proposed Recommendation. URL: https://www.w3.org/TR/css-ui-3/
[CSS-VALUES]
CSS Values and Units Module Level 3. Tab Atkins Jr.; Elika Etemad. W3C. 29 September 2016. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-values-3/
[CSS2]
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. Bert Bos; Tantek Çelik; Ian Hickson; Håkon Wium Lie et al. W3C. 7 June 2011. W3C Recommendation. URL: https://www.w3.org/TR/CSS2/
[CSS3-ANIMATIONS]
CSS Animations Level 1. Dean Jackson; David Baron; Tab Atkins Jr.; Brian Birtles. W3C. 30 November 2017. W3C Working Draft. URL: https://www.w3.org/TR/css-animations-1/
[CSS3-BACKGROUND]
CSS Backgrounds and Borders Module Level 3. Bert Bos; Elika Etemad; Brad Kemper. W3C. 17 October 2017. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS3-COLOR]
CSS Color Module Level 3. Tantek Çelik; Chris Lilley; David Baron. W3C. 15 March 2018. W3C Proposed Recommendation. URL: https://www.w3.org/TR/css-color-3/
[CSS3-CONDITIONAL]
CSS Conditional Rules Module Level 3. David Baron. W3C. 4 April 2013. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css3-conditional/
[CSS3-IMAGES]
CSS Image Values and Replaced Content Module Level 3. Elika Etemad; Tab Atkins Jr.. W3C. 17 April 2012. W3C Candidate Recommendation. URL: https://www.w3.org/TR/css3-images/
[CSS3-MEDIAQUERIES]
Media Queries. Florian Rivoal et al. W3C. 19 June 2012. W3C Recommendation. URL: https://www.w3.org/TR/css3-mediaqueries/
[CSS3-MULTICOL]
CSS Multi-column Layout Module Level 1. Håkon Wium Lie; Florian Rivoal; Rachel Andrew. W3C. 5 October 2017. W3C Working Draft. URL: https://www.w3.org/TR/css-multicol-1/
[CSS3-TRANSITIONS]
CSS Transitions. David Baron; Dean Jackson; Brian Birtles. W3C. 30 November 2017. W3C Working Draft. URL: https://www.w3.org/TR/css-transitions-1/
[ECMASCRIPT-5.1]
ECMAScript Language Specification, Edition 5.1. Ecma International. June 2011. Standard. URL: http://www.ecma-international.org/publications/standards/Ecma-262.htm
[ENCRYPTED-MEDIA]
Encrypted Media Extensions. David Dorwin; Jerry Smith; Mark Watson; Adrian Bateman. W3C. 18 September 2017. W3C Recommendation. URL: https://www.w3.org/TR/encrypted-media/
[FETCH]
Fetch Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://fetch.spec.whatwg.org/
[GIF]
Graphics Interchange Format. CompuServe Incorporated. 31 July 1990. URL: https://www.w3.org/Graphics/GIF/spec-gif89a.txt
[HTML51]
HTML 5.1 2nd Edition. Steve Faulkner; Arron Eicholz; Travis Leithead; Alex Danilo. W3C. 3 October 2017. W3C Recommendation. URL: https://www.w3.org/TR/html51/
[IndexedDB-20150108]
Indexed Database API. Nikunj Mehta; Jonas Sicking; Eliot Graff; Andrei Popescu; Jeremy Orlow; Joshua Bell. W3C. 8 January 2015. W3C Recommendation. URL: https://www.w3.org/TR/2015/REC-IndexedDB-20150108/
[JPEG]
JPEG File Interchange Format. Eric Hamilton. C-Cube Microsystems. Milpitas, CA, USA. September 1992. URL: https://www.w3.org/Graphics/JPEG/jfif3.pdf
[MEDIA-SOURCE]
Media Source Extensions™. Matthew Wolenetz; Jerry Smith; Mark Watson; Aaron Colwell; Adrian Bateman. W3C. 17 November 2016. W3C Recommendation. URL: https://www.w3.org/TR/media-source/
[notifications-20151022]
Web Notifications. John Gregg; Anne van Kesteren. W3C. 22 October 2015. W3C Recommendation. URL: https://www.w3.org/TR/2015/REC-notifications-20151022/
[OPEN-FONT-FORMAT]
Information technology — Coding of audio-visual objects — Part 22: Open Font Format. International Organization for Standardization. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c052136_ISO_IEC_14496-22_2009%28E%29.zip
[PNG]
Portable Network Graphics (PNG) Specification (Second Edition). Tom Lane. W3C. 10 November 2003. W3C Recommendation. URL: https://www.w3.org/TR/PNG/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[SELECT]
Selectors Level 3. Tantek Çelik; Elika Etemad; Daniel Glazman; Ian Hickson; Peter Linss; John Williams. W3C. 30 January 2018. W3C Candidate Recommendation. URL: https://www.w3.org/TR/selectors-3/
[WEB-MESSAGING]
HTML Standard: Cross-document messaging. Anne van Kesteren; Domenic Denicola; Ian Hickson; Philip Jägenstedt; Simon Pieters. WHATWG. Living Standard. URL: https://html.spec.whatwg.org/multipage/comms.html#web-messaging
[WEBAUDIO]
Web Audio API. Paul Adenot; Chris Wilson; Chris Rogers. W3C. 8 December 2015. W3C Working Draft. URL: https://www.w3.org/TR/webaudio/
[WebCryptoAPI]
Web Cryptography API. Mark Watson. W3C. 26 January 2017. W3C Recommendation. URL: https://www.w3.org/TR/WebCryptoAPI/
[WEBSOCKETS]
The WebSocket API. Ian Hickson. W3C. 20 September 2012. W3C Candidate Recommendation. URL: https://www.w3.org/TR/websockets/
[WEBSTORAGE]
Web Storage (Second Edition). Ian Hickson. W3C. 19 April 2016. W3C Recommendation. URL: https://www.w3.org/TR/webstorage/
[WHATWG-FULLSCREEN]
Fullscreen API Standard. Philip Jägenstedt. WHATWG. Living Standard. URL: https://fullscreen.spec.whatwg.org/
[WOFF]
WOFF File Format 1.0. Jonathan Kew; Tal Leming; Erik van Blokland. W3C. 13 December 2012. W3C Recommendation. URL: https://www.w3.org/TR/WOFF/
[WORKERS]
Web Workers. Ian Hickson. W3C. 24 September 2015. W3C Working Draft. URL: https://www.w3.org/TR/workers/
[XHR]
XMLHttpRequest Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://xhr.spec.whatwg.org/

A.2 Informative references §

[appmanifest]
Web App Manifest. Marcos Caceres; Kenneth Christiansen; Mounir Lamouri; Anssi Kostiainen; Rob Dolin; Matt Giuca. W3C. 8 May 2018. W3C Working Draft. URL: https://www.w3.org/TR/appmanifest/
[CSS-2017]
CSS Snapshot 2017. Tab Atkins Jr.; Elika Etemad; Florian Rivoal. W3C. 31 January 2017. W3C Note. URL: https://www.w3.org/TR/css-2017/
[ECMASCRIPT-6.0]
ECMA-262 6th Edition, The ECMAScript 2015 Language Specification. Allen Wirfs-Brock. Ecma International. June 2015. Standard. URL: http://www.ecma-international.org/ecma-262/6.0/index.html
[EVENTSOURCE]
Server-Sent Events. Ian Hickson. W3C. 3 February 2015. W3C Recommendation. URL: https://www.w3.org/TR/eventsource/
[INBANDTRACKS]
Sourcing In-band Media Resource Tracks from Media Containers into HTML. Silvia Pfeiffer; Bob Lund. W3C. 26 April 2015. Unofficial Draft. URL: https://dev.w3.org/html5/html-sourcing-inband-tracks/
[media-frags]
Media Fragments URI 1.0 (basic). Raphaël Troncy; Erik Mannens; Silvia Pfeiffer; Davy Van Deursen. W3C. 25 September 2012. W3C Recommendation. URL: https://www.w3.org/TR/media-frags/
[mediacapture-streams]
Media Capture and Streams. Daniel Burnett; Adam Bergkvist; Cullen Jennings; Anant Narayanan; Bernard Aboba. W3C. 3 October 2017. W3C Candidate Recommendation. URL: https://www.w3.org/TR/mediacapture-streams/
[MEDIASESSION]
Media Session. WICG. Living Standard. URL: https://wicg.github.io/mediasession/
[RFC1345]
Character Mnemonics and Character Sets. K. Simonsen. IETF. June 1992. Informational. URL: https://tools.ietf.org/html/rfc1345
[service-workers-1]
Service Workers 1. Alex Russell; Jungkee Song; Jake Archibald; Marijn Kruisselbrink. W3C. 2 November 2017. W3C Working Draft. URL: https://www.w3.org/TR/service-workers-1/
[WEBGL-103]
WebGL Specification. Dean Jackson. Khronos. 27 October 2014. URL: https://www.khronos.org/registry/webgl/specs/1.0.3/