W3C

HTML 5.1 Implementation report

This report outlines known implementations for the features added between HTML 5.0 and HTML 5.1.

Implementation information is documented in the relevant Github issue, Pull Request (PR), or documentation for developers.

Documented changes

New features

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
HTMLInputElement.reportValidity() Chrome, OperaYNNN
HTMLMediaElement.fastseek() NYNNY
HTMLElement.forceSpellcheck() All
<Input type="week"> Yandex, ChromeNYNN
<input type="month"> Chrome, YandexNYNN
<input type="datetime-local"> Yandex, ChromeNYNN
ImageBitmap interface Chrome, OperaYNNN
<picture> Chrome, Opera, YandexYYNY
<img srcset=""> YYYNY
<details> and <summary> YYNNY
<iframe allowfullscreen> All
registerProtocolHandler() YYNNN
<menu type="context"> Chrome, Opera, YandexYNNN
<menuitem> YYNNN
XMLDocument interface YYYYY
Restore <a rev=""> No browser behaviour requiredSearch engines, RDFa validators - Google, Yandex, …

Improvements to existing features

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Add oncopy YYNNY
Add oncut YYNNY
Add onpaste YYNNY
Modify header/footer content model to allow <header> and <footer> descendants No browser implementation requirementNot implemented in W3C Validator. test case
Allow blank <option> YYYY?
Change mousewheel event to wheel event YYYYYAccording to https://developer.mozilla.org/en-US/docs/Web/Events/wheel - which has a test that could be adapted. But I suspect there is one in WPT
Make stepup/down algorithm reflect reality Yandex, Opera, ChromeNot TestableYNot TestableN
Allow <figcaption> anywhere in <figure> Y
Add HTMLMediaElement.srcObject YYYNY
Make <script>'s event and htmlFor IDL attributes reflect the content attributes YandexYYY4/5 testsWPT test
Clear autoplaying flag when autoplaying Y?YY?
Make navigator.javaEnabled() a method Yandex, OperaYYY?
Support width="0" except for <td> Ytest for img
Make toblob() callback non-nullable YandexYNNNmanually checked if document.createElement('canvas').toBlob(null) throws…
Make meta refresh parsing reflect reality YandexYYYYWith url= optional.
NYYYNWith no semicolon.

Scroll restoration changes

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Add history.scrollRestoration YYNNN
Clarify manual scroll restoration mode YYYYY

Cross-origin changes

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Allow cross-origin <track> and eventSource Yandex*??YFirefox doesn't seem to show the captions, despite loading them.

A very manual test…

Yes?Yes????eventSource appears to work cross-origin with the correct headers in related testing of Blink (Yandex) and Gecko, but this feature may not have been tested thoroughly. The bugfix was in one piece of the spec that covers both cases.
Let FrameElement return null in cross-origin situations ?Y??YRough test
Change ImageBitmap to allow cross-origin content YYNot TestableNot TestableNot Testable

Collections changes

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
<fieldset> no longer utilises HTMLFormControlsCollection NYNot TestableNot TestableY
Make <fieldset>.elements return an HTMLCollection NYNon TestableNon TestableY
Reference namedItem method from HTMLCollection not HTMLOptionsCollection NYYNN

SVG compatibility fixes

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Describe SVG versions implemented in browsers Opera, YandexYNNYnon-scaling-stroke for vector-effect - test
Yclass attribute
YandexNYYYtabindex attribute
YAllow ARIA attributes - demonstrated by multiple examples
Make SVG <title> first child not last Yandex, ChromeYNNYYandex, Firefox, Chrome and Safari all expose the first title child in raw SVG. In SVG embedded in HTML, Firefox and Safari expose the first child title element as a tooltip

Table compatibility fixes

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Make <thead> and <tfoot> ordering reflect reality YYYYY
Add specific HTMLTableElement types YandexYYYN
Disallow <tfoot> before <tbody> No browser behaviour requiredNot implemented in validator.w3.org

Changes relating to other specifications

Isolated integrations

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Add requestAnimationFrame Y
Add callout to detach from <media> YFor MSE
Integrate Resource Hints Not Testableprefetch feature
Make HTMLAllCollection to match WebIDL Y
Integrate encoding specification YDefer some encoding specifics to WHATWG Encoding spec
Take account of srclang when rendering <track> Not TestableFor WebVTT
Define enqueueJob() and nextJob() monkeypatching ECMAScript YYYNYExplains Promise resolution in terms of Microtasks -- tests Promises use Microtask timing

CSP hooks

BlinkFirefox - GeckoEdgeInternet ExplorerSafari - WebkitNotes
Add CSP-list to the global object Not TestableNot testable implementation detail to support CSP.
Add hooks for inline elements YYYNYscript/style-src 'unsafe-inline' applies to element
Add hooks for CSP and Realms from ECMASCript YNNNYMuch of this change is Not Testable, except for nonce support IDL (on style/script)
Move "https state" from Window to Document Not TestableImplementation detail: conceptual storage of HTTPS State.

Uncertain implementations

One known implementation

:dir CSS selector matching
Only in Firefox. This defines how a CSS selector works with HTML when implemented, so the lack of implementation doesn't cause interop problems for browsers. A warning for authors not to rely on this feature yet is in the specification.
.tFoot and .createTFoot to always insert at the end
Only in Firefox. There is poor interoperability of this in general, so it is unlikely to affect Web Compatibility, but this change matches a similar one in the WHATWG specification. A warning for authors not to rely on this feature yet is in the specification.
Promise rejection handling with rejectionhandled and unhandledrejection events
This features is currently only known to be implemented in blink, and a warning to authors that it is not yet reliable is in the specification.

No known implementations

probablySupportsContext
This convenience function for canvas has no known implementation. A warning for authors not to rely on this feature yet is in the specification.
Use close() blob from File API
This method does not appear to have implementation, and may in future be removed from File API. In the HTML specification, it is mentioned in an algorithm, to take account of any implementation, in a way that means partial implementation does not introduce an interoperability problem. A warning for authors not to rely on this feature is in the specification.
CSP hooks for inline events and styles
This part of CSP does not appear to have implementation, but seems likely to be implemented in the near future. In the HTML specification, it is mentioned in an algorithm, to take account of any implementation, in a way that means partial implementation does not introduce an interoperability problem. Warnings for authors not to rely on this feature yet are in the specification.