├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── explainer.md ├── html-output ├── .htaccess ├── 404.html ├── demos │ ├── canvas │ │ └── blue-robot │ │ │ ├── blue-robot.png │ │ │ ├── index-idle.html │ │ │ └── index.html │ ├── offline │ │ └── clock │ │ │ ├── clock.appcache │ │ │ ├── clock.css │ │ │ ├── clock.js │ │ │ ├── clock1.html │ │ │ └── clock2.html │ └── workers │ │ ├── crypto │ │ ├── libcrypto-v1.js │ │ ├── libcrypto-v2-decryptor.js │ │ ├── libcrypto-v2-encryptor.js │ │ ├── libcrypto-v2-generator.js │ │ ├── libcrypto-v2.js │ │ └── page.html │ │ ├── modules │ │ ├── filters.js │ │ ├── page.html │ │ └── worker.js │ │ ├── multicore │ │ ├── core.js │ │ ├── page.html │ │ └── worker.js │ │ ├── multiviewer │ │ ├── page.html │ │ ├── viewer.html │ │ └── worker.js │ │ ├── primes │ │ ├── page.html │ │ └── worker.js │ │ ├── shared │ │ ├── 001 │ │ │ ├── test.html │ │ │ └── test.js │ │ ├── 002 │ │ │ ├── test.html │ │ │ └── test.js │ │ └── 003 │ │ │ ├── inner.html │ │ │ ├── test.html │ │ │ └── test.js │ │ └── stocks │ │ ├── io.js │ │ ├── page.html │ │ ├── search.cgi │ │ ├── searcher.js │ │ ├── stock.cgi │ │ └── ticker.js ├── entities.json ├── fonts │ ├── .htaccess │ ├── Essays1743-Bold.ttf │ ├── Essays1743-BoldItalic.ttf │ ├── Essays1743-Italic.ttf │ └── Essays1743.ttf ├── images │ ├── .htaccess │ ├── abstract.jpeg │ ├── abstract.png │ ├── arc1.png │ ├── arcTo1.png │ ├── arcTo2.png │ ├── arcTo3.png │ ├── asyncdefer.svg │ ├── baselines.png │ ├── bidiselect.png │ ├── content-venn.svg │ ├── contextmenu-collapsed.png │ ├── contextmenu-expanded.png │ ├── custom-element-reactions.svg │ ├── drawImage.png │ ├── fingerprint.png │ ├── focus-tree.png │ ├── im.png │ ├── kettlebell.jpg │ ├── media-stream-1.png │ ├── media-stream-2.png │ ├── outline.svg │ ├── parsing-model-overview.svg │ ├── robots.jpeg │ ├── sample-bdi.png │ ├── sample-calendar.png │ ├── sample-card.png │ ├── sample-content-handler-registration.png │ ├── sample-content-handler.png │ ├── sample-datalist.svg │ ├── sample-details-1.png │ ├── sample-details-2.png │ ├── sample-email-1.svg │ ├── sample-email-2.svg │ ├── sample-makeapp.png │ ├── sample-meter.png │ ├── sample-not-bdi.png │ ├── sample-progress.png │ ├── sample-range-2a.png │ ├── sample-range-2b.png │ ├── sample-range-labels.png │ ├── sample-range-multiple.png │ ├── sample-range.png │ ├── sample-ruby-bopomofo.png │ ├── sample-ruby-ja.png │ ├── sample-ruby-pinyin.png │ ├── sample-url.svg │ ├── sample-usemap.png │ ├── select-country-1.png │ ├── select-country-2.png │ ├── table-scope-diagram.png │ ├── websocket-protocol-diagram.txt │ └── wolf.jpg ├── index.html ├── link-fixup.js └── multipage │ ├── acknowledgements.html │ ├── browsers.html │ ├── comms.html │ ├── dom.html │ ├── embedded-content.html │ ├── forms.html │ ├── fragment-links.json │ ├── iana.html │ ├── index.html │ ├── indices.html │ ├── infrastructure.html │ ├── interaction.html │ ├── introduction.html │ ├── microdata.html │ ├── obsolete.html │ ├── references.html │ ├── rendering.html │ ├── scripting.html │ ├── semantics.html │ ├── syntax.html │ ├── tables.html │ ├── webappapis.html │ ├── webstorage.html │ ├── workers.html │ └── xhtml.html ├── security-privacy-questionnaire.md └── w3c.json /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | All documentation, code and communication under this repository are covered by the [W3C Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc/). 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # controls-list 2 | 3 | Contributions to this repository are intended to become part of Recommendation-track documents 4 | governed by the [W3C Patent Policy](http://www.w3.org/Consortium/Patent-Policy-20040205/) and 5 | [Document License](http://www.w3.org/Consortium/Legal/copyright-documents). To contribute, you must 6 | either participate in the relevant W3C Working Group or make a non-member patent licensing 7 | commitment. 8 | 9 | If you are not the sole contributor to a contribution (pull request), please identify all 10 | contributors in the pull request's body or in subsequent comments. 11 | 12 | To add a contributor (other than yourself, that's automatic), mark them one per line as follows: 13 | 14 | ``` 15 | +@github_username 16 | ``` 17 | 18 | If you added a contributor by mistake, you can remove them in a comment with: 19 | 20 | ``` 21 | -@github_username 22 | ``` 23 | 24 | If you are making a pull request on behalf of someone else but you had no part in designing the 25 | feature, you can remove yourself with the above syntax. 26 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | All documents in this Repository are licensed by contributors under the [W3C Document 2 | License](http://www.w3.org/Consortium/Legal/copyright-documents). 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Controls List API 2 | 3 | ## Problem Statement 4 | 5 | The Web platform offers two solutions for websites with regards to media controls: 6 | * use the browser provided ones (aka. native controls) without any control of the available features, user experience or UI; 7 | * implement custom controls which creates complexity, maintainance burden and isn't future forward. 8 | 9 | This situation pushes websites to extreme: they have to either not care about their media controls experience or have to fully commit to it. This lack of middle ground pushes websites to use custom controls as soon as they have one need that isn't compatible with the default browser experience. This is harming the ecosystem because custom controls can often offer lower quality implementation and prevents the browser from creating a homogenious experience for its users or integrate new system features into the website controls. 10 | 11 | # Main Requirements 12 | 13 | This API is intended to help solve part of this problem by providing a solution for websites not interested to implement their own media controls but still interested to tailor the experience for their users. It will not offer an API for websites to customise the look and feel of the control but will allow them to pick which components of the controls should be available to the users. 14 | 15 | ## Solution outline 16 | 17 | The solution is described in details in the [explainer](explainer.md). 18 | 19 | It is introducing a new attribute, `controlslist` that allows websites to blacklist or whitelist controls that should appear. The solution is meant to be incremental and start by only blacklisting of a few components and add more as requirements emerge. 20 | 21 | ## Proposed spec change 22 | 23 | There's a [pull request](https://github.com/whatwg/html/pull/6715) to the WHATWG HTML spec and the [build](https://wicg.github.io/controls-list/html-output/multipage/embedded-content.html#attr-media-controlslist) of the spec with the change. 24 | -------------------------------------------------------------------------------- /explainer.md: -------------------------------------------------------------------------------- 1 | # HTMLMediaElement controlsList explained 2 | 3 | ## [Pull request to whatwg/html](https://github.com/whatwg/html/pull/2426) 4 | 5 | ## Objective 6 | 7 | Offers a way to control the native controls elements/buttons that are being 8 | shown by the user agent in order to be able to remove some features that do not 9 | make sense or are not part of the expected user experience or only allowlist a 10 | limited amount of features. 11 | 12 | ## Background 13 | 14 | The current control web developers have over the `HTMLMediaElement` controls is 15 | via the `controls` attribute which is a boolean attribute. In other words, web 16 | developers can tell the user agent whether controls should be shown. 17 | Historically, specific use cases have been handled with "custom controls" which 18 | are implemented by having no native controls a set of elements added on top of 19 | the video. 20 | 21 | With the media experience on the web getting richer, more controls are being 22 | added to the native user agent controls. These controls sometimes can look out 23 | of place or not work properly. For example, fullscreen and remote playback 24 | buttons might not always make sense. Similarly, browser adding download buttons 25 | have to implement heuristics that might sometimes fail, thus add a button that 26 | will not download usable content. Switching to custom controls can be a hard 27 | change for websites and their users, requiring user experience analysis, 28 | cross-browser implementation and accessibility considerations. Furthermore, 29 | native controls help user agents to build a tailored experience to their users 30 | based on their environment, their device and their habits in a way that custom 31 | controls can’t always achieve. 32 | 33 | ## Design 34 | 35 | The proposed design is to have a allowlist/blocklist ability on native controls 36 | with the ability to set them directly from HTML content. A new content attribute 37 | `controlslist` is to be added as a space separated list of keywords being 38 | reflected as `controlsList`, having an effect only if the `controls` attribute 39 | is set. 40 | 41 | ### Blocklisting 42 | 43 | The main use case is to able to remove some features/elements from the native 44 | controls. Blocklisting elements could be done with keywords starting with `no` 45 | such as `nofullscreen` or `nodownload`. For example, `controlslist="nofullscreen 46 | nodownload"`. It would tell the user agent to show the usual native control 47 | without a fullscreen nor a download button. 48 | 49 | ### Allowlisting 50 | 51 | A less common use case that could be resolved within the scope of this API 52 | change would be to allow a website to specify the exhaustive list of controls to 53 | show. In order to do so, the list of keywords will have to only contain 54 | allowlisted elements (without a no prefix). For example, `controlslist="play 55 | timeline volume"` would allow a website to request the user agent to show native 56 | controls with only a play button, a timeline, and a volume control. 57 | 58 | The allowlisting proposal is here for completeness. The feature can be 59 | implemented and specified incrementally, allowing only for blocklisting of some 60 | elements to be supported first. 61 | 62 | ### Edge cases 63 | 64 | Blocklisting could be done such as no button would be visible. The specification 65 | should disallow this by either enforcing the play/pause button to always be 66 | available or by adding a play/pause button if all the elements have been 67 | removed. 68 | 69 | Blocklist and allowlists can technically be put together (ie. 70 | `controlslist="play nodownload"`). In the spirit of blocklisting being the main 71 | feature of this proposal, blocklisting should always be used if one element is 72 | blocklisted, thus ignoring all allowlist keywords. 73 | 74 | ### Backward compatibility 75 | 76 | The backward compatibility will be preserved given that a user agent that does 77 | not support the `controlsList` feature will just ignore 78 | `controlslist="foo bar"`. 79 | 80 | ### Keywords and feature detection 81 | 82 | The available keywords should be defined per spec. The `controlsList` will 83 | reflect the controls attribute as a `DOMTokenList` for which the supported 84 | tokens will be the keywords (eg. `nodownload`). The available keywords should be 85 | defined in the specification but some user agents might not support some of 86 | them. For example, a remote feature might not be implemented by all user agents. 87 | Looking at the `controlsList` tokens will allow authors to do feature detection. 88 | 89 | ### Incremental 90 | 91 | The feature is meant to be implemented and designed incrementally. The ability 92 | to blocklist buttons is the main focus of this proposal and should be able to 93 | work independently of the allowlist approach. In addition, all buttons are not 94 | supposed to be supported initially. The spirit being that keywords should be 95 | added to the specification with user agents implementing support for 96 | blocklisting of new parts of the native controls. 97 | 98 | ### IDL and attribute reflection 99 | 100 | ```javascript 101 | partial interface HTMLMediaElement { 102 | [SameObject, PutForwards=value] readonly attribute DOMTokenList controlsList; 103 | }; 104 | ``` 105 | 106 | The `controlsList` property will [reflect](https://html.spec.whatwg.org/multipage/infrastructure.html#reflect) 107 | the `controlslist` attribute as a `DOMTokenList` with a list of [supported 108 | tokens](https://dom.spec.whatwg.org/#concept-supported-tokens). 109 | 110 | ### Examples 111 | 112 | Usage in HTML: 113 | ```html 114 | 115 | ``` 116 | 117 | Usage in Javascript: 118 | ```javascript 119 | var video = document.querySelector('video'); 120 | video.controls; // true 121 | video.controlsList; // "nofullscreen nodownload noremoteplayback noplaybackrate" - "foobar" not present 122 | video.controlsList.remove('noremoteplayback'); 123 | video.controlsList; // "nofullscreen nodownload noplaybackrate" - "noremoteplayback" not present 124 | video.getAttribute('controlslist'); // "nofullscreen nodownload noplaybackrate" 125 | ``` 126 | -------------------------------------------------------------------------------- /html-output/.htaccess: -------------------------------------------------------------------------------- 1 | AddDefaultCharset utf-8 2 | AddCharset utf-8 .css .js .json 3 | Redirect 301 /complete.html / 4 | Redirect 301 /complete / 5 | Redirect 301 /index / 6 | Redirect 301 /C /multipage/ 7 | Redirect 301 /multipage/entities.json /entities.json 8 | Redirect 301 /multipage/images/ /images/ 9 | Redirect 301 /multipage/link-fixup.js /link-fixup.js 10 | ErrorDocument 404 /404.html 11 | 12 | 13 | Header add Content-Disposition "inline; filename=html-standard.pdf" 14 | 15 | 16 | # Previously-generated filenames for /multipage/ that do not redirect via script: 17 | Redirect 301 /multipage/embedded-content-0.html /multipage/embedded-content.html 18 | Redirect 301 /multipage/scripting-1.html /multipage/scripting.html 19 | Redirect 301 /multipage/tabular-data.html /multipage/tables.html 20 | 21 | # Previously-generated filenames for /multipage/ that are better to end in a 404 and let redirect 22 | # via script: 23 | # * Redirect 301 /multipage/common-input-element-attributes.html /multipage/forms.html 24 | # * Redirect 301 /multipage/dnd.html /multipage/interaction.html 25 | # * Redirect 301 /multipage/editing.html /multipage/interaction.html 26 | # * Redirect 301 /multipage/edits.html /multipage/semantics.html 27 | # * Redirect 301 /multipage/history.html /multipage/browsers.html 28 | # * Redirect 301 /multipage/links.html /multipage/semantics.html 29 | # * Redirect 301 /multipage/named-character-references.html /multipage/syntax.html 30 | # * Redirect 301 /multipage/offline.html /multipage/browsers.html 31 | # * Redirect 301 /multipage/sections.html /multipage/semantics.html 32 | # * Redirect 301 /multipage/states-of-the-type-attribute.html /multipage/forms.html 33 | # * Redirect 301 /multipage/text-level-semantics.html /multipage/semantics.html 34 | # * Redirect 301 /multipage/the-canvas-element.html /multipage/scripting.html 35 | # * Redirect 301 /multipage/the-end.html /multipage/syntax.html 36 | # * Redirect 301 /multipage/the-iframe-element.html /multipage/embedded-content.html 37 | # * Redirect 301 /multipage/the-input-element.html /multipage/forms.html 38 | # * Redirect 301 /multipage/the-map-element.html /multipage/embedded-content.html 39 | # * Redirect 301 /multipage/the-video-element.html /multipage/embedded-content.html 40 | # * Redirect 301 /multipage/the-xhtml-syntax.html /multipage/xhtml.html 41 | # * Redirect 301 /multipage/tree-construction.html /multipage/syntax.html 42 | # * Redirect 301 /multipage/video.html /multipage/embedded-content.html 43 | 44 | # Intentionally deleted previously-generated filenames for /multipage/: 45 | Redirect 410 /multipage/section-sql.html 46 | 47 | # Images converted to svg: 48 | Redirect 301 /images/content-venn.png /images/content-venn.svg 49 | Redirect 301 /images/parsing-model-overview.png /images/parsing-model-overview.svg 50 | Redirect 301 /images/sample-email-1.png /images/sample-email-1.svg 51 | Redirect 301 /images/sample-email-2.png /images/sample-email-2.svg 52 | Redirect 301 /images/sample-url.png /images/sample-url.svg 53 | -------------------------------------------------------------------------------- /html-output/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 404 Not Found 4 | 8 | 9 | 10 |
11 |

Loading...

12 |
13 |
14 |

Not Found

15 |

The page you are looking for is no longer available at this URL.

16 |

Links to the multipage version of the specification are 17 | unfortunately likely to break over time. You might be able to find 18 | what you want from the contents page.

19 |

If you have found a broken link on the WHATWG site itself, please 20 | e-mail Ian Hickson. If you found a 21 | broken link from another site pointing to the WHATWG site, please 22 | let that site know of the problem instead. Thanks!

23 |
24 | -------------------------------------------------------------------------------- /html-output/demos/canvas/blue-robot/blue-robot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/demos/canvas/blue-robot/blue-robot.png -------------------------------------------------------------------------------- /html-output/demos/canvas/blue-robot/index-idle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Blue Robot Demo 4 | 9 | 10 | 79 | 135 | 180 |

181 | 182 | 183 |

189 | -------------------------------------------------------------------------------- /html-output/demos/canvas/blue-robot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Blue Robot Demo 4 | 9 | 10 | 79 | 135 | 155 |

156 | 157 | 158 |

164 | -------------------------------------------------------------------------------- /html-output/demos/offline/clock/clock.appcache: -------------------------------------------------------------------------------- 1 | CACHE MANIFEST 2 | clock2.html 3 | clock.css 4 | clock.js 5 | -------------------------------------------------------------------------------- /html-output/demos/offline/clock/clock.css: -------------------------------------------------------------------------------- 1 | /* clock.css */ 2 | output { font: 2em sans-serif; } 3 | -------------------------------------------------------------------------------- /html-output/demos/offline/clock/clock.js: -------------------------------------------------------------------------------- 1 | /* clock.js */ 2 | setInterval(function () { 3 | document.getElementById('clock').value = new Date(); 4 | }, 1000); 5 | -------------------------------------------------------------------------------- /html-output/demos/offline/clock/clock1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Clock 7 | 8 | 9 | 10 | 11 |

The time is:

12 | 13 | 14 | -------------------------------------------------------------------------------- /html-output/demos/offline/clock/clock2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Clock 7 | 8 | 9 | 10 | 11 |

The time is:

12 | 13 | 14 | -------------------------------------------------------------------------------- /html-output/demos/workers/crypto/libcrypto-v1.js: -------------------------------------------------------------------------------- 1 | function handleMessage(e) { 2 | if (e.data == "genkeys") 3 | genkeys(e.ports[0]); 4 | else if (e.data == "encrypt") 5 | encrypt(e.ports[0]); 6 | else if (e.data == "decrypt") 7 | decrypt(e.ports[0]); 8 | } 9 | 10 | function genkeys(p) { 11 | var keys = _generateKeyPair(); 12 | p.postMessage(keys[0]); 13 | p.postMessage(keys[1]); 14 | } 15 | 16 | function encrypt(p) { 17 | var key, state = 0; 18 | p.onmessage = function (e) { 19 | if (state == 0) { 20 | key = e.data; 21 | state = 1; 22 | } else { 23 | p.postMessage(_encrypt(key, e.data)); 24 | } 25 | }; 26 | } 27 | 28 | function decrypt(p) { 29 | var key, state = 0; 30 | p.onmessage = function (e) { 31 | if (state == 0) { 32 | key = e.data; 33 | state = 1; 34 | } else { 35 | p.postMessage(_decrypt(key, e.data)); 36 | } 37 | }; 38 | } 39 | 40 | // support being used as a shared worker as well as a dedicated worker 41 | if ('onmessage' in this) // dedicated worker 42 | onmessage = handleMessage; 43 | else // shared worker 44 | onconnect = function (e) { e.port.onmessage = handleMessage; } 45 | 46 | 47 | // the "crypto" functions: 48 | 49 | function _generateKeyPair() { 50 | return [Math.random(), Math.random()]; 51 | } 52 | 53 | function _encrypt(k, s) { 54 | return 'encrypted-' + k + ' ' + s; 55 | } 56 | 57 | function _decrypt(k, s) { 58 | return s.substr(s.indexOf(' ')+1); 59 | } 60 | -------------------------------------------------------------------------------- /html-output/demos/workers/crypto/libcrypto-v2-decryptor.js: -------------------------------------------------------------------------------- 1 | onmessage = function (e) { 2 | var key = e.data; 3 | e.ports[0].onmessage = function (e) { 4 | var s = e.data; 5 | postMessage(_decrypt(key, s)); 6 | } 7 | } 8 | 9 | function _decrypt(k, s) { 10 | return s.substr(s.indexOf(' ')+1); 11 | } 12 | -------------------------------------------------------------------------------- /html-output/demos/workers/crypto/libcrypto-v2-encryptor.js: -------------------------------------------------------------------------------- 1 | onmessage = function (e) { 2 | var key = e.data; 3 | e.ports[0].onmessage = function (e) { 4 | var s = e.data; 5 | postMessage(_encrypt(key, s)); 6 | } 7 | } 8 | 9 | function _encrypt(k, s) { 10 | return 'encrypted-' + k + ' ' + s; 11 | } 12 | -------------------------------------------------------------------------------- /html-output/demos/workers/crypto/libcrypto-v2-generator.js: -------------------------------------------------------------------------------- 1 | onmessage = function (e) { 2 | var k = _generateKeyPair(); 3 | e.ports[0].postMessage(k[0]); 4 | e.ports[0].postMessage(k[1]); 5 | close(); 6 | } 7 | 8 | function _generateKeyPair() { 9 | return [Math.random(), Math.random()]; 10 | } 11 | -------------------------------------------------------------------------------- /html-output/demos/workers/crypto/libcrypto-v2.js: -------------------------------------------------------------------------------- 1 | function handleMessage(e) { 2 | if (e.data == "genkeys") 3 | genkeys(e.ports[0]); 4 | else if (e.data == "encrypt") 5 | encrypt(e.ports[0]); 6 | else if (e.data == "decrypt") 7 | decrypt(e.ports[0]); 8 | } 9 | 10 | function genkeys(p) { 11 | var generator = new Worker('libcrypto-v2-generator.js'); 12 | generator.postMessage('', [p]); 13 | } 14 | 15 | function encrypt(p) { 16 | p.onmessage = function (e) { 17 | var key = e.data; 18 | var encryptor = new Worker('libcrypto-v2-encryptor.js'); 19 | encryptor.postMessage(key, [p]); 20 | }; 21 | } 22 | 23 | function encrypt(p) { 24 | p.onmessage = function (e) { 25 | var key = e.data; 26 | var decryptor = new Worker('libcrypto-v2-decryptor.js'); 27 | decryptor.postMessage(key, [p]); 28 | }; 29 | } 30 | 31 | // support being used as a shared worker as well as a dedicated worker 32 | if ('onmessage' in this) // dedicated worker 33 | onmessage = handleMessage; 34 | else // shared worker 35 | onconnect = function (e) { e.ports[0].onmessage = handleMessage }; 36 | -------------------------------------------------------------------------------- /html-output/demos/workers/crypto/page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Worker example: Crypto library 6 | 37 | 40 | 41 | 42 |
43 | Keys 44 |

45 |

46 |
47 |

48 |

49 | 50 | 51 | -------------------------------------------------------------------------------- /html-output/demos/workers/modules/filters.js: -------------------------------------------------------------------------------- 1 | export function none() {} 2 | 3 | export function grayscale({ data: d }) { 4 | for (let i = 0; i < d.length; i += 4) { 5 | const [r, g, b] = [d[i], d[i + 1], d[i + 2]]; 6 | 7 | // CIE luminance for the RGB 8 | // The human eye is bad at seeing red and blue, so we de-emphasize them. 9 | d[i] = d[i + 1] = d[i + 2] = 0.2126 * r + 0.7152 * g + 0.0722 * b; 10 | } 11 | }; 12 | 13 | export function brighten({ data: d }) { 14 | for (let i = 0; i < d.length; ++i) { 15 | d[i] *= 1.2; 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /html-output/demos/workers/modules/page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Worker example: image decoding 4 | 5 | 14 | 15 | 23 | 24 | 65 | -------------------------------------------------------------------------------- /html-output/demos/workers/modules/worker.js: -------------------------------------------------------------------------------- 1 | import * as filters from "./filters.js"; 2 | 3 | self.onmessage = e => { 4 | const { imageData, filter } = e.data; 5 | filters[filter](imageData); 6 | self.postMessage(imageData, [imageData.data.buffer]); 7 | }; 8 | -------------------------------------------------------------------------------- /html-output/demos/workers/multicore/core.js: -------------------------------------------------------------------------------- 1 | var start; 2 | onmessage = getStart; 3 | function getStart(event) { 4 | start = 1*event.data; 5 | onmessage = getEnd; 6 | } 7 | 8 | var end; 9 | function getEnd(event) { 10 | end = 1*event.data; 11 | onmessage = null; 12 | work(); 13 | } 14 | 15 | function work() { 16 | var result = 0; 17 | for (var i = start; i < end; i += 1) { 18 | // perform some complex calculation here 19 | result += 1; 20 | } 21 | postMessage(result); 22 | close(); 23 | } 24 | -------------------------------------------------------------------------------- /html-output/demos/workers/multicore/page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Worker example: Multicore computation 6 | 7 | 8 |

Result:

9 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /html-output/demos/workers/multicore/worker.js: -------------------------------------------------------------------------------- 1 | // settings 2 | var num_workers = 10; 3 | var items_per_worker = 1000000; 4 | 5 | // start the workers 6 | var result = 0; 7 | var pending_workers = num_workers; 8 | for (var i = 0; i < num_workers; i += 1) { 9 | var worker = new Worker('core.js'); 10 | worker.postMessage(i * items_per_worker); 11 | worker.postMessage((i+1) * items_per_worker); 12 | worker.onmessage = storeResult; 13 | } 14 | 15 | // handle the results 16 | function storeResult(event) { 17 | result += 1*event.data; 18 | pending_workers -= 1; 19 | if (pending_workers <= 0) 20 | postMessage(result); // finished! 21 | } 22 | -------------------------------------------------------------------------------- /html-output/demos/workers/multiviewer/page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Workers example: Multiviewer 6 | 11 | 12 | 13 |

15 |

Each viewer opens in a new window. You can have as many viewers 16 | as you like, they all view the same data.

17 | 18 | 19 | -------------------------------------------------------------------------------- /html-output/demos/workers/multiviewer/viewer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Workers example: Multiviewer viewer 6 | 108 | 109 | 110 |

Viewer

111 |

Map

112 |

113 |

114 | 115 | 116 | 117 | 118 | 119 | 120 |

121 |

Public Chat

122 |
123 |
124 |

125 | 126 | 127 |

128 |
129 |

Private Chat

130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /html-output/demos/workers/multiviewer/worker.js: -------------------------------------------------------------------------------- 1 | 2 | var nextName = 0; 3 | function getNextName() { 4 | // this could use more friendly names 5 | // but for now just return a number 6 | return nextName++; 7 | } 8 | 9 | var map = [ 10 | [0, 0, 0, 0, 0, 0, 0], 11 | [1, 1, 0, 1, 0, 1, 1], 12 | [0, 1, 0, 1, 0, 0, 0], 13 | [0, 1, 0, 1, 0, 1, 1], 14 | [0, 0, 0, 1, 0, 0, 0], 15 | [1, 0, 0, 1, 1, 1, 1], 16 | [1, 1, 0, 1, 1, 0, 1], 17 | ]; 18 | 19 | function wrapX(x) { 20 | if (x < 0) return wrapX(x + map[0].length); 21 | if (x >= map[0].length) return wrapX(x - map[0].length); 22 | return x; 23 | } 24 | 25 | function wrapY(y) { 26 | if (y < 0) return wrapY(y + map.length); 27 | if (y >= map[0].length) return wrapY(y - map.length); 28 | return y; 29 | } 30 | 31 | function wrap(val, min, max) { 32 | if (val < min) 33 | return val + (max-min)+1; 34 | if (val > max) 35 | return val - (max-min)-1; 36 | return val; 37 | } 38 | 39 | function sendMapData(viewer) { 40 | var data = ''; 41 | for (var y = viewer.y-1; y <= viewer.y+1; y += 1) { 42 | for (var x = viewer.x-1; x <= viewer.x+1; x += 1) { 43 | if (data != '') 44 | data += ','; 45 | data += map[wrap(y, 0, map[0].length-1)][wrap(x, 0, map.length-1)]; 46 | } 47 | } 48 | viewer.port.postMessage('map ' + data); 49 | } 50 | 51 | var viewers = {}; 52 | onconnect = function (event) { 53 | var name = getNextName(); 54 | event.ports[0]._data = { port: event.ports[0], name: name, x: 0, y: 0, }; 55 | viewers[name] = event.ports[0]._data; 56 | event.ports[0].postMessage('cfg ' + name); 57 | event.ports[0].onmessage = getMessage; 58 | sendMapData(event.ports[0]._data); 59 | }; 60 | 61 | function getMessage(event) { 62 | switch (event.data.substr(0, 4)) { 63 | case 'mov ': 64 | var direction = event.data.substr(4); 65 | var dx = 0; 66 | var dy = 0; 67 | switch (direction) { 68 | case 'up': dy = -1; break; 69 | case 'down': dy = 1; break; 70 | case 'left': dx = -1; break; 71 | case 'right': dx = 1; break; 72 | } 73 | event.target._data.x = wrapX(event.target._data.x + dx); 74 | event.target._data.y = wrapY(event.target._data.y + dy); 75 | sendMapData(event.target._data); 76 | break; 77 | case 'set ': 78 | var value = event.data.substr(4); 79 | map[event.target._data.y][event.target._data.x] = value; 80 | for (var viewer in viewers) 81 | sendMapData(viewers[viewer]); 82 | break; 83 | case 'txt ': 84 | var name = event.target._data.name; 85 | var message = event.data.substr(4); 86 | for (var viewer in viewers) 87 | viewers[viewer].port.postMessage('txt ' + name + ' ' + message); 88 | break; 89 | case 'msg ': 90 | var party1 = event.target._data; 91 | var party2 = viewers[event.data.substr(4).split(' ', 1)[0]]; 92 | if (party2) { 93 | var channel = new MessageChannel(); 94 | party1.port.postMessage('msg ' + party2.name, [channel.port1]); 95 | party2.port.postMessage('msg ' + party1.name, [channel.port2]); 96 | } 97 | break; 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /html-output/demos/workers/primes/page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Worker example: One-core computation 6 | 7 | 8 |

The highest prime number discovered so far is:

9 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /html-output/demos/workers/primes/worker.js: -------------------------------------------------------------------------------- 1 | var n = 1; 2 | search: while (true) { 3 | n += 1; 4 | for (var i = 2; i <= Math.sqrt(n); i += 1) 5 | if (n % i == 0) 6 | continue search; 7 | // found a prime! 8 | postMessage(n); 9 | } 10 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/001/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Shared workers: demo 1 4 |
Log:
5 | 12 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/001/test.js: -------------------------------------------------------------------------------- 1 | onconnect = function(e) { 2 | var port = e.ports[0]; 3 | port.postMessage('Hello World!'); 4 | } 5 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/002/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Shared workers: demo 2 4 |
Log:
5 | 14 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/002/test.js: -------------------------------------------------------------------------------- 1 | onconnect = function(e) { 2 | var port = e.ports[0]; 3 | port.postMessage('Hello World!'); 4 | port.onmessage = function(e) { 5 | port.postMessage('pong'); // not e.ports[0].postMessage! 6 | // e.target.postMessage('pong'); would work also 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/003/inner.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Shared workers: demo 3 inner frame 4 |
Inner log:
5 | 12 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/003/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Shared workers: demo 3 4 |
Log:
5 | 14 | 15 | -------------------------------------------------------------------------------- /html-output/demos/workers/shared/003/test.js: -------------------------------------------------------------------------------- 1 | var count = 0; 2 | onconnect = function(e) { 3 | count += 1; 4 | var port = e.ports[0]; 5 | port.postMessage('Hello World! You are connection #' + count); 6 | port.onmessage = function(e) { 7 | port.postMessage('pong'); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /html-output/demos/workers/stocks/io.js: -------------------------------------------------------------------------------- 1 | function get(url) { 2 | try { 3 | var xhr = new XMLHttpRequest(); 4 | xhr.open('GET', url, false); 5 | xhr.send(); 6 | return xhr.responseText; 7 | } catch (e) { 8 | return ''; // turn all errors into empty results 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /html-output/demos/workers/stocks/page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Worker example: Stock ticker 6 | 23 | 24 | 25 | 26 |

27 | 35 |

36 | 37 | 56 |

(The data in this example is not real. Try searching for "Google" or "Apple".)

57 | 58 | 59 | -------------------------------------------------------------------------------- /html-output/demos/workers/stocks/search.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -wT 2 | use strict; 3 | my $query = $ENV{QUERY_STRING}; 4 | 5 | print "Content-Type: text/plain\r\n\r\n"; 6 | 7 | my $symbols = { 8 | 'Goodger' => 'GOAT', 9 | 'Google' => 'GOOG', 10 | 'Go' => 'GO', 11 | 'Activision' => 'ATVI', 12 | 'Apple' => 'AAPL', 13 | 'Applications' => 'APLS', 14 | 'Cats' => 'MOWMOW', 15 | }; 16 | 17 | foreach my $key (values %$symbols) { 18 | $symbols->{$key} = $key; 19 | } 20 | 21 | my $results = {}; 22 | 23 | # 'GOAT' matches 'GOO' because it actually matches 'Goodger' 24 | 25 | foreach my $key (keys %$symbols) { 26 | if (lc substr($key, 0, length($query)) eq lc $query) { 27 | $results->{$symbols->{$key}} = 1; 28 | } 29 | } 30 | 31 | my @results = sort keys %$results; 32 | 33 | print join(' ', @results); 34 | -------------------------------------------------------------------------------- /html-output/demos/workers/stocks/searcher.js: -------------------------------------------------------------------------------- 1 | importScripts('io.js'); 2 | onmessage = function (event) { 3 | postMessage(get('search.cgi?' + event.data)); 4 | }; 5 | -------------------------------------------------------------------------------- /html-output/demos/workers/stocks/stock.cgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -wT 2 | use strict; 3 | my $stock = $ENV{QUERY_STRING}; 4 | 5 | print "Content-Type: text/plain\r\n\r\n"; 6 | 7 | my $data = { 8 | 'GOAT' => 1000, 9 | 'GOOG' => 600, 10 | 'GO' => 300, 11 | 'ATVI' => 100, 12 | 'AAPL' => 200, 13 | 'APLS' => 1, 14 | 'MOWMOW' => 10000, 15 | }; 16 | 17 | if (exists($data->{$stock})) { 18 | print $data->{$stock} * (rand()+0.5); 19 | } else { 20 | print 0; 21 | } 22 | -------------------------------------------------------------------------------- /html-output/demos/workers/stocks/ticker.js: -------------------------------------------------------------------------------- 1 | importScripts('io.js'); 2 | var timer; 3 | var symbol; 4 | function update() { 5 | postMessage(symbol + ' ' + get('stock.cgi?' + symbol)); 6 | timer = setTimeout(update, 10000); 7 | } 8 | onmessage = function (event) { 9 | if (timer) 10 | clearTimeout(timer); 11 | symbol = event.data; 12 | update(); 13 | }; 14 | -------------------------------------------------------------------------------- /html-output/fonts/.htaccess: -------------------------------------------------------------------------------- 1 | ExpiresActive on 2 | ExpiresDefault A6048000 3 | Header set Cache-Control "public" 4 | -------------------------------------------------------------------------------- /html-output/fonts/Essays1743-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/fonts/Essays1743-Bold.ttf -------------------------------------------------------------------------------- /html-output/fonts/Essays1743-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/fonts/Essays1743-BoldItalic.ttf -------------------------------------------------------------------------------- /html-output/fonts/Essays1743-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/fonts/Essays1743-Italic.ttf -------------------------------------------------------------------------------- /html-output/fonts/Essays1743.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/fonts/Essays1743.ttf -------------------------------------------------------------------------------- /html-output/images/.htaccess: -------------------------------------------------------------------------------- 1 | ExpiresActive on 2 | ExpiresDefault A604800 3 | Header set Cache-Control "public" 4 | -------------------------------------------------------------------------------- /html-output/images/abstract.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/abstract.jpeg -------------------------------------------------------------------------------- /html-output/images/abstract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/abstract.png -------------------------------------------------------------------------------- /html-output/images/arc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/arc1.png -------------------------------------------------------------------------------- /html-output/images/arcTo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/arcTo1.png -------------------------------------------------------------------------------- /html-output/images/arcTo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/arcTo2.png -------------------------------------------------------------------------------- /html-output/images/arcTo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/arcTo3.png -------------------------------------------------------------------------------- /html-output/images/asyncdefer.svg: -------------------------------------------------------------------------------- 1 | 2 | 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 | <script> 98 | 99 | 100 | Scripting: 101 | HTML Parser: 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | <script defer> 113 | 114 | 115 | Scripting: 116 | HTML Parser: 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | <script async> 126 | 127 | 128 | Scripting: 129 | HTML Parser: 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | <script type="module"> 141 | 142 | 143 | Scripting: 144 | HTML Parser: 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | <script type="module" async> 159 | 160 | 161 | Scripting: 162 | HTML Parser: 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | parser 180 | 181 | 182 | fetch 183 | 184 | 185 | execution 186 | 187 | 188 | runtime → 189 | 190 | -------------------------------------------------------------------------------- /html-output/images/baselines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/baselines.png -------------------------------------------------------------------------------- /html-output/images/bidiselect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/bidiselect.png -------------------------------------------------------------------------------- /html-output/images/content-venn.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 |
21 |

Flow content

22 |
    23 |
  • a
  • 24 |
  • abbr
  • 25 |
  • address
  • 26 |
  • area*
  • 27 |
  • article
  • 28 |
  • aside
  • 29 |
  • audio
  • 30 |
  • b
  • 31 |
  • bdi
  • 32 |
  • bdo
  • 33 |
  • blockquote
  • 34 |
  • br
  • 35 |
  • button
  • 36 |
  • canvas
  • 37 |
  • cite
  • 38 |
  • code
  • 39 |
  • data
  • 40 |
  • date
  • 41 |
  • datalist
  • 42 |
  • del
  • 43 |
  • details
  • 44 |
  • dfn
  • 45 |
  • dialog
  • 46 |
  • div
  • 47 |
  • dl
  • 48 |
  • em
  • 49 |
  • embed
  • 50 |
  • fieldset
  • 51 |
  • figure
  • 52 |
  • footer
  • 53 |
  • form
  • 54 |
  • h1
  • 55 |
  • h2
  • 56 |
  • h3
  • 57 |
  • h4
  • 58 |
  • h5
  • 59 |
  • h6
  • 60 |
  • header
  • 61 |
  • hgroup
  • 62 |
  • hr
  • 63 |
  • i
  • 64 |
  • iframe
  • 65 |
  • img
  • 66 |
  • input
  • 67 |
  • ins
  • 68 |
  • kbd
  • 69 |
  • keygen
  • 70 |
  • label
  • 71 |
  • link*
  • 72 |
  • main
  • 73 |
  • map
  • 74 |
  • mark
  • 75 |
  • math
  • 76 |
  • menu
  • 77 |
  • meta*
  • 78 |
  • meter
  • 79 |
  • nav
  • 80 |
  • noscript
  • 81 |
  • object
  • 82 |
  • ol
  • 83 |
  • output
  • 84 |
  • p
  • 85 |
  • picture
  • 86 |
  • pre
  • 87 |
  • progress
  • 88 |
  • q
  • 89 |
  • ruby
  • 90 |
  • s
  • 91 |
  • samp
  • 92 |
  • script
  • 93 |
  • section
  • 94 |
  • select
  • 95 |
  • slot
  • 96 |
  • small
  • 97 |
  • span
  • 98 |
  • strong
  • 99 |
  • sub
  • 100 |
  • sup
  • 101 |
  • svg
  • 102 |
  • table
  • 103 |
  • template
  • 104 |
  • textarea
  • 105 |
  • time
  • 106 |
  • u
  • 107 |
  • ul
  • 108 |
  • var
  • 109 |
  • video
  • 110 |
  • wbr
  • 111 |
  • autonomous custom elements
  • 112 |
  • Text*
  • 113 |
114 |

* Under certain circumstances (see prose).

115 |
116 |
117 | Flow 118 |
119 | 120 | 121 | 122 |
123 |

Heading content

124 |
    125 |
  • h1
  • 126 |
  • h2
  • 127 |
  • h3
  • 128 |
  • h4
  • 129 |
  • h5
  • 130 |
  • h6
  • 131 |
  • hgroup
  • 132 |
133 |
134 |
135 | Heading 136 |
137 | 138 | 139 | 140 |
141 |

Sectioning content

142 |
    143 |
  • article
  • 144 |
  • aside
  • 145 |
  • nav
  • 146 |
  • section
  • 147 |
148 |
149 |
150 | Sectioning 151 |
152 | 153 | 154 | 155 |
156 |

Metadata content

157 |
    158 |
  • base
  • 159 |
  • link
  • 160 |
  • meta
  • 161 |
  • noscript
  • 162 |
  • script
  • 163 |
  • style
  • 164 |
  • template
  • 165 |
  • title
  • 166 |
167 |
168 |
169 | Metadata 170 |
171 | 172 | 173 | 174 |
175 |

Interactive content

176 |
    177 |
  • a*
  • 178 |
  • audio*
  • 179 |
  • button
  • 180 |
  • details
  • 181 |
  • embed
  • 182 |
  • iframe
  • 183 |
  • img*
  • 184 |
  • input*
  • 185 |
  • keygen
  • 186 |
  • label
  • 187 |
  • object*
  • 188 |
  • select
  • 189 |
  • textarea
  • 190 |
  • video*
  • 191 |
192 |

* Under certain circumstances.

193 |
194 |
195 | Interactive 196 |
197 | 198 | 199 | 200 |
201 |

Phrasing content

202 |
    203 |
  • a*
  • 204 |
  • abbr
  • 205 |
  • area*
  • 206 |
  • audio
  • 207 |
  • b
  • 208 |
  • bdi
  • 209 |
  • bdo
  • 210 |
  • br
  • 211 |
  • button
  • 212 |
  • canvas
  • 213 |
  • cite
  • 214 |
  • code
  • 215 |
  • data
  • 216 |
  • date
  • 217 |
  • datalist
  • 218 |
  • del*
  • 219 |
  • dfn
  • 220 |
  • em
  • 221 |
  • embed
  • 222 |
  • i
  • 223 |
  • iframe
  • 224 |
  • img
  • 225 |
  • input
  • 226 |
  • ins*
  • 227 |
  • kbd
  • 228 |
  • keygen
  • 229 |
  • label
  • 230 |
  • link*
  • 231 |
  • map*
  • 232 |
  • mark
  • 233 |
  • math
  • 234 |
  • meta*
  • 235 |
  • meter
  • 236 |
  • noscript
  • 237 |
  • object
  • 238 |
  • output
  • 239 |
  • picture
  • 240 |
  • progress
  • 241 |
  • q
  • 242 |
  • ruby
  • 243 |
  • s
  • 244 |
  • samp
  • 245 |
  • script
  • 246 |
  • select
  • 247 |
  • slot
  • 248 |
  • small
  • 249 |
  • span
  • 250 |
  • strong
  • 251 |
  • sub
  • 252 |
  • sup
  • 253 |
  • svg
  • 254 |
  • template
  • 255 |
  • textarea
  • 256 |
  • time
  • 257 |
  • u
  • 258 |
  • var
  • 259 |
  • video
  • 260 |
  • wbr
  • 261 |
  • autonomous custom elements
  • 262 |
  • Text*
  • 263 |
264 |

* Under certain circumstances; see prose.

265 |
266 |
267 | Phrasing 268 |
269 | 270 | 271 | 272 |
273 |

Embedded content

274 |
    275 |
  • audio
  • 276 |
  • canvas
  • 277 |
  • embed
  • 278 |
  • iframe
  • 279 |
  • img
  • 280 |
  • math
  • 281 |
  • object
  • 282 |
  • picture
  • 283 |
  • svg
  • 284 |
  • video
  • 285 |
286 |
287 |
288 | Embedded 289 |
290 |
291 | -------------------------------------------------------------------------------- /html-output/images/contextmenu-collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/contextmenu-collapsed.png -------------------------------------------------------------------------------- /html-output/images/contextmenu-expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/contextmenu-expanded.png -------------------------------------------------------------------------------- /html-output/images/custom-element-reactions.svg: -------------------------------------------------------------------------------- 1 | 2 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | custom element 50 | reactions stack 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 | backup element queue 87 | 88 | 89 | 90 | 91 | 92 | 93 | processing backup 94 | element queue flag 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | element queue 107 | 108 | 109 | 110 | 111 | <x-a> 112 | 113 | 114 | 115 | 116 | <x-b> 117 | 118 | 119 | 120 | 121 | <x-c> 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | custom element reaction queue 131 | 132 | 133 | Upgrade 134 | 135 | 136 | 137 | Attribute 138 | changed 139 | 140 | 141 | 142 | Attribute 143 | changed 144 | 145 | 146 | 147 | Connected 148 | 149 | 150 | -------------------------------------------------------------------------------- /html-output/images/drawImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/drawImage.png -------------------------------------------------------------------------------- /html-output/images/fingerprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/fingerprint.png -------------------------------------------------------------------------------- /html-output/images/focus-tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/focus-tree.png -------------------------------------------------------------------------------- /html-output/images/im.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/im.png -------------------------------------------------------------------------------- /html-output/images/kettlebell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/kettlebell.jpg -------------------------------------------------------------------------------- /html-output/images/media-stream-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/media-stream-1.png -------------------------------------------------------------------------------- /html-output/images/media-stream-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/media-stream-2.png -------------------------------------------------------------------------------- /html-output/images/outline.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 15 | HTML: Living Standard — Last Updated 12 August 2016 16 | Table of contents 17 | First section 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /html-output/images/parsing-model-overview.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | Network 30 | 31 | 32 | 33 | 34 | 35 | Byte Stream 36 | Decoder 37 | 38 | 39 | 40 | 41 | 42 | Input Stream 43 | Preprocessor 44 | 45 | 46 | 47 | 48 | 49 | Tokenizer 50 | 51 | 52 | 53 | 54 | 55 | Tree 56 | Construction 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | DOM 66 | 67 | 68 | 69 | 70 | Script 71 | Execution 72 | 73 | 74 | 75 | document.write() 76 | 77 | 78 | -------------------------------------------------------------------------------- /html-output/images/robots.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/robots.jpeg -------------------------------------------------------------------------------- /html-output/images/sample-bdi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-bdi.png -------------------------------------------------------------------------------- /html-output/images/sample-calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-calendar.png -------------------------------------------------------------------------------- /html-output/images/sample-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-card.png -------------------------------------------------------------------------------- /html-output/images/sample-content-handler-registration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-content-handler-registration.png -------------------------------------------------------------------------------- /html-output/images/sample-content-handler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-content-handler.png -------------------------------------------------------------------------------- /html-output/images/sample-datalist.svg: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | function 23 | async function 24 | function* 25 | => 26 | async => 27 | async function* 28 | 29 | 30 | 31 | function 32 | async function 33 | generator function 34 | arrow function 35 | async arrow function 36 | async generator function 37 | 38 | 39 | -------------------------------------------------------------------------------- /html-output/images/sample-details-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-details-1.png -------------------------------------------------------------------------------- /html-output/images/sample-details-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-details-2.png -------------------------------------------------------------------------------- /html-output/images/sample-email-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Send 35 | 36 | 37 | 38 | 39 | Save Now 40 | 41 | 42 | 43 | 44 | Discard 45 | 46 | 47 | To: 48 | 49 | 50 | 51 | 52 | 53 | s| 54 | 55 | 56 | 57 | spider@parker.example.net 58 | scarlet@avengers.example.net 59 | 60 | 61 | 62 | Spider-Man 63 | Scarlet Witch 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /html-output/images/sample-email-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Send 35 | 36 | 37 | 38 | 39 | Save Now 40 | 41 | 42 | 43 | 44 | Discard 45 | 46 | 47 | To: 48 | 49 | 50 | 51 | 52 | 53 | bob@example.net, s| 54 | 55 | 56 | 57 | spider@parker.example.net 58 | scarlet@avengers.example.net 59 | astronomy@science.example.org 60 | astrophy@cute.example 61 | 62 | 63 | 64 | Spider-Man 65 | Scarlet Witch 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /html-output/images/sample-makeapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-makeapp.png -------------------------------------------------------------------------------- /html-output/images/sample-meter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-meter.png -------------------------------------------------------------------------------- /html-output/images/sample-not-bdi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-not-bdi.png -------------------------------------------------------------------------------- /html-output/images/sample-progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-progress.png -------------------------------------------------------------------------------- /html-output/images/sample-range-2a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-range-2a.png -------------------------------------------------------------------------------- /html-output/images/sample-range-2b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-range-2b.png -------------------------------------------------------------------------------- /html-output/images/sample-range-labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-range-labels.png -------------------------------------------------------------------------------- /html-output/images/sample-range-multiple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-range-multiple.png -------------------------------------------------------------------------------- /html-output/images/sample-range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-range.png -------------------------------------------------------------------------------- /html-output/images/sample-ruby-bopomofo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-ruby-bopomofo.png -------------------------------------------------------------------------------- /html-output/images/sample-ruby-ja.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-ruby-ja.png -------------------------------------------------------------------------------- /html-output/images/sample-ruby-pinyin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-ruby-pinyin.png -------------------------------------------------------------------------------- /html-output/images/sample-url.svg: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 17 | 18 | 19 | 21 | spec.w| 22 | 23 | 24 | 25 | https://html.spec.whatwg.org/ 26 | https://mediasession.spec.whatwg.org/ 27 | https://fullscreen.spec.whatwg.org/ 28 | https://dom.spec.whatwg.org/ 29 | https://url.spec.whatwg.org/#url-parsing 30 | https://streams.spec.whatwg.org/ 31 | 32 | 33 | 34 | HTML 35 | Media Session 36 | Fullscreen 37 | DOM 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /html-output/images/sample-usemap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/sample-usemap.png -------------------------------------------------------------------------------- /html-output/images/select-country-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/select-country-1.png -------------------------------------------------------------------------------- /html-output/images/select-country-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/select-country-2.png -------------------------------------------------------------------------------- /html-output/images/table-scope-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/table-scope-diagram.png -------------------------------------------------------------------------------- /html-output/images/websocket-protocol-diagram.txt: -------------------------------------------------------------------------------- 1 | +-----------+ 2 | | Handshake | 3 | +-----+-----+ 4 | | 5 | | 6 | v 7 | +-----+-----------+ 8 | | Frame type byte |<----------------------------------------------+ 9 | +-----+-----------+ | 10 | | | 11 | | 0x00 to 0x7F +-----------+ +------+ | 12 | +------------------------------>| UTF-8... |--->| 0xFF |---+ 13 | | +-----------+ +------+ | 14 | | | 15 | | 0x00 to 0x7F +--------+ +-----------+ | 16 | +---------------->| Length |--->| Binary... |---------------+ 17 | +--------+ +-----------+ 18 | 19 | 20 | http://ditaa.org/ditaa/frames.html 21 | 22 | http://ditaa.org/ditaa/render?grid=%0D%0A+++++%2B-----------%2B%0D%0A+++++%7C+Handshake+%7C%0D%0A+++++%2B-----%2B-----%2B%0D%0A+++++++++++%7C%0D%0A+++++++++++%7C%0D%0A+++++++++++v%0D%0A+++++%2B-----%2B-----------%2B%0D%0A+++++%7C+Frame+type+byte+%7C%3C----------------------------------------------%2B%0D%0A+++++%2B-----%2B-----------%2B+++++++++++++++++++++++++++++++++++++++++++++++%7C%0D%0A+++++++++++%7C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%7C%0D%0A+++++++++++%7C+0x00+to+0x7F++++++++++++++++++%2B-----------%2B++++%2B------%2B+++%7C%0D%0A+++++++++++%2B------------------------------%3E%7C+UTF-8...++%7C---%3E%7C+0xFF+%7C---%2B%0D%0A+++++++++++%7C+++++++++++++++++++++++++++++++%2B-----------%2B++++%2B------%2B+++%7C%0D%0A+++++++++++%7C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++%7C%0D%0A+++++++++++%7C+0x00+to+0x7F++++%2B--------%2B++++%2B-----------%2B+++++++++++++++%7C%0D%0A+++++++++++%2B----------------%3E%7C+Length+%7C---%3E%7C+Binary...+%7C---------------%2B%0D%0A+++++++++++++++++++++++++++++%2B--------%2B++++%2B-----------%2B%0D%0A%0D%0A&S=on&scale=1 23 | -------------------------------------------------------------------------------- /html-output/images/wolf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/WICG/controls-list/55744005155547ae381f92f87f094562ac513daf/html-output/images/wolf.jpg -------------------------------------------------------------------------------- /html-output/link-fixup.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | 'use strict'; 3 | if (window.location.hash.length < 1) { 4 | return; 5 | } 6 | 7 | var fragid = window.location.hash.substr(1); 8 | 9 | if (fragid && document.getElementById(fragid)) { 10 | return; 11 | } 12 | 13 | var xhr = new XMLHttpRequest(); 14 | xhr.responseType = 'json'; 15 | xhr.open('GET', '/multipage/fragment-links.json'); 16 | xhr.onload = function() { 17 | var fragmentLinks = xhr.response; 18 | 19 | // handle section-foo.html links from the old old multipage version, 20 | // and broken foo.html from the new version 21 | if (!fragid || !(fragid in fragmentLinks)) { 22 | var m = window.location.pathname.match(/\/(?:section-)?([\w\-]+)\.html/); 23 | if (m) { 24 | fragid = m[1]; 25 | } 26 | } 27 | 28 | var page = fragmentLinks[fragid]; 29 | if (page) { 30 | window.location.replace(page + '.html#' + fragid); 31 | } 32 | }; 33 | xhr.send(); 34 | })(); 35 | -------------------------------------------------------------------------------- /html-output/multipage/iana.html: -------------------------------------------------------------------------------- 1 | HTML Standard 177 | 178 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 |
  1. 16 IANA considerations
    1. 16.1 text/html
    2. 16.2 multipart/x-mixed-replace
    3. 16.3 application/xhtml+xml
    4. 16.4 text/cache-manifest
    5. 16.5 text/ping
    6. 16.6 application/microdata+json
    7. 16.7 text/event-stream
    8. 16.8 `Ping-From`
    9. 16.9 `Ping-To`
    10. 16.10 `Last-Event-ID`
    11. 16.11 web+ scheme prefix

16 IANA considerations

198 | 199 | 200 | 201 | 202 |

16.1 text/html

203 | 204 |

This registration is for community review and will be submitted to the IESG for review, 205 | approval, and registration with IANA.

206 | 207 | 208 | 209 | 210 | 211 |
Type name:
text
Subtype name:
html
Required parameters:
No required parameters
Optional parameters:
212 |
charset
213 | 214 |

The charset parameter may be provided to specify the 215 | document's character encoding, overriding any character encoding declarations in the document other than a Byte Order Mark (BOM). The parameter's value 216 | must be one of the labels of the character encoding used to serialize the file. [ENCODING]

217 | 218 |
219 |
Encoding considerations:
220 | 221 | 8bit (see the section on character encoding 222 | declarations) 223 | 224 |
Security considerations:
225 | 226 |

Entire novels have been written about the security considerations that apply to HTML 227 | documents. Many are listed in this document, to which the reader is referred for more details. 228 | Some general concerns bear mentioning here, however:

229 | 230 |

HTML is scripted language, and has a large number of APIs (some of which are described in 231 | this document). Script can expose the user to potential risks of information leakage, credential 232 | leakage, cross-site scripting attacks, cross-site request forgeries, and a host of other 233 | problems. While the designs in this specification are intended to be safe if implemented 234 | correctly, a full implementation is a massive undertaking and, as with any software, user agents 235 | are likely to have security bugs.

236 | 237 |

Even without scripting, there are specific features in HTML which, for historical reasons, 238 | are required for broad compatibility with legacy content but that expose the user to unfortunate 239 | security problems. In particular, the img element can be used in conjunction with 240 | some other features as a way to effect a port scan from the user's location on the Internet. 241 | This can expose local network topologies that the attacker would otherwise not be able to 242 | determine.

243 | 244 |

HTML relies on a compartmentalization scheme sometimes known as the same-origin 245 | policy. An origin in most cases consists of all the pages served from the same 246 | host, on the same port, using the same protocol.

247 | 248 |

It is critical, therefore, to ensure that any untrusted content that forms part of a site be 249 | hosted on a different origin than any sensitive content on that site. Untrusted 250 | content can easily spoof any other page on the same origin, read data from that origin, cause 251 | scripts in that origin to execute, submit forms to and from that origin even if they are 252 | protected from cross-site request forgery attacks by unique tokens, and make use of any 253 | third-party resources exposed to or rights granted to that origin.

254 | 255 |
Interoperability considerations:
256 | Rules for processing both conforming and non-conforming content 257 | are defined in this specification. 258 |
Published specification:
259 | This document is the relevant specification. Labeling a resource 260 | with the text/html type asserts that the resource is 261 | an HTML document using 262 | the HTML syntax. 263 |
Applications that use this media type:
264 | Web browsers, tools for processing Web content, HTML authoring 265 | tools, search engines, validators. 266 |
Additional information:
267 |
Magic number(s):
No sequence of bytes can uniquely identify an HTML 268 | document. More information on detecting HTML documents is 269 | available in the WHATWG MIME Sniffing standard. [MIMESNIFF]
File extension(s):
"html" and "htm" 270 | are commonly, but certainly not exclusively, used as the 271 | extension for HTML documents.
Macintosh file type code(s):
TEXT
272 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
No restrictions apply.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
273 | 274 |

Fragments used with text/html resources 275 | either refer to the indicated part of the document or provide state information for 276 | in-page scripts.

277 | 278 | 279 | 280 | 281 |

16.2 multipart/x-mixed-replace

282 | 283 |

This registration is for community review and will be submitted to the IESG for review, 284 | approval, and registration with IANA.

285 | 286 | 287 | 288 |
Type name:
multipart
Subtype name:
x-mixed-replace
Required parameters:
289 | 291 |
Optional parameters:
No optional parameters.
Encoding considerations:
binary
Security considerations:
292 | Subresources of a multipart/x-mixed-replace 293 | resource can be of any type, including types with non-trivial 294 | security implications such as text/html. 295 |
Interoperability considerations:
296 | None. 297 |
Published specification:
298 | This specification describes processing rules for Web browsers. 299 | Conformance requirements for generating resources with this type are the same as for multipart/mixed. [RFC2046] 300 |
Applications that use this media type:
301 | This type is intended to be used in resources generated by Web servers, for consumption by Web browsers. 302 |
Additional information:
303 |
Magic number(s):
No sequence of bytes can uniquely identify a multipart/x-mixed-replace resource.
File extension(s):
No specific file extensions are recommended for this type.
Macintosh file type code(s):
No specific Macintosh file type codes are recommended for this type.
304 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
No restrictions apply.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
305 | 306 |

Fragments used with 307 | multipart/x-mixed-replace resources apply to each body part as defined by the type 308 | used by that body part.

309 | 310 | 311 |

16.3 application/xhtml+xml

312 | 313 |

This registration is for community review and will be submitted to the IESG for review, 314 | approval, and registration with IANA.

315 | 316 | 317 | 318 | 319 | 320 |
Type name:
application
Subtype name:
xhtml+xml
Required parameters:
Same as for application/xml [RFC7303]
Optional parameters:
Same as for application/xml [RFC7303]
Encoding considerations:
Same as for application/xml [RFC7303]
Security considerations:
Same as for application/xml [RFC7303]
Interoperability considerations:
Same as for application/xml [RFC7303]
Published specification:
Labeling a resource with the application/xhtml+xml type asserts that the 321 | resource is an XML document that likely has a document element from the HTML 322 | namespace. Thus, the relevant specifications are the XML specification, the Namespaces in 323 | XML specification, and this specification. [XML] [XMLNS]
Applications that use this media type:
Same as for application/xml [RFC7303]
Additional information:
324 |
Magic number(s):
Same as for application/xml [RFC7303]
File extension(s):
"xhtml" and "xht" are sometimes used as 325 | extensions for XML resources that have a document element from the HTML 326 | namespace.
Macintosh file type code(s):
TEXT
327 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
No restrictions apply.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
328 | 329 |

Fragments used with 330 | application/xhtml+xml resources have the same semantics as with any 331 | XML MIME type. [RFC7303]

332 | 333 | 334 |

16.4 text/cache-manifest

335 | 336 |

This registration is for community review and will be submitted 337 | to the IESG for review, approval, and registration with IANA.

338 | 339 | 340 | 341 |
Type name:
text
Subtype name:
cache-manifest
Required parameters:
No parameters
Optional parameters:
342 |
charset
343 | 344 |

The charset parameter may be provided. The parameter's value must be 345 | "utf-8". This parameter serves no purpose; it is only allowed for 346 | compatibility with legacy servers.

347 | 348 |
349 |
Encoding considerations:
8bit (always UTF-8)
Security considerations:
350 |

Cache manifests themselves pose no immediate risk unless 351 | sensitive information is included within the 352 | manifest. Implementations, however, are required to follow 353 | specific rules when populating a cache based on a cache manifest, 354 | to ensure that certain origin-based restrictions are 355 | honored. Failure to correctly implement these rules can result in 356 | information leakage, cross-site scripting attacks, and the 357 | like.

358 |
Interoperability considerations:
359 | Rules for processing both conforming and non-conforming content 360 | are defined in this specification. 361 |
Published specification:
362 | This document is the relevant specification. 363 |
Applications that use this media type:
364 | Web browsers. 365 |
Additional information:
366 |
Magic number(s):
Cache manifests begin with the string "CACHE 367 | MANIFEST", followed by either a U+0020 SPACE character, a 368 | U+0009 CHARACTER TABULATION (tab) character, a U+000A LINE FEED 369 | (LF) character, or a U+000D CARRIAGE RETURN (CR) character.
File extension(s):
"appcache"
Macintosh file type code(s):
No specific Macintosh file type codes are recommended for this type.
370 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
No restrictions apply.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
371 | 372 |

Fragments have no meaning with 373 | text/cache-manifest resources.

374 | 375 | 376 |

16.5 text/ping

377 | 378 |

This registration is for community review and will be submitted to the IESG for review, 379 | approval, and registration with IANA.

380 | 381 | 382 | 383 |
Type name:
text
Subtype name:
ping
Required parameters:
No parameters
Optional parameters:
384 |
charset
385 | 386 |

The charset parameter may be provided. The parameter's value must be 387 | "utf-8". This parameter serves no purpose; it is only allowed for 388 | compatibility with legacy servers.

389 | 390 |
391 |
Encoding considerations:
Not applicable.
Security considerations:
392 |

If used exclusively in the fashion described in the context of 393 | hyperlink auditing, this type introduces no new 394 | security concerns.

395 |
Interoperability considerations:
396 | Rules applicable to this type are defined in this specification. 397 |
Published specification:
398 | This document is the relevant specification. 399 |
Applications that use this media type:
400 | Web browsers. 401 |
Additional information:
402 |
Magic number(s):
text/ping resources always consist of the four 403 | bytes 0x50 0x49 0x4E 0x47 (ASCII 'PING').
File extension(s):
No specific file extension is recommended for this type.
Macintosh file type code(s):
No specific Macintosh file type codes are recommended for this type.
404 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
Only intended for use with HTTP POST requests generated as part 405 | of a Web browser's processing of the ping attribute.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
406 | 407 |

Fragments have no meaning with 408 | text/ping resources.

409 | 410 | 411 | 412 |

16.6 application/microdata+json

413 | 414 |

This registration is for community review and will be submitted to the IESG for review, 415 | approval, and registration with IANA.

416 | 417 | 418 | 419 |
Type name:
application
Subtype name:
microdata+json
Required parameters:
Same as for application/json [JSON]
Optional parameters:
Same as for application/json [JSON]
Encoding considerations:
8bit (always UTF-8)
Security considerations:
Same as for application/json [JSON]
Interoperability considerations:
Same as for application/json [JSON]
Published specification:
420 | 421 | Labeling a resource with the application/microdata+json type asserts that the 422 | resource is a JSON text that consists of an object with a single entry called "items" consisting of an array of entries, each of which consists of an object 423 | with an entry called "id" whose value is a string, an entry called "type" whose value is another string, and an entry called "properties" whose value is an object whose entries each have a value consisting 424 | of an array of either objects or strings, the objects being of the same form as the objects in 425 | the aforementioned "items" entry. Thus, the relevant specifications are 426 | the JSON specification and this specification. [JSON] 427 | 428 |
Applications that use this media type:
429 | 430 |

Applications that transfer data intended for use with HTML's microdata feature, especially in 431 | the context of drag-and-drop, are the primary application class for this type.

432 | 433 |
Additional information:
434 |
Magic number(s):
Same as for application/json [JSON]
File extension(s):
Same as for application/json [JSON]
Macintosh file type code(s):
Same as for application/json [JSON]
435 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
No restrictions apply.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
436 | 437 |

Fragments used with 438 | application/microdata+json resources have the same semantics as when used with 439 | application/json (namely, at the time of writing, no semantics at all). 440 | [JSON]

441 | 442 | 443 |

16.7 text/event-stream

444 | 445 |

This registration is for community review and will be submitted to the IESG for review, 446 | approval, and registration with IANA.

447 | 448 | 449 | 450 |
Type name:
text
Subtype name:
event-stream
Required parameters:
No parameters
Optional parameters:
451 |
charset
452 | 453 |

The charset parameter may be provided. The parameter's value must be 454 | "utf-8". This parameter serves no purpose; it is only allowed for 455 | compatibility with legacy servers.

456 | 457 |
458 |
Encoding considerations:
8bit (always UTF-8)
Security considerations:
459 | 460 |

An event stream from an origin distinct from the origin of the content consuming the event 461 | stream can result in information leakage. To avoid this, user agents are required to apply CORS 462 | semantics. [FETCH]

463 | 464 |

Event streams can overwhelm a user agent; a user agent is expected to apply suitable 465 | restrictions to avoid depleting local resources because of an overabundance of information from 466 | an event stream.

467 | 468 |

Servers can be overwhelmed if a situation develops in which the server is causing clients to 469 | reconnect rapidly. Servers should use a 5xx status code to indicate capacity problems, as this 470 | will prevent conforming clients from reconnecting automatically.

471 | 472 |
Interoperability considerations:
473 | Rules for processing both conforming and non-conforming content are defined in this 474 | specification. 475 |
Published specification:
476 | This document is the relevant specification. 477 |
Applications that use this media type:
478 | Web browsers and tools using Web services. 479 |
Additional information:
480 |
Magic number(s):
No sequence of bytes can uniquely identify an event stream.
File extension(s):
No specific file extensions are recommended for this type.
Macintosh file type code(s):
No specific Macintosh file type codes are recommended for this type.
481 |
Person & email address to contact for further information:
Ian Hickson <ian@hixie.ch>
Intended usage:
Common
Restrictions on usage:
This format is only expected to be used by dynamic open-ended streams served using HTTP or a 482 | similar protocol. Finite resources are not expected to be labeled with this type.
Author:
Ian Hickson <ian@hixie.ch>
Change controller:
W3C
483 | 484 |

Fragments have no meaning with 485 | text/event-stream resources.

486 | 487 | 488 | 489 |

16.8 `Ping-From`

490 | 491 |

This section describes a header for registration in the Permanent Message Header Field 492 | Registry. [RFC3864]

493 | 494 |
Header field name:
Ping-From
Applicable protocol:
http
Status:
standard
Author/Change controller:
W3C
Specification document(s):
495 | This document is the relevant specification. 496 |
Related information:
None.
497 | 498 | 499 |

16.9 `Ping-To`

500 | 501 |

This section describes a header for registration in the Permanent Message Header Field 502 | Registry. [RFC3864]

503 | 504 |
Header field name:
Ping-To
Applicable protocol:
http
Status:
standard
Author/Change controller:
W3C
Specification document(s):
505 | This document is the relevant specification. 506 |
Related information:
None.
507 | 508 | 509 |

16.10 `Last-Event-ID`

510 | 511 |

This section describes a header for registration in the Permanent Message Header Field 512 | Registry. [RFC3864]

513 | 514 |
Header field name:
Last-Event-ID
Applicable protocol:
http
Status:
standard
Author/Change controller:
W3C
Specification document(s):
515 | This document is the relevant specification. 516 |
Related information:
None.
517 | 518 | 519 |

16.11 web+ scheme prefix

Spec bugs: 18496, 18671

520 | 521 |

This section describes a convention for use with the IANA URI scheme registry. It does not 522 | itself register a specific scheme. [RFC7595]

523 | 524 |
Scheme name:
525 | Schemes starting with the four characters "web+" followed by one or more letters in the range 526 | a-z. 527 |
Status:
Permanent
Scheme syntax:
Scheme-specific.
Scheme semantics:
Scheme-specific.
Encoding considerations:
All "web+" schemes should use UTF-8 encodings where relevant.
Applications/protocols that use this scheme name:
Scheme-specific.
Interoperability considerations:
The scheme is expected to be used in the context of Web applications.
Security considerations:
528 | 529 | Any Web page is able to register a handler for all "web+" schemes. As 530 | such, these schemes must not be used for features intended to be core platform features (e.g. 531 | network transfer protocols like HTTP or FTP). Similarly, such schemes must not store 532 | confidential information in their URLs, such as usernames, passwords, personal information, or 533 | confidential project names. 534 | 535 |
Contact:
Ian Hickson <ian@hixie.ch>
Change controller:
Ian Hickson <ian@hixie.ch>
References:
536 | Custom scheme and content handlers, HTML Living Standard: 537 | https://html.spec.whatwg.org/#custom-handlers 538 |
539 | 540 | 541 | 542 | -------------------------------------------------------------------------------- /html-output/multipage/references.html: -------------------------------------------------------------------------------- 1 | HTML Standard 177 | 178 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 |
  1. References

References

198 | 199 |

All references are normative unless marked "Non-normative".

200 | 201 | 202 | 203 |
[ABNF]
Augmented BNF for Syntax Specifications: ABNF, D. Crocker, P. Overell. IETF.
[ABOUT]
The 'about' URI scheme, S. Moonesamy. IETF.
[APNG]
(Non-normative) APNG Specification. S. Parmenter, V. Vukicevic, A. Smith. Mozilla.
[ARIA]
Accessible Rich Internet Applications (WAI-ARIA), J. Diggs, J. Craig, S. McCarron, M. Cooper. W3C.
[ARIAHTML]
ARIA in HTML, S. Faulkner. W3C.
[ATAG]
(Non-normative) Authoring Tool Accessibility Guidelines (ATAG) 2.0, J. Richards, J. Spellman, J. Treviranus. W3C.
[ATOM]
(Non-normative) The Atom Syndication Format, M. Nottingham, R. Sayre. IETF.
[AUXCLICK]
auxclick, N. Zolghadr. WICG.
[BATTERY]
(Non-normative) Battery Status API, A. Kostiainen, M. Lamouri. W3C.
[BCP47]
Tags for Identifying Languages; Matching of Language Tags, A. Phillips, M. Davis. IETF.
[BEZIER]
Courbes à poles, P. de Casteljau. INPI, 1959.
[BIDI]
UAX #9: Unicode Bidirectional Algorithm, M. Davis. Unicode Consortium.
[BOCU1]
(Non-normative) UTN #6: BOCU-1: MIME-Compatible Unicode Compression, M. Scherer, M. Davis. Unicode Consortium.
[CESU8]
(Non-normative) UTR #26: Compatibility Encoding Scheme For UTF-16: 8-BIT (CESU-8), T. Phipps. Unicode Consortium.
[CHARMOD]
(Non-normative) Character Model for the World Wide Web 1.0: Fundamentals, M. Dürst, F. Yergeau, R. Ishida, M. Wolf, T. Texin. W3C.
[CLDR]
Unicode Common Locale Data Repository. Unicode.
[COMPOSITE]
Compositing and Blending, R. Cabanier, N. Andronikos. W3C.
[COMPUTABLE]
(Non-normative) On computable numbers, with an application to the Entscheidungsproblem, A. Turing. In Proceedings of the London Mathematical Society, series 2, volume 42, pages 230-265. London Mathematical Society, 1937.
[COOKIES]
HTTP State Management Mechanism, A. Barth. IETF.
[CSP]
Content Security Policy, M. West, D. Veditz. W3C.
[CSS]
Cascading Style Sheets Level 2 Revision 2, B. Bos, T. Çelik, I. Hickson, H. Lie. W3C.
[CSSANIMATIONS]
CSS Animations, D. Jackson, D. Hyatt, C. Marrin, S. Galineau, L. Baron. W3C.
[CSSATTR]
CSS Style Attributes, T. Çelik, E. Etemad. W3C.
[CSSBG]
CSS Backgrounds and Borders , B. Bos, E. Etemad, B. Kemper. W3C.
[CSSCASCADE]
CSS Cascading and Inheritance Level 4, E. Etemad, T. Atkins. W3C.
[CSSCOLOR]
CSS Color Module Level 3, T. Çelik, C. Lilley, L. Baron. W3C.
[CSSDISPLAY]
CSS Display, T. Atkins, E. Etemad. W3C.
[CSSFONTLOAD]
CSS Font Loading, T. Atkins, J. Daggett. W3C.
[CSSFONTS]
CSS Fonts, J. Daggett. W3C.
[CSSGC]
CSS Generated Content, H. Lie, E. Etemad, I. Hickson. W3C.
[CSSIMAGES]
CSS Image Values and Replaced Content Module, E. Etemad, T. Atkins. W3C.
[CSSLISTS]
CSS Lists and Counters, T. Atkins. W3C.
[CSSLOGICAL]
CSS Logical Properties, R. Atanassov, E. Etemad. W3C.
[CSSOM]
Cascading Style Sheets Object Model (CSSOM), S. Pieters, G. Adams. W3C.
[CSSOMVIEW]
CSSOM View Module, S. Pieters, G. Adams. W3C.
[CSSOVERFLOW]
CSS Overflow, L. Baron, F. Rivoal. W3C.
[CSSPOSITION]
CSS Positioned Layout, R. Atanassov, A. Eicholz. W3C.
[CSSRUBY]
CSS3 Ruby Module, R. Ishida. W3C.
[CSSTRANSITIONS]
(Non-normative) CSS Transitions, D. Jackson, D. Hyatt, C. Marrin, L. Baron. W3C.
[CSSUI]
CSS3 Basic User Interface Module, T. Çelik. W3C.
[CSSSYNTAX]
CSS Syntax, T. Atkins, S. Sapin. W3C.
[CSSTABLE]
CSS Table, F. Remy, G. Whitworth. W3C.
[CSSTEXT]
CSS Text, E. Etemad, K. Ishii. W3C.
[CSSVALUES]
CSS3 Values and Units, H. Lie, T. Atkins, E. Etemad. W3C.
[CSSWM]
CSS Writing Modes, E. Etemad, K. Ishii. W3C.
[DASH]
Dynamic adaptive streaming over HTTP (DASH). ISO.
[DOM]
DOM, A. van Kesteren, A. Gregor, Ms2ger. WHATWG.
[DOMPARSING]
DOM Parsing and Serialization, T. Leithead. W3C.
[DOT]
(Non-normative) The DOT Language. Graphviz.
[E163]
Recommendation E.163 — Numbering Plan for The International Telephone Service, CCITT Blue Book, Fascicle II.2, pp. 128-134, November 1988.
[ENCODING]
Encoding, A. van Kesteren, J. Bell. WHATWG.
[EXECCOMMAND]
execCommand, J. Wilm, A. Gregor. W3C Editing APIs CG.
[EXIF]
(Non-normative) Exchangeable image file format. JEITA.
[FETCH]
Fetch, A. van Kesteren. WHATWG.
[FILEAPI]
File API, A. Ranganathan. W3C.
[FILTERS]
Filter Effects, D. Jackson, E. Dahlström, D. Schulze. W3C.
[FULLSCREEN]
Fullscreen, A. van Kesteren, T. Çelik. WHATWG.
[GEOMETRY]
Geometry Interfaces Module. S. Pieters, D. Schulze, R. Cabanier. W3C.
[GIF]
(Non-normative) Graphics Interchange Format. CompuServe.
[GRAPHICS]
(Non-normative) Computer Graphics: Principles and Practice in C, Second Edition, J. Foley, A. van Dam, S. Feiner, J. Hughes. Addison-Wesley. ISBN 0-201-84840-6.
[GREGORIAN]
(Non-normative) Inter Gravissimas, A. Lilius, C. Clavius. Gregory XIII Papal Bull, February 1582.
[HRT]
High Resolution Time, I. Grigorik, J. Simonsen, J. Mann. W3C.
[HTMLAAM]
HTML Accessibility API Mappings 1.0, S. Faulkner, J. Kiss, A. Surkov. W3C.
[HTTP]
Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing, R. Fielding, J. Reschke. IETF.
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, R. Fielding, J. Reschke. IETF.
Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests, R. Fielding, J. Reschke. IETF.
Hypertext Transfer Protocol (HTTP/1.1): Range Requests, R. Fielding, Y. Lafon, J. Reschke. IETF.
Hypertext Transfer Protocol (HTTP/1.1): Caching, R. Fielding, M. Nottingham, J. Reschke. IETF.
Hypertext Transfer Protocol (HTTP/1.1): Authentication, R. Fielding, J. Reschke. IETF.
[IANAPERMHEADERS]
Permanent Message Header Field Names. IANA.
[INDEXEDDB]
Indexed Database API, A. Alabbas, J. Bell. W3C.
[INBAND]
Sourcing In-band Media Resource Tracks from Media Containers into HTML, S. Pfeiffer, B. Lund. W3C.
[INFRA]
Infra, A. van Kesteren, D. Denicola. WHATWG.
[INTERSECTIONOBSERVER]
Intersection Observer, M. Blain. WICG.
[ISO3166]
ISO 3166: Codes for the representation of names of countries and their subdivisions. ISO.
[ISO4217]
ISO 4217: Codes for the representation of currencies and funds. ISO.
[ISO8601]
(Non-normative) ISO8601: Data elements and interchange formats — Information interchange — Representation of dates and times. ISO.
[JAVASCRIPT]
ECMAScript Language Specification. Ecma International.
[JLREQ]
Requirements for Japanese Text Layout. W3C.
[JPEG]
JPEG File Interchange Format, E. Hamilton.
[JSINTL]
ECMAScript Internationalization API Specification. Ecma International.
[JSON]
The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray. IETF.
[MAILTO]
(Non-normative) The 'mailto' URI scheme, M. Duerst, L. Masinter, J. Zawinski. IETF.
[MATHML]
Mathematical Markup Language (MathML), D. Carlisle, P. Ion, R. Miner. W3C.
[MEDIAFRAG]
Media Fragments URI, R. Troncy, E. Mannens, S. Pfeiffer, D. Van Deursen. W3C.
[MEDIASOURCE]
Media Source Extensions, A. Colwell, A. Bateman, M. Watson. W3C.
[MEDIASTREAM]
Media Capture and Streams, D. Burnett, A. Bergkvist, C. Jennings, A. Narayanan. W3C.
[MFREL]
Microformats Wiki: existing rel values. Microformats.
[MIMESNIFF]
MIME Sniffing, G. Hemsley. WHATWG.
[MIX]
Mixed Content, M. West. W3C.
[MNG]
MNG (Multiple-image Network Graphics) Format. G. Randers-Pehrson.
[MPEG2]
ISO/IEC 13818-1: Information technology — Generic coding of moving pictures and associated audio information: Systems. ISO/IEC.
[MPEG4]
ISO/IEC 14496-12: ISO base media file format. ISO/IEC.
[MQ]
Media Queries, H. Lie, T. Çelik, D. Glazman, A. van Kesteren. W3C.
[NPAPI]
(Non-normative) Gecko Plugin API Reference. Mozilla.
[OGGSKELETONHEADERS]
SkeletonHeaders. Xiph.Org.
[OPENSEARCH]
Autodiscovery in HTML/XHTML. In OpenSearch 1.1 Draft 4, Section 4.6.2. OpenSearch.org.
[ORIGIN]
(Non-normative) The Web Origin Concept, A. Barth. IETF.
[PAGEVIS]
(Non-normative) Page Visibility, J. Mann, A. Jain. W3C.
[PAYMENTREQUEST]
Payment Request API, A. Bateman, Z. Koch, R. McElmurry. W3C.
[PDF]
(Non-normative) Document management — Portable document format — Part 1: PDF. ISO.
[PINGBACK]
Pingback 1.0, S. Langridge, I. Hickson.
[PNG]
Portable Network Graphics (PNG) Specification, D. Duce. W3C.
[POINTEREVENTS]
Pointer Events, J. Rossi, M. Brubeck, R. Byers, P. H. Lauke. W3C.
[POINTERLOCK]
Pointer Lock, V. Scheib. W3C.
[PPUTF8]
(Non-normative) The Properties and Promises of UTF-8, M. Dürst. University of Zürich. In Proceedings of the 11th International Unicode Conference.
[PRELOAD]
Preload, I. Grigorik. W3C.
[PRESENTATION]
Presentation API, M. Foltz, D. Röttsches. W3C.
[PSL]
Public Suffix List. 204 | Mozilla Foundation.
[REFERRERPOLICY]
Referrer Policy, J. Eisinger, E. Stark. W3C.
[RESOURCEHINTS]
Resource Hints, I. Grigorik. W3C.
[RFC1034]
Domain Names - Concepts and Facilities, P. Mockapetris. IETF, November 1987.
[RFC1123]
Requirements for Internet Hosts -- Application and Support, R. Braden. IETF, October 1989.
[RFC2046]
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types, N. Freed, N. Borenstein. IETF.
[RFC2318]
The text/css Media Type, H. Lie, B. Bos, C. Lilley. IETF.
[RFC2397]
The "data" URL scheme, L. Masinter. IETF.
[RFC5545]
Internet Calendaring and Scheduling Core Object Specification (iCalendar), B. Desruisseaux. IETF.
[RFC2483]
URI Resolution Services Necessary for URN Resolution, M. Mealling, R. Daniel. IETF.
[RFC3676]
The Text/Plain Format and DelSp Parameters, R. Gellens. IETF.
[RFC3864]
Registration Procedures for Message Header Fields, G. Klyne, M. Nottingham, J. Mogul. IETF.
[RFC4329]
(Non-normative) Scripting Media Types, B. Höhrmann. IETF.
[RFC4337]
(Non-normative) MIME Type Registration for MPEG-4, Y. Lim, D. Singer. IETF.
[RFC7595]
Guidelines and Registration Procedures for URI Schemes, D. Thaler, T. Hansen, T. Hardie. IETF.
[RFC4648]
The Base16, Base32, and Base64 Data Encodings, S. Josefsson. IETF.
[RFC5322]
Internet Message Format, P. Resnick. IETF.
[RFC6381]
The 'Codecs' and 'Profiles' Parameters for "Bucket" Media Types, R. Gellens, D. Singer, P. Frojdh. IETF.
[RFC6266]
Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP), J. Reschke. IETF.
[RFC6350]
vCard Format Specification, S. Perreault. IETF.
[RFC7303]
XML Media Types, H. Thompson, C. Lilley. IETF.
[RFC7578]
Returning Values from Forms: multipart/form-data, L. Masinter. IETF.
[SCREENORIENTATION]
Screen Orientation API, M. Lamouri, M. Cáceres. W3C.
[SCSU]
(Non-normative) UTR #6: A Standard Compression Scheme For Unicode, M. Wolf, K. Whistler, C. Wicksteed, M. Davis, A. Freytag, M. Scherer. Unicode Consortium.
[SELECTION]
Selection API, R. Niwa. W3C.
[SELECTORS]
Selectors, E. Etemad, T. Çelik, D. Glazman, I. Hickson, P. Linss, J. Williams. W3C.
[SMS]
(Non-normative) URI Scheme for Global System for Mobile Communications (GSM) Short Message Service (SMS), E. Wilde, A. Vaha-Sipila. IETF.
[SRGB]
IEC 61966-2-1: Multimedia systems and equipment — Colour measurement and management — Part 2-1: Colour management — Default RGB colour space — sRGB. IEC.
[SRI]
Subresource Integrity, D. Akhawe, F. Braun, F. Marier, J. Weinberger. W3C.
[SVG]
Scalable Vector Graphics (SVG) 1.1 (Second Edition), E. Dahlström, P. Dengler, A. Grasso, C. Lilley, C. McCormack, D. Schepers, J. Watt, J. Ferraiolo, J. Fujisawa, D. Jackson. W3C.
[SVGTINY12]
Scalable Vector Graphics (SVG) Tiny 1.2, O. Andersson, R. Berjon, E. Dahlström, A. Emmons, J. Ferraiolo, A. Grasso, V. Hardy, S. Hayman, D. Jackson, C. Lilley, C. McCormack, A. Neumann, C. Northway, A. Quint, N. Ramani, D. Schepers, A. Shellshear. W3C.
[SVG2]
(Non-normative) Scalable Vector Graphics (SVG) 2, N. Andronikos, R. Atanassov, T. Bah, A. Bellamy-Royds, B. Birtles, B. Brinza, C. Concolato, E. Dahlström, C. Lilley, C. McCormack, D. Schepers, D. Schulze, R. Schwerdtfeger, S. Takagi, J. Watt. W3C.
[SW]
Service Workers, A. Russell, J. Song, J. Archibald. W3C.
[TOR]
(Non-normative) Tor.
[TOUCH]
Touch Events, D. Schepers, S. Moon, M. Brubeck, A. Barstow, R. Byers. W3C.
[TZDATABASE]
(Non-normative) Time Zone Database. IANA.
[UAAG]
(Non-normative) User Agent Accessibility Guidelines (UAAG) 2.0, J. Allan, K. Ford, J. Richards, J. Spellman. W3C.
[UIEVENTS]
UI Events Specification, G. Kacmarcik, T. Leithead. W3C.
[UNICODE]
The Unicode Standard. Unicode Consortium.
[UNIVCHARDET]
(Non-normative) A composite approach to language/encoding detection, S. Li, K. Momoi. Netscape. In Proceedings of the 19th International Unicode Conference.
[URL]
URL, A. van Kesteren. WHATWG.
[URN]
URN Syntax, R. Moats. IETF.
[UTF7]
(Non-normative) UTF-7: A Mail-Safe Transformation Format of Unicode, D. Goldsmith, M. Davis. IETF.
[UTF8DET]
(Non-normative) Multilingual form encoding, M. Dürst. W3C.
[UTR36]
(Non-normative) UTR #36: Unicode Security Considerations, M. Davis, M. Suignard. Unicode Consortium.
[WCAG]
(Non-normative) Web Content Accessibility Guidelines (WCAG) 2.0, B. Caldwell, M. Cooper, L. Reid, G. Vanderheiden. W3C.
[WEBCRYPTO]
(Non-normative) Web Cryptography API, M. Watson. W3C.
[WEBGL]
WebGL Specification, D. Jackson. Khronos Group.
[WEBIDL]
Web IDL, C. McCormack. W3C.
Web Linking, M. Nottingham. IETF.
[WEBMCG]
WebM Container Guidelines. The WebM Project.
[WEBVTT]
WebVTT, S. Pieters. W3C.
[WHATWGWIKI]
The WHATWG Wiki. WHATWG.
[WSP]
The WebSocket protocol, I. Fette, A. Melnikov. IETF.
[X121]
Recommendation X.121 — International Numbering Plan for Public Data Networks, CCITT Blue Book, Fascicle VIII.3, pp. 317-332.
[XFN]
XFN 1.1 profile, T. Çelik, M. Mullenweg, E. Meyer. GMPG.
[XHR]
XMLHttpRequest, A. van Kesteren. WHATWG.
[XKCD1288]
(Non-normative) Substitutions, Randall Munroe. xkcd.
[XML]
Extensible Markup Language, T. Bray, J. Paoli, C. Sperberg-McQueen, E. Maler, F. Yergeau. W3C.
[XMLENTITY]
(Non-normative) XML Entity Definitions for Characters, D. Carlisle, P. Ion. W3C.
[XMLNS]
Namespaces in XML, T. Bray, D. Hollander, A. Layman, R. Tobin. W3C.
[XMLSSPI]
Associating Style Sheets with XML documents, J. Clark, S. Pieters, H. Thompson. W3C.
[XPATH10]
XML Path Language (XPath) Version 1.0, J. Clark, S. DeRose. W3C.
[XSLT10]
(Non-normative) XSL Transformations (XSLT) Version 1.0, J. Clark. W3C.
[XSLTP]
(Non-normative) DOM XSLTProcessor, WHATWG Wiki. WHATWG.
205 | 206 | 207 | 208 | -------------------------------------------------------------------------------- /security-privacy-questionnaire.md: -------------------------------------------------------------------------------- 1 | # Questions to Consider 2 | 3 | ## What information might this feature expose to Web sites or other parties, and for what purposes is that exposure necessary? 4 | 5 | This feature will expose which native media controls are supported so that websites can build a tailored media experience. 6 | 7 | ## Do features in your specification expose the minimum amount of information necessary to enable their intended uses? 8 | 9 | Yes. 10 | 11 | ## How do the features in your specification deal with personal information, personally-identifiable information (PII), or information derived from them? 12 | 13 | N/A 14 | 15 | ## How do the features in your specification deal with sensitive information? 16 | 17 | N/A 18 | 19 | ## Do the features in your specification introduce new state for an origin that persists across browsing sessions? 20 | 21 | No. 22 | 23 | ## Do the features in your specification expose information about the underlying platform to origins? 24 | 25 | No. 26 | 27 | ## Does this specification allow an origin to send data to the underlying platform? 28 | 29 | No. 30 | 31 | ## Do features in this specification allow an origin access to sensors on a user’s device 32 | 33 | No. 34 | 35 | ## What data do the features in this specification expose to an origin? Please also document what data is identical to data exposed by other features, in the same or different contexts. 36 | 37 | This feature will expose which native media controls are supported. 38 | 39 | ## Do features in this specification enable new script execution/loading mechanisms? 40 | 41 | No. 42 | 43 | ## Do features in this specification allow an origin to access other devices? 44 | 45 | No. 46 | 47 | ## Do features in this specification allow an origin some measure of control over a user agent’s native UI? 48 | 49 | Yes. Some native media controls may be hidden by the website. 50 | 51 | ## What temporary identifiers do the features in this specification create or expose to the web? 52 | 53 | None. 54 | 55 | ## How does this specification distinguish between behavior in first-party and third-party contexts? 56 | 57 | N/A. 58 | 59 | ## How do the features in this specification work in the context of a browser’s Private Browsing or Incognito mode? 60 | 61 | No difference. 62 | 63 | ## Does this specification have both "Security Considerations" and "Privacy Considerations" sections? 64 | 65 | No. 66 | 67 | ## Do features in your specification enable origins to downgrade default security protections? 68 | 69 | No. 70 | 71 | ## What should this questionnaire have asked? 72 | 73 | These very questions seem adequate. 74 | -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "group": [80485] 3 | , "contacts": ["marcoscaceres"] 4 | , "repo-type": "cg-report" 5 | } 6 | --------------------------------------------------------------------------------