-
Notifications
You must be signed in to change notification settings - Fork 19
/
index.html
517 lines (517 loc) · 32 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Web Media API Snapshot 2024</title>
<meta name="color-scheme" content="light dark" />
<script
src="https://www.w3.org/Tools/respec/respec-w3c"
class="remove">
</script>
<script class="remove">
var respecConfig = {
specStatus: "CG-DRAFT",
latestVersion: "https://www.w3.org/community/reports/webmediaapi/CG-FINAL-webmediaapi-20241016/",
editors: [{
name: "Jon Piesing",
company: "TP Vision Belgium N.V.",
companyURL: "https://www.tpvision.com/"
}, {
name: "John Riviello",
company: "Comcast",
companyURL: "http://comcastcorporation.com",
w3cid: 70923
}],
formerEditors: [{
name: "David Evans",
company: "British Broadcasting Corporation",
companyURL: "https://www.bbc.co.uk/rd"
}, {
name: "John Luther",
company: "JW Player",
companyURL: "https://www.jwplayer.com",
w3cid: 71784
}, {
name: "Mark Vickers",
company: "Comcast",
companyURL: "http://comcastcorporation.com",
w3cid: 46825
}],
github: "https://github.com/w3c/webmediaapi",
shortName: "WMAS2024",
group: "webmediaapi",
testSuiteURI: "https://webapitests2024.ctawave.org/",
copyrightStart: 2016,
additionalCopyrightHolders: "Consumer Technology Association",
logos: [{
src: 'https://cdn.cta.tech/cta/media/media/home/cta-logo.png',
href: "https://cta.tech/Research-Standards.aspx",
alt: "Consumer Technology Association (CTA)",
width: 100,
height: 65,
id: 'cta-logo',
}],
localBiblio: {
"DOM": {
title: "DOM Standard",
authors: [
"Anne van Kesteren"
],
href: "https://dom.spec.whatwg.org/review-drafts/2023-06/",
date: "19 June 2023",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"FETCH": {
title: "Fetch Standard",
authors: [
"Anne van Kesteren"
],
href: "https://fetch.spec.whatwg.org/review-drafts/2023-12/",
date: "18 December 2023",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"FULLSCREEN": {
title: "Fullscreen API Standard",
authors: [
"Philip Jägenstedt"
],
href: "https://fullscreen.spec.whatwg.org/review-drafts/2023-07/",
date: "17 July 2023",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"HTML": {
title: "HTML Standard",
authors: [
"Anne van Kesteren",
"Domenic Denicola",
"Ian Hickson",
"Philip Jägenstedt",
"Simon Pieters"
],
href: "https://html.spec.whatwg.org/review-drafts/2024-01/",
date: "15 January 2024",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"NOTIFICATIONS": {
title: "Notifications API Standard",
authors: [
"Anne van Kesteren"
],
href: "https://notifications.spec.whatwg.org/review-drafts/2023-07/",
date: "17 July 2023",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"WEBSOCKETS": {
title: "WebSockets Standard",
authors: [
"Adam Rice"
],
href: "https://websockets.spec.whatwg.org/review-drafts/2023-09/",
date: "18 September 2023",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"XHR": {
title: "XMLHttpRequest Standard",
authors: [
"Anne van Kesteren"
],
href: "https://xhr.spec.whatwg.org/review-drafts/2024-02/",
date: "19 February 2024",
status: "Review Draft (use this version or later)",
publisher: "WHATWG"
},
"CTA-5000-G": {
title: "Web Media API Snapshot 2024 CTA-5000-G",
authors: [
"Jon Piesing",
"John Riviello"
],
href: "https://cdn.cta.tech/cta/media/media/resources/standards/cta-5000-g-final.pdf",
date: "October 2024",
publisher: "Consumer Technology Association",
status: "CTA Specification"
}
}
};
</script>
<style>
.head > a.logo {
float: right;
margin: 0.4rem 0 0.2rem .4rem;
}
.head > a.logo {
border: none;
text-decoration: none;
background: transparent;
}
#wmas-bindings {
border-collapse: collapse;
}
#wmas-bindings th,
#wmas-bindings td {
background-color: var(--def-bg, #def);
border: 1px solid #999;
padding: 0.5rem;
}
#wmas-bindings th {
background-color: var(--heading-text, #005a9c);
color: #fff;
}
#wmas-bindings tr:nth-child(even) td {
background-color: var(--defrow-border, #bbd7e9);
}
</style>
</head>
<body>
<section id="abstract">
<p>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 (i.e., Chrome, Edge, Firefox, and Safari). 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.</p>
<p>This specification is being developed as part of the <a href="http://cta.tech/WAVE"><abbr title="Consumer Technology Association">CTA</abbr> <abbr title="Web Application Video Ecosystem">WAVE</abbr> Project</a>.</p>
</section>
<section id="sotd">
</section>
<section class="informative">
<h2>Introduction</h2>
<p>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 personal computer browsers. Two main reasons for this are that the browsers on consumer products are often quite out-of-date and that they often have integration issues.</p>
<section>
<h3>Out-of-date browsers</h3>
<p>While browsers integrated into consumer products are often built from the same major HTML user agent code bases as personal computer browsers, it is not unusual for a consumer product to be using a code base release that is three or more years old, while personal computer browsers use recent code base releases. Furthermore, browsers on consumer products are often infrequently updated, if ever. This results in very different web API support across devices.</p>
<p>This specification is intended to address this problem by listing key specifications used by media web apps that are all supported in common by all of the four major web user agent code bases at the time of publication (i.e., Chrome, Edge, Firefox, and Safari). The specification will then be used to generate a test suite. The versions of each of the four code bases used to generate the test suite are listed on the front page of the test suite. (See Test suite URL above.)</p>
<p>The specification and test suite enable device manufacturers to specify and verify that their browsers are up-to-date with current web standards at the time of product release. The specification and tests can also be used to specify and verify updates to browsers in the field.</p>
<p>Note that this specification is not defining a subset or profile to be used in place of the full web platform. There are 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 current APIs. There is no suggestion that APIs not included in this specification should be removed from implementations.</p>
<p>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.</p>
</section>
<section>
<h3>Integration issues</h3>
<p>There are many issues during integration of a web user agent with a hardware device that can affect the operation of web APIs. For example, if insufficient memory is allocated for cookies, they won’t function as intended.</p>
<p>To address this issue, this specification includes a list of target values for several APIs which are known to have been impacted by integration issues. There will also be a test suite to verify these values are supported on a device. It is expected that additional integration requirements will be added in future updates.</p>
<p>Note that these values are not mandated by any web standards, but are based on measurement of values supported by popular browsers. Supporting these values should provide better interoperability of web applications with personal computer and mobile browsers. Manufacturers may choose to exceed these values based on their expected application environments.</p>
</section>
</section>
<section id="conformance">
</section>
<section>
<h2>Web Media APIs currently supported on all platforms</h2>
<section class="informative">
<h2>Introduction</h2>
<p>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 (i.e., Chrome, Edge, Firefox, and Safari). We encourage manufacturers to develop products that support the APIs in the most recent version of this specification.</p>
<p>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, HTTP is required by the HTML spec and is therefore not included here.</p>
<p>In addition, the specifications of the web APIs mentioned here may in turn (recursively) reference other specifications that are not supported across all four of the most widely used user agent code bases. This possibility is understood and accepted. For example, Content Security Policy Level 2 [[CSP2]] references the <code>image()</code> function from CSS Images Module Level 4 [[CSS-IMAGES-4]], but CSS Images Module Level 4 is not yet widely supported. These unsupported referenced specifications are not explicitly cited as exceptions in this specification but, in spite of this, will not be tested as part of our tests.</p>
<section>
<h3>Features with limited implementation</h3>
<p>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.</p>
</section>
<section>
<h3>At-risk features</h3>
<p>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.</p>
</section>
<section>
<h3>Hardware Limitations</h3>
<p>While this specification does not specify a minimum or maximum number of media elements that can play content simultaneously, developers should note that due to hardware limitations of available decoders, the simultaneous playback of multiple media elements in a web application may not be possible.</p>
</section>
</section>
<section>
<h3>Client code updates</h3>
<p>The W3C Technical Architecture Group released a finding called <i>The evergreen Web</i> which strongly recommends that "Browsers must be regularly updated, especially to fix security and interoperability bugs — ideally with an automatic, secure update mechanism." [[?EVERGREEN-WEB]]</p>
<p>Devices SHOULD regularly update their browsers, preferably automatically.</p>
</section>
<section>
<h3>Core web specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>DOM [[!DOM]]</li>
<li>ECMAScript 2024 Language Specification [[!ECMASCRIPT-2024]]
<ul>
<li>Exceptions:
<ul>
<li><a href="https://262.ecma-international.org/15.0/#sec-arraybuffer.prototype.resize">Resizable ArrayBuffers</a> and <a href="https://262.ecma-international.org/15.0/#sec-sharedarraybuffer.prototype.grow">growable SharedArrayBuffers</a> are not yet widely supported.</li>
<li>The <a href="https://262.ecma-international.org/15.0/#sec-atomics.waitasync"><code>Atomics.waitAsync</code></a> method is not yet widely supported.</li>
</ul>
</ul>
</li>
<li>HTML [[!HTML]]
<ul>
<li>Devices MUST support the conformance class <b><a href="https://html.spec.whatwg.org/review-drafts/2024-01/#interactive">Web browsers and other interactive user agents</a></b>.</li>
<li>Devices MUST support a mechanism to construct instances of <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#text-track-cue">TextTrackCue</a> or an interface that inherits from it.
<ul>
<li>Note: Current user agent implementations meet this requirement either by supporting <a href="https://www.w3.org/TR/webvtt1/#the-vttcue-interface">VTTCue</a> or by supporting a constructor for <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#text-track-cue">TextTrackCue</a> that is no longer included in the HTML specification [[!HTML]].</li>
</ul>
</li>
<li>Exceptions:
<ul>
<li><a href="https://html.spec.whatwg.org/review-drafts/2024-01/#css-module-script">CSS module scripts</a> are not yet widely supported.</li>
<li>The <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#attr-hidden-until-found-state"><code>hidden=until-found</code></a> HTML attribute and the <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#event-beforematch"><code>beforematch</code></a> event are not yet widely supported.</li>
<li>The <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#fetch-priority-attributes"><code>fetchpriority=""</code> attribute</a> is not yet widely supported.</li>
<li>The <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#contenteditable"><code>contenteditable="plaintext-only"</code> attribute</a> is not yet widely supported.</li>
<li>The <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#close-requests-and-close-watchers">CloseWatcher API</a> is not yet widely supported.</li>
<li>The <a href="https://html.spec.whatwg.org/review-drafts/2024-01/#common-input-element-apis:htmlselectelement"><code>showPicker()</code> support for <code><select></code> elements</a> is not yet widely supported.</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section>
<h3>CSS specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications, which are derived from the official Cascading Style Sheets definition from CSS Snapshot 2023 [[?CSS-2023]] as well as more recent revisions to CSS specifications as appropriate:</p>
<ul>
<li>Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification [[!CSS2]]</li>
<li>Compositing and Blending Level 1 [[!COMPOSITING]]</li>
<li>CSS Animations Level 1 [[!CSS-ANIMATIONS-1]]</li>
<li>CSS Backgrounds and Borders Module Level 3 [[!CSS3-BACKGROUND]]</li>
<li>CSS Basic User Interface Module Level 3 (CSS3 UI) [[!CSS-UI-3]]</li>
<li>CSS Box Model Module Level 3 [[!CSS-BOX-3]]</li>
<li>CSS Cascading and Inheritance Level 4 [[!CSS-CASCADE-4]]</li>
<li>CSS Color Module Level 4 [[!CSS-COLOR-4]]</li>
<li>CSS Conditional Rules Module Level 3 [[!CSS3-CONDITIONAL]]</li>
<li>CSS Containment Module Level 1 [[!CSS-CONTAIN-1]]</li>
<li>CSS Counter Styles Level 3 [[!CSS-COUNTER-STYLES-3]]</li>
<li>CSS Custom Properties For Cascading Variables Module Level 1 [[!CSS-VARIABLES-1]]</li>
<li>CSS Easing Functions Level 1 [[!CSS-EASING-1]]</li>
<li>CSS Flexible Box Layout Module Level 1 [[!CSS-FLEXBOX-1]]</li>
<li>CSS Font Loading Module Level 3 [[!CSS-FONT-LOADING-3]]</li>
<li>CSS Fonts Module Level 3 [[!CSS-FONTS-3]]</li>
<li>CSS Grid Layout Module Level 1 [[!CSS-GRID-1]]</li>
<li>CSS Images Module Level 3 [[!CSS-IMAGES-3]]</li>
<li>CSS Logical Properties and Values Level 1 [[!CSS-LOGICAL-1]]</li>
<li>CSS Multi-column Layout Module Level 1 [[!CSS-MULTICOL-1]]</li>
<li>CSS Namespaces Module Level 3 [[!CSS-NAMESPACES-3]]</li>
<li>CSS Scroll Snap Module Level 1 [[!CSS-SCROLL-SNAP-1]]</li>
<li>CSS Shapes Module Level 1 [[!CSS-SHAPES-1]]</li>
<li>CSS Style Attributes [[!CSS-STYLE-ATTR]]</li>
<li>CSS Syntax Module Level 3 [[!CSS-SYNTAX-3]]</li>
<li>CSS Text Decoration Module Level 3 [[!CSS-TEXT-DECOR-3]]</li>
<li>CSS Transforms Module Level 1 [[!CSS-TRANSFORMS-1]]
<ul>
<li>Exception: applying CSS transform functions to <code>video</code> elements is not required to be supported. More complex requirements such as <a href="https://www.w3.org/TR/css-transforms-1/#funcdef-transform-rotate">2D rotate</a>, <a href="https://www.w3.org/TR/css-transforms-1/#funcdef-transform-skew">2D skew</a> or any of the 3D transforms may not work at all or may be limited to unencrypted content and/or to HD / SD content or even to only SD content. They may also result in dropped frames.</li>
</ul>
</li>
<li>CSS Transitions Level 1 [[!CSS-TRANSITIONS-1]]</li>
<li>CSS Values and Units Module Level 3 [[!CSS-VALUES]]</li>
<li>CSS Will Change Module Level 1 [[CSS-WILL-CHANGE-1]]</li>
<li>CSS Writing Modes Level 3 [[!CSS-WRITING-MODES-3]]</li>
<li>CSSOM View Module [[!CSSOM-VIEW]]</li>
<li>Filter Effects Module Level 1 [[!FILTER-EFFECTS-1]]</li>
<li>Media Queries Level 4 [[!MEDIAQUERIES-4]]
<ul>
<li>Note: As part of the updates included in Media Queries Level 4, the supported media types have been reduced to only <code>'all'</code>, <code>'print'</code>, and <code>'screen'</code>. Other previous media types, such as <a href="https://www.w3.org/TR/mediaqueries-4/#valdef-media-tv"><code>'tv'</code></a>, have been deprecated. Informal testing suggests this reduction has been implemented in browser code bases for a number of years.</li>
</ul>
</li>
<li>Resize Observer [[!RESIZE-OBSERVER-1]]</li>
<li>Selectors Level 3 [[!SELECT]]</li>
<li>Web Animations [[!WEB-ANIMATIONS]]</li>
</ul>
</section>
<section>
<h3>Media specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Encrypted Media Extensions [[!ENCRYPTED-MEDIA-1]]</li>
<li>Media Capabilities [[!MEDIA-CAPABILITIES]]</li>
<li>Media Fragments URI 1.0 (basic) [[!MEDIA-FRAGS]]
<ul>
<li>Note: Support is limited to video track ranges.
</ul>
</li>
<li>Media Source Extensions [[!MEDIA-SOURCE-1]]</li>
<li>Web Audio API [[!WEBAUDIO]]</li>
<li>WebRTC 1.0: Real-Time Communication Between Browsers [[!WEBRTC]]
<ul>
<li>Note: Since consumer products may not have camera and/or microphone inputs to send video and audio, WebRTC's functionality can be limited to not allow an <a href="https://www.w3.org/TR/webrtc/#dom-rtcrtptransceiverdirection"><code>RTCRtpTransceiverDirection</code></a> of "<code>sendrecv</code>" or "<code>sendonly</code>" on those devices. This also implies the <a href="https://www.w3.org/TR/webrtc/#rtcrtpsender-interface"><code>RTCRtpSender</code> interface</a> is not required to be implemented, and the Media Capture and Streams [[GETUSERMEDIA]] requirements are limited to <a href="https://www.w3.org/TR/mediacapture-streams/#dom-mediastream"><code>MediaStream</code></a>, <a href="https://www.w3.org/TR/mediacapture-streams/#dom-mediastreamtrack"><code>MediaStreamTrack</code></a>, and <a href="https://www.w3.org/TR/mediacapture-streams/#dom-mediastreamconstraints"><code>MediaStreamConstraints</code></a> as defined in Media Capture and Streams and extended by WebRTC. This enables WebRTC to be leveraged for use cases such as security camera feeds, ultra low latency live streaming, and cloud gaming.
</ul>
</li>
</ul>
</section>
<section>
<h3>Graphics specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Fullscreen API Standard [[!FULLSCREEN]]</li>
<li>Graphics Interchange Format [[!GIF]]</li>
<li>HTML Canvas 2D Context [[!2DCONTEXT]]</li>
<li>JPEG File Interchange Format [[!JPEG]]</li>
<li>Portable Network Graphics (PNG) Specification (Second Edition) [[!PNG2e-20031110]]</li>
<li>WebGL Specification [[!WEBGL-103]]</li>
</ul>
</section>
<section>
<h3>Font specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Open Font Format [[!OPEN-FONT-FORMAT]]</li>
<li>WOFF File Format 1.0 [[!WOFF]]</li>
</ul>
</section>
<section>
<h3>Networking specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Fetch [[!FETCH]]
<ul>
<li>Exceptions:
<ul>
<li>The <a href="https://fetch.spec.whatwg.org/review-drafts/2023-12/#sec-purpose-header"><code>Sec-Purpose: prefetch</code> header</a> is not yet widely supported.</li>
<li>The <a href="https://fetch.spec.whatwg.org/review-drafts/2023-12/#concept-request-destination"><code>"json"</code> destination for JSON modules</a> is not yet widely supported.</li>
</ul>
</ul>
</li>
<li>WebSockets [[!WEBSOCKETS]]</li>
<li>XMLHttpRequest [[!XHR]]</li>
</ul>
</section>
<section>
<h3>Security specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Content Security Policy Level 2 [[!CSP2]]</li>
<li>Referrer Policy [[!REFERRER-POLICY]]</li>
<li>Subresource Integrity [[!SRI]]</li>
<li>Transport Layer Security (TLS) Protocol Version 1.2 [[!RFC5246]]</li>
<li>Transport Layer Security (TLS) Protocol Version 1.3 [[!RFC8446]]</li>
<li>Upgrade Insecure Requests [[!UPGRADE-INSECURE-REQUESTS]]</li>
<li>Web Cryptography API [[!WEBCRYPTOAPI]]</li>
</ul>
<p>Note: Along with these security standards for the user agent, all IoT devices should be designed with security in mind. An industry-developed voluntary consensus standard for a minimum security "baseline" for IoT devices can be found at <a href="https://shop.cta.tech/collections/standards/cybersecurity">https://shop.cta.tech/collections/standards/cybersecurity</a>.</p>
</section>
<section>
<h3>Web Performance specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Beacon [[!BEACON]]</li>
<li>High Resolution Time [[!HR-TIME-3]]</li>
<li>Navigation Timing [[!NAVIGATION-TIMING]]</li>
<li>Performance Timeline [[!PERFORMANCE-TIMELINE]]</li>
<li>Resource Timing Level 1 [[!RESOURCE-TIMING-1]]</li>
<li>User Timing Level 2 [[!USER-TIMING-2]]</li>
</ul>
</section>
<section>
<h3>Other web specifications</h3>
<p>Devices MUST be conforming implementations of the following specifications:</p>
<ul>
<li>Indexed Database API [[!INDEXEDDB]]</li>
<li>File API [[!FILEAPI]]</li>
<li>Notifications API [[!NOTIFICATIONS]]
<ul><li>Exception: it is possible for the user agent to support the Notifications API, but the operating system and/or device platform does not support a system to display notifications. In this scenario, it is critical that the current recommendations for feature detection of the Notifications API do not cause an error when run on the device.
<ul><li>Note: best practices regarding feature detection of Notifications API capabilities are discussed in <a href="https://github.com/whatwg/notifications/issues/116">Notifications API GitHub Issue #116</a> and the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API">"Using the Notifications API" guide from MDN</a>.</li></ul>
</li></ul>
</li>
<li>Service Workers 1 [[!SERVICE-WORKERS-1]]</li>
<li>UI Events [[!UIEVENTS]]</li>
<li>Note: Cross-document messaging, Channel messaging, Web storage and Web workers are also required as part of the HTML specification [[!HTML]].</li>
</ul>
</section>
</section>
<section>
<h2>User Agent Integration Specifications</h2>
<section class="informative">
<h2>Introduction</h2>
<p>This section contains values for integrating a web user agent with a consumer device. The values are based on de facto requirements from browsers on personal computers and mobile devices. Supporting these integration specifications will increase interoperability with media web apps on other devices.</p>
<p>A test suite will evaluate client support for these specifications.</p>
</section>
<section>
<h3>Cookies</h3>
<ul>
<li>Devices MUST support cookies of length at least 4096 bytes.</li>
<li>Devices MUST support at least 20 cookies per domain.</li>
<li>Devices MUST support at least 100 total cookies.</li>
<li>Devices MUST support persistence of cookies between application sessions.</li>
<li>Devices MUST support persistence of cookies across power cycles of the device.</li>
</ul>
</section>
<section>
<h3>URLs</h3>
<ul>
<li>Devices MUST support URLs up to a length of 2047 bytes.</li>
</ul>
</section>
</section>
<section class="informative">
<h2>Web Media APIs proposed to be supported on all platforms</h2>
<section>
<h2>Introduction</h2>
<p>APIs in this section are important for web media delivery, but either are not yet implemented in all four code bases or not yet commonly implemented across embedded browsers in consumer products, such as WPEWebKit. 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 be listed as supported on all platforms in a future version of this specification.</p>
</section>
<section>
<h3>Media specifications</h3>
<ul>
<li>Media Session Standard [[MEDIASESSION]]</li>
<li>Sourcing In-band Media Resource Tracks from Media Containers into HTML [[INBANDTRACKS]]</li>
<li>WebCodecs [[WEBCODECS]]</li>
</ul>
</section>
<section>
<h3>WebAssembly specifications</h3>
<ul>
<li>WebAssembly Core Specification [[WASM-CORE-1]]</li>
<li>WebAssembly JavaScript Interface [[WASM-JS-API-1]]</li>
<li>WebAssembly Web API [[WASM-WEB-API-1]]</li>
</ul>
</section>
<section>
<h3>Other web specifications</h3>
<ul>
<li>Push API [[PUSH-API]]</li>
<li>Web App Manifest [[APPMANIFEST]]</li>
<li>WebTransport [[WEBTRANSPORT]]</li>
</ul>
</section>
</section>
<section class="appendix">
<h2>Annex A: WMAS Bindings (normative)</h2>
<p>This annex lists Web Media API bindings assigned within the CTA namespace "<code>urn:cta</code>". These bindings may be used to signal compatibility intent or requirement for the WAVE API Snapshot identified in the binding.</p>
<p>See <a href="https://www.iana.org/assignments/urn-formal/cta">https://www.iana.org/assignments/urn-formal/cta</a> for the CTA namespace registration in the Official IANA Registry of URN Namespaces [[IANA-URN-NAMESPACES]].</p>
<p>The table below is normative within this specification. For more information on these bindings contact <a href="mailto:[email protected]">[email protected]</a>.</p>
<table id="wmas-bindings">
<thead>
<tr>
<th scope="col">CTA Identifier</th>
<th scope="col">Referenced Specification</th>
</tr>
</thead>
<tbody>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000:2017</td>
<td>Web Media API Snapshot 2017 CTA-5000 [[CTA-5000]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000a:2018</td>
<td>Web Media API Snapshot 2018 CTA-5000-A [[CTA-5000-A]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000b:2019</td>
<td>Web Media API Snapshot 2019 CTA-5000-B [[CTA-5000-B]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000c:2020</td>
<td>Web Media API Snapshot 2020 CTA-5000-C [[CTA-5000-C]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000d:2021</td>
<td>Web Media API Snapshot 2021 CTA-5000-D [[CTA-5000-D]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000e:2022</td>
<td>Web Media API Snapshot 2022 CTA-5000-E [[CTA-5000-E]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000f:2023</td>
<td>Web Media API Snapshot 2023 CTA-5000-F [[CTA-5000-F]]</td>
</tr>
<tr>
<td>urn:cta:wave:appinformation:standardversion:cta5000g:2024</td>
<td>Web Media API Snapshot 2024 CTA-5000-G [[CTA-5000-G]]</td>
</tr>
</tbody>
</table>
</section>
<section id="references">
<p>For WHATWG living standards, while it is recommended that devices support the living standard, they must support the referenced review draft version of each WHATWG standard or a later commit snapshot version.</p>
</section>
</body>
</html>