The following tables compare support of HTML5 differences from HTML 4 for a number of layout engines .
The specification is still a working draft, not a W3C recommendation , and thus not stable. Unless otherwise specified in footnotes, comparisons are based on the stable versions of the programs without any add-ons, extensions or external programs.
Explanation of the tables
Engine nomenclature
Rather than the names of web browsers, the names of the underlying engines are used. The browsers that use the various engines are listed below.
Layout engine
Release version
Preview version
Used by
Amaya
11.4.7 [1]
N/A
Amaya
Blink
537.36
Chromium /Chrome (28+), Opera (15+) and Yandex
Gecko
26.0
27.0
All Mozilla software, including Firefox ; SeaMonkey and Galeon ; Camino ; K-Meleon ; Flock (up to 2.x); Debian IceWeasel ; GNU IceCat (formerly GNU IceWeasel); Icedove , Iceape and Iceowl ; Fennec . Also used by the Maple platform in 2010 and 2011 Samsung "SmartTV" devices which are based on the build used in Firefox 3.0. Nokia Asha platform is also using Gecko for web apps rendering.
KHTML
4.10.5 [2]
N/A
Konqueror [note 1]
Presto
2.12.388
N/A
Opera ; Opera Mobile , Nintendo DS & DSi Browser ; Internet Channel
Tasman
(IE 5.2.3 for Mac)
none (aborted in 2003)
Internet Explorer 5+ for Mac OS X
Trident
7.0 (IE 11)
7.0 (IE 11)
Internet Explorer and other Internet Explorer shells like Maxthon (Microsoft Windows operating systems only), Windows Phone 8
WebKit
534.20
r146740
Tizen (both OS and browser), Safari (both desktop and mobile), Google Chrome , Maxthon 3 , Shiira , iCab 4 , OmniWeb 5.5 +, Web , Adobe AIR , Midori , Adobe Dreamweaver CS4 and CS5 , Android browser, Palm webOS browser, Symbian S60 browser, OWB , Steam , Rekonq , Arora , Flock (version 3+), RockMelt , Dolphin Browser , Sleipnir , Konqueror [note 1] , PhantomJS A headless browser for testing, rekonq . Used by the LG Smart TV platform to enable web content on TVs.
↑ 1.0 1.1 In Konqueror, the user can switch layout engine.
Values
Values indicate the level of support in the most recent version of the layout engine, or (if a version number is given) in the specified version. Version numbers without any other value indicate the version at which the layout engine first fully supported the feature.
Value
Meaning
Yes
Indicates that the layout engine fully supports this property/element when valid values are used.
No
Indicates that the property/element is completely ignored.
Partial
Indicates that the property/element is understood, but that not all values are supported. Supported values are implemented correctly.
Incorrect
Indicates that the property/element is understood, but that it is not implemented correctly in all cases.
Experimental
Indicates that the property/element is understood, but supported under an alternate name. May be incomplete or buggy.
Dropped
Indicates that the property/element is no longer supported.
Nightly build
Indicates that the property/element is supported to some extent in an experimental/nightly build. Future support is expected.
Depends
Indicates that the property/element is supported only on certain platforms, or if certain settings are configured.
Elements
While many of these elements, such as section
, have not been implemented natively in layout engines, support may be very easy to emulate using CSS or JavaScript .
Attributes
Element Specific
Attribute
Element
Trident
Gecko
WebKit
Presto
manifest
html
No
1.9
Yes
2.6[p 6] [p 7]
sizes
link
No
No
No[w 12]
No
charset
meta
3.1
Yes
Yes
Yes
scoped
style
No
No[g 11]
No
No
async
script
No
1.9.2[g 12]
No[w 13]
No
reversed
ol
No
No
No[w 14]
No
sandbox
iframe
No
No[g 13]
533[w 15]
No
seamless
iframe
No
No
No
No
Attribute
Element
Trident
Gecko
WebKit
Presto
Global
Trident
Gecko
WebKit
Presto
Datasets (data-*
)
No
No[g 14]
Nightly build [w 16]
No
contextmenu
No
No[g 15]
No
No
hidden
No
2.0[g 16]
Nightly build [w 17]
No
contenteditable
[4]
<3.1[IE 5.5]
1.9
Yes
2.0
spellcheck
[5]
No
1.8[g 17]
Incorrect[w 18]
No
draggable
No
1.9.1[g 18]
533[w 19]
No
Trident
Gecko
WebKit
Presto
Form elements and attributes
Many of these features can be emulated with third-party libraries.
APIs
Trident
Gecko
WebKit
Presto
getElementsByClassName
[7]
5.0[t 5]
1.9[g 49]
525
2.1
registerProtocolHandler
No
1.9[note 10]
No
No
registerContentHandler
No
1.8[note 11]
No
No
Cross-document messaging[8]
4.0
1.9[g 52]
Nightly build
2.0
Drag-and-drop
Partial
1.9.1[g 18]
Partial
No
pushState()
and replaceState()
No
2.0[g 53]
528[w 38]
No
Trident
Gecko
WebKit
Presto
Other features
Next-generation additions
The WHATWG version of HTML5 also includes additional features that are not technically HTML5, which are called "next-generation additions still in development" by the spec.[9]
Trident
Gecko
WebKit
Presto
<device>
No
No
No
No
<track>
No
No
No
No
<a ping>
No
Depends[g 58] [note 12]
No
No
Related specifications
Notes
↑ loop
attribute not supported,[g 6] poster
attribute supported as of 1.9.2.[g 7]
↑ Beginning in 2007,[p 1] several experimental builds have been released with Ogg Theora support. Full support for the video element is included in Presto 2.5.[p 2]
↑ loop
attribute not supported.[g 6]
↑ Presto added very limited support for the ECMAScript API related to the audio element in version 2.0 using only the WAV PCM codec, while not implementing the element itself.[p 3] Full support for the audio element with the Ogg Vorbis and WAV codecs is included in Presto 2.5.[p 2]
↑ media
attribute not implemented.[g 8]
↑ 6.0 6.1 Supported in XHTML and in HTML when the html5.enable
preference is set.[g 10]
↑ MathML for CSS, XHTML only[p 5]
↑ XHTML only
↑ 9.0 9.1 For file inputs only.
↑ Limited to the feed protocol in 1.8; fully supported in 1.9.[g 50]
↑ Limited to feed MIME types in 1.8 and 1.9.[g 51]
↑ The ping
attribute is disabled by default, due to privacy concerns.[g 59] [g 60]
↑ Currently partially supported in nightly builds for the Linux platform.[g 66]
↑ Geolocation support was added in Presto 2.5, but was not enabled by default until 2.6.[p 14] [p 15] [p 6] [p 7]
References
Trident references
↑ Ruby
↑ 2.0 2.1 2.2 2.3 Bisson, Simon (2010-09-17), Microsoft previews Internet Explorer 9 with HTML 5 support , ZDNet
↑ Hachamovitch, Dean (2010-06-23), HTML5, Native: Third IE9 Platform Preview Available for Developers , Microsoft
↑ PRB: HTML Tag KEYGEN Not Supported in Internet Explorer , Microsoft
↑ getElementsByClassName , Microsoft
↑ onhashchange Event , Microsoft
↑ Resig, John (2008-03-06), JavaScript in Internet Explorer 8
Gecko references
↑ Bug 559284 - Support for HTML5 sectioning elements (article, aside, footer, header, hgroup, nav, section): style as display:block , Mozilla
↑ Bug 562008 - HTML5 section DOM elements should be of type HTMLElement , Mozilla
↑ Bug 485377 - Implement HTML5's <mark> tag , Mozilla
↑ Bug 33339 - HTML5 <ruby> support , Mozilla, retrieved 2010-03-13
↑ 5.0 5.1 Implement the figure element , Mozilla
↑ 6.0 6.1 Bug 449157 - Implement the looping attributes in media elements , Mozilla
↑ Bug 449156 - Implement the poster attribute for the <video> element , Mozilla
↑ Source - MDC , Mozilla
↑ Canvas - MDC , Mozilla
↑ Zbarsky, Boris (2009-07-03), MathML in non-XML documents
↑ Bug 508725 - Implement HTML 5 scoped attribute on STYLE tag , Mozilla
↑ Bug 503481 - Implement async attribute of script element , Mozilla
↑ Bug 341604- Implement IFRAME's sandbox attribute , Mozilla
↑ Bug 560112 - Implement HTML5 dataset attribute , Mozilla
↑ Bug 512221 - oncontextmenu attribute is not working when applied to elements other than the body-tag , Mozilla
↑ Bug 567663 - Implement the hidden attribute , Mozilla
↑ Controlling spell checking in HTML forms , Mozilla
↑ 18.0 18.1 Blizzard, Christopher (2009-07-15), HTML5 drag and drop in Firefox 3.5
↑ User:Mounir.lamouri/HTML5 Forms , Mozilla
↑ Bug 556007 - Implement list attribute , Mozilla
↑ Bug 345822 - Implement required attribute for <input type="text">, <textarea> , Mozilla
↑ Bug 523771 - Support <input type=file multiple> , Mozilla
↑ Bug 345512 - Implement pattern attribute for <input type="text">, <textarea> , Mozilla
↑ Bug 556010 - Implement min and max attributes , Mozilla
↑ Bug 556009 - Implement step attribute , Mozilla
↑ Bug 457800 - Implement placeholder attribute for text input fields , Mozilla
↑ Bug 588683 - Implement form attribute , Mozilla
↑ Bug 546995 - Implement autofocus attribute for some form elements , Mozilla
↑ Bug 535043 - Support maxlength on textarea , Mozilla
↑ Bug 556013 - Implement novalidate attribute for form elements , Mozilla
↑ Bug 562932 - Implement control attribute for label element , Mozilla
↑ Bug 377624 - Implement the accept attribute for the form and file upload controls form "image/*" , Mozilla
↑ Bug 566064 - HTMLInputElement and HTMLButtonElement should implement formtarget attribute which override HTMLFormElement target attribute , Mozilla
↑ Bug 566160 - HTMLInputElement and HTMLButtonElement should implement formaction attribute which override HTMLFormElement action attribute , Mozilla
↑ 35.0 35.1 Bug 582412 - Implement @formmethod, @formenctype , Mozilla
↑ Bug 555840 - Implement datalist element , Mozilla
↑ Bug 101019 - Implement keygen element , Mozilla
↑ Bug 346485 - Implement Web Forms 2 <html:output/> , Mozilla
↑ Bug 514437 - Implement HTML 5 progress element , Mozilla
↑ Bug 555985 - Implement meter element , Mozilla
↑ Bug 456229 - Implement <input type="search"> for compatibility with Safari , Mozilla
↑ Bug 557620 - Implement <input type="telephone"> , Mozilla
↑ Bug 344615 - Implement <input type="url"> , Mozilla
↑ Bug 555559- Implement <input type="email"> , Mozilla
↑ Bug 446510 - Implement <input type="date"> and other date controls , Mozilla
↑ Bug 344616 - Implement <input type="number"> , Mozilla
↑ Bug 344618 - Implement <input type="range"> , Mozilla
↑ Bug 547004 - Implement <input type="color"> , Mozilla, retrieved 2010-02-18
↑ Bug 357450 - Implement getElementsByClassName , Mozilla
↑ window.navigator.registerProtocolHandler , Mozilla
↑ window.navigator.registerContentHandler , Mozilla
↑ Bug 387706 - (postMessage) Implement HTML5's cross-document messaging API (postMessage) , Mozilla
↑ Bug 500328 - Add support for HTML5 History.pushState(), History.replaceState() methods , Mozilla
↑ 54.0 54.1 Bug 373864 - Replace HTML parser with an HTML5 parser , Mozilla
↑ Bug 530396 - Support for <a rel="noreferrer"> functionality , Mozilla
↑ Bug 385434 - Add support for HTML5 onhashchange (event for named anchor changes) , Mozilla
↑ Bug 501257 - Implement HTML 5's HTMLElement.classList property , Mozilla
↑ Bug 319368 - Implement <a ping> , Mozilla
↑ Bug 324645 - <a ping> support should be opt-in, not opt-out, for Gecko-based apps , Mozilla
↑ Bug 319368 - Implement <a ping> (Comment 64) , Mozilla
↑ document.querySelector
↑ DOM Storage , Mozilla
↑ Implement Indexed Database API , Mozilla
↑ Bug 416327 - Implement Client-side database storage , Mozilla
↑ Using files from web applications , Mozilla
↑ Bug 451674 - (camera) Expose camera functionality to web content , Mozilla
↑ Bug 338583 - Add support for Server-Sent DOM Events (Remote Events) , Mozilla
↑ Bug 472529 - Support for Web sockets' HTML5 Draft Recommendation , Mozilla
↑ Bug 437152 - implement worker threads , Mozilla
↑ Using geolocation , Mozilla
↑ Offline resources in Firefox , Mozilla
Webkit references
↑ Bug 32936 - HTML5 <section> element support , WebKit
↑ Bug 27937 - Implement HTML5 nav element , WebKit
↑ Bug 32942 - HTML5 <article> element support , WebKit
↑ Bug 32943 - HTML5 <aside> element support , WebKit
↑ Bug 33369 - Implement HTML5 <hgroup> element. , WebKit
↑ Bug 41144 - Implement the HTML5 element. , WebKit
↑ Bug 28420 - Implement HTML5 <ruby> rendering , WebKit
↑ Steiner, Roland (2010-01-20), "Ruby Rendering in WebKit" , Surfin’ Safari (WebKit), retrieved 2010-01-21
↑ Bug 42373 - Changes to enable MathML , WebKit
↑ 11.0 11.1 11.2 Seidel, Eric (2010-08-05 ). "The HTML5 Parsing Algorithm" . Surfin' Safari . WebKit Project. Retrieved 5 August 2010 .
↑ Bug 37674 - Implement sizes attribute for link tag from HTML5 , WebKit
↑ Bug 20710 - WebKit should support defer and async on script elements , WebKit
↑ Bug 36724 - Add support for ol reversed , WebKit
↑ Bug 21288 - Implement HTML5's sandbox attribute for iframes , WebKit
↑ Bug 41146 - Implement the .dataset DOM property , WebKit
↑ Bug 40511 - Implement HTML5 hidden attribute , WebKit
↑ Bug 25537 - WebKit does not follow HTML5 spellcheck attribute logic for words split by spans , WebKit
↑ Bug 26262 - Implement HTML5 draggable , WebKit
↑ Bug 19264 - HTML5 Forms Implementation - Master bug , WebKit
↑ Bug 27247 - [HTML5][Forms] Part 5 of datalist&list: UI of `list' attribute of <input> , WebKit
↑ Almaer, Dion (2009-03-06), input type=”file” multiple; now in a real browser! , Ajaxian
↑ Bug 25552 - Support for HTML5 Forms "pattern" attribute , WebKit
↑ Bug 27450 - Support HTML5 min/max attributes and associated CSS selectors , WebKit
↑ Bug 27451 - Support HTML5 step attribute , WebKit
↑ Bug 18887 - WF2 Support for autofocus controls , WebKit
↑ Bug 29292 - [HTML5][Forms] Support for <textarea maxlength=N> , WebKit
↑ Bug 28145 - novalidate/formnovalidate support , WebKit
↑ Bug 27247 - Master bug of datalist element and list attribute implementation , WebKit
↑ Bug 29363 - [HTML5][Forms] Support for <output> element , WebKit
↑ Bug 37307 - [Chromium] Support for <progress> element , WebKit
↑ Bug 37074 - Support for HTMLMeterElement , WebKit
↑ Hyatt, David (July 2004), The Search Field
↑ 34.0 34.1 34.2 34.3 Bug 25554 - Implement HTML5 Input element types for Text Fields , WebKit
↑ Bug 29004 - [HTML5][Forms] simple implementation of date&time types of INPUT element , WebKit
↑ Bug 29359 – Add UIs for date and time types of <input>
↑ Bug 28966 - [HTML5][Forms] <input type=color> simple implementation , WebKit
↑ Bug 32052 - Implement HTML5 state object history API , WebKit
↑ Bug 39259 – MASTER: WebKit needs an HTML5 Tokenizer
↑ Chapin, Nate (2009-11-19), WebKit nightlies support HTML5 noreferrer link relation , retrieved 2009-11-20
↑ Bug 21605 - Support for HTML5 "hashchange" event , WebKit
↑ Bug 20709 - Implement HTML 5's HTMLElement.classList property , WebKit
↑ Smith, David (2008-02-07), querySelector and querySelectorAll
↑ Eidson, Brady (2007-10-19), WebKit Does HTML5 Client-side Database Storage , retrieved 2009-10-22
↑ Bug 36567 - Implement FileAPI/FileWriter , WebKit
↑ Bug 38157 - Implement FileReader class , WebKit
↑ Bug 14997 - Support for server-sent DOM events , WebKit
↑ Bug 21475 - Provide support for the Geolocation API , WebKit
Presto references
↑ A call for video on the web - Opera <video> release on Labs , Opera
↑ 2.0 2.1 2.2 Opera Core Concerns - (re-)Introducing <video> , Opera, archived from the original on 2010-01-04
↑ Web specifications supported in Opera 9.5 , Opera
↑ canvas
Support in Opera , Opera
↑ Chavchanidze, George (2008-06-12), Opera 9.5 released , Opera, archived from the original on 2008-10-13
↑ 6.0 6.1 6.2 6.3 Haavard (2010-06-14), HTML5, and then some , Opera, archived from the original on 2010-06-17
↑ 7.0 7.1 7.2 7.3 Kleinhout, Huib (2010-07-01), Opera 10.60 goes final , Opera, archived from the original on 2010-07-02
↑ HTML 5 Forms support in Opera Presto 2.2 , Opera
↑ Web specifications supported in Opera Presto 2.2 , Opera, 2009-10-19, retrieved 2010-02-18
↑ Haavard (2010-05-31), Opera 10.60 Alpha 1: Speed, eye-candy, and bug fixing , Opera, archived from the original on 2010-06-02
↑ Hunt, Lachlan (2008-05-22), Selectors API , Opera, archived from the original on 2008-05-27
↑ 12.0 12.1 Dixit, Shwetank (2009-12-16), Opera 10.5 Pre-Alpha build released: the new additions , Opera, archived from the original on 2009-12-25
↑ Bersvendsen, Arve (2006-09-01), Event Streaming to Web Browsers , Opera, archived from the original on 2006-10-16
↑ Nilsen, Petter (2010-02-05), Skin fixes, Unite, and then some , Opera, archived from the original on 2010-02-09
↑ Web specifications supported in Opera Presto 2.5 , Opera
Other references
↑ Amaya Binary Releases , Most recent download link in stable
↑ Download for kdelibs , Most recent download link in stable
↑ Studholme, Oli (2010-05-11), The ruby element and her hawt friends, rt and rp , HTML5 Doctor
↑ Pilgrim, Mark (2009-03-06), The Road to HTML 5: contentEditable
↑ Pilgrim, Mark (2009-03-04), The Road to HTML 5: spellchecking
↑ "keygen" , Mozilla Developer Center (Mozilla), retrieved 2010-03-13
↑ Koch, Peter-Paul, W3C DOM Compatibility - Core , QuirksMode
↑ Holzschlag, Molly (June 2009), A Selection of Supported Features in HTML5
↑ http://www.whatwg.org/specs/web-apps/current-work/#is-this-html5?
↑ Selectors API Level 1 , W3C
↑ Web Storage , W3C
↑ Indexed Database API , W3C
↑ Web SQL Database , W3C
↑ File API , W3C, 2009-11-17
↑ Media Capture API , W3C
↑ Server-Sent Events , W3C
↑ The Web Sockets API , W3C
↑ Web Workers , W3C
↑ Resig, John (2009-07-21), Computing with JavaScript Web Workers
↑ Geolocation API Specification , W3C
↑ 5.6 Offline Web applications — HTML5 , W3C
External links
Layout engines
Actively developed layout engines
Amaya
Blink
Gecko
KHTML
Prince
Servo
Trident
WebKit
Inactive layout engines
Boxely
Gazelle
GtkHTML
HTMLayout
iCab
Mariner
Presto
Tasman
Tkhtml
Comparison of layout engines
HTML
HTML5
XML
CSS
ECMAScript
DOM
Graphics
Typography
ru:Сравнение браузеров (HTML5)