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.

Introduction

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 consumer browsers are built from the same major HTML user agent code bases as are PC browsers, it's 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 specs used by media web apps that are all supported in common by all 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 web platforms. 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.

Web Media APIs currently supported on all platforms

Introduction

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 to only include specifications that are of particular significance to application programmers, 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 the HTML5 spec included here, but is not included as a required specification here.

Features with limited implementation

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

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.

HTML core specifications

Devices MUST be conforming implementations of the following specifications:

CSS specifications

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:

Media specifications

Devices MUST be conforming implementations of the following specifications:

Graphics specifications

Devices MUST be conforming implementations of the following specifications:

Font specifications

Devices MUST be conforming implementations of the following specifications:

Networking specifications

Devices MUST be conforming implementations of the following specifications:

Security specifications

Devices MUST be conforming implementations of the following specifications:

Other web specifications

Devices MUST be conforming implementations of the following specifications:

Web Media APIs proposed to be supported on all platforms

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.

HTML core specifications

Media specifications

Graphics specifications

Networking specifications

Other web specifications