Comparison of layout engines (HTML5)

From Seo Wiki - Search Engine Optimization and Programming Languages
Jump to navigationJump to search
HTML
File:HTML5.svg

The following tables compare support of HTML5 differences from HTML4 for a number of layout engines.

The specification is still a working draft, not a recommendation, and thus not stable. Unless otherwise specified in footnotes, comparisons are based on the stable versions 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 Used by
Trident Internet Explorer and other Internet Explorer shells (Microsoft Windows operating systems only)
Tasman Mac OS X versions of Internet Explorer and MSN
Gecko All Mozilla software, including Firefox; SeaMonkey; Galeon; Camino; K-Meleon; Flock; also Epiphany-gecko
WebKit Apple Safari; Google Chrome; Shiira; iCab 4; OmniWeb 5.5+; Epiphany; Adobe AIR; Midori; Adobe Dreamweaver CS4
KHTML Konqueror
Presto Opera; Opera Mobile, Nintendo DS Browser; Internet Channel; future Adobe Systems products
iCab iCab 1-3
Prince XML Prince

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.

Form elements and attributes

Trident Gecko WebKit Presto[1]
Attributes
autocomplete Yes Yes Yes 2.0
list No No No[2] 2.0
required No No[3] No 2.0
multiple No 1.9.2[n 1][4] 526[n 1][5][6] No
pattern No No[7] 528+[8] 2.0
min, max No No No[9] 2.0
step No No No[10] 2.0
placeholder No No[11] Yes[11] No
challenge[citation needed] No[12] Partial Partial Partial
keytype[citation needed] No[12] Partial Partial Partial
form No No No 2.0
autofocus No No 528+[13] 2.0
maxlength No 1.9.3[14] 528+[15] 2.0
novalidate No No 528+[16] No
Elements
datalist No No No 2.0
keygen[citation needed] No[12] Partial Partial Partial
output No No[17] No[18] 2.0
Input types
search No No[19] 312[20] No
tel No No 528+[21] No
url No No[22] 528+[21] 2.0
email No No 528+[21] 2.0
datetime No No[23] No[24] 2.0
date
month
week
time
datetime-local
number No No[25] 528+[21] 2.0
range No No[26] Yes 2.0
color No No 528+[27] No
Trident Gecko WebKit Presto

Many of these features can be emulated with third-party libraries.

Elements

Trident Gecko WebKit Presto
section No No 528+[28] No
nav No No 528+[29] No
article No No 528+[30] No
aside No No 528+[31] No
hgroup No No No[32] No
header No No 528+[33] No
footer No No 528+[33] No
time No No No No
mark No No No No
progress No No No No
meter No No No No
ruby, rt, rp Yes[34] No[35] 528+[36][37] No[38]
figure No No No No
embed 3.0 1.7 85 1.0
video No 1.9.1 (Ogg Theora)[n 2][39][40][41] 525 (H.264 and others)[42][43][44] 2.5 (Ogg Theora)[n 3]
audio No 1.9.1 (Ogg Vorbis, WAV)[n 4][39][41] 525[42][43][44] 2.0 (Ogg Vorbis, WAV)[n 5]
source No 1.9.1[n 6][39][40][41] 525[43] 2.5[45]
canvas No 1.8[46] Partial 2.0[47]
Inline MathML No Partial[n 7] No[49] 2.1[n 8]
Inline SVG No Partial[n 9] Partial[n 10] 1.0[51][n 10]
details No No No No
command No No No No
menu No No No No
Trident Gecko WebKit Presto

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 No
sizes link No No No No
charset meta Yes Yes Yes Yes
scoped style No No No No
async script No 1.9.2[52] No No
ping a, area No No[n 11] No No
reversed ol No No No No
sandbox iframe No No 528+[54] No
seamless iframe No No No No
Attribute Element Trident Gecko WebKit Presto

Global

Trident Gecko WebKit Presto
Datasets (data-*) No No No No
contextmenu No No No No
hidden No No No No
contenteditable[55] 5.5 1.9 Yes 2.0
spellcheck[56] No Yes No No
draggable No 1.9.1[57] 528+[58] No
Trident Gecko WebKit Presto

APIs

Trident Gecko WebKit Presto
getElementsByClassName[59] No 1.9[60] 525 2.1
registerProtocolHandler No 1.9[n 12] No No
registerContentHandler No 1.8[n 13] No No
Cross-document messaging[63] 8.0 1.9[64] 528+ 2.0
Drag-and-drop Partial 1.9.1[57] Partial No
pushState() and replaceState() No 1.9.3[65] 528+[66] No
Trident Gecko WebKit Presto

Other features

Trident Gecko WebKit Presto
Microdata No No No No
Parsing HTML documents No Experimental[n 14] No 2.2[38]
<a rel="noreferrer"> No No 528+[67] No
window.onhashchange 8.0[68] 1.9.2[69] No No
element.classList No 1.9.2[70] No No
Trident Gecko WebKit Presto

Related specifications

Trident Gecko WebKit Presto
Selectors API[71] 8.0[72] 1.9.1[73] 525[74] 2.2[75]
Web Storage[76] 8.0 1.8[n 15] 525 2.5[79]
Web Database[80] No No Yes[81] 2.5[79]
Server-sent Events[82] No No[83] No 2.0
Web Sockets[84] No No[85] Yes[n 16][86] No
Web Workers[87][88] No 1.9.1[89] Yes No
Geolocation API[90] No 1.9.1[91] 528+[92] No[93]
Trident Gecko WebKit Presto

Notes

  1. 1.0 1.1 For file inputs only.
  2. loop attribute not supported (bug 449157), poster attribute supported as of 1.9.2 (bug 449156).
  3. Beginning in 2007, several experimental builds have been released with Ogg Theora support (A call for video), and full support for the video element is included in a pre-alpha release of Opera 10.50 (Presto 2.5) ((re-)Introducing video).
  4. loop attribute not supported (bug 449157).
  5. Opera added very limited support for the ECMAScript API related to the audio element in version 9, while not implementing the element itself (Web specifications). Full support for the audio element with the Ogg Vorbis codec was first showcased in a pre-alpha release of Opera 10.50 (Presto 2.5) ((re-)Introducing video).
  6. media attribute not implemented.
  7. Supported in XHTML and in HTML when the html5.enable preference is set.[48]
  8. MathML for CSS, XHTML only[50]
  9. Supported in XHTML and in HTML when the html5.enable preference is set.
  10. 10.0 10.1 XHTML only
  11. Experimental implementation has been turned off by default in 1.9 due to specification changes late in the development cycle.[53]
  12. Limited to the feed protocol in 1.8; fully supported in 1.9.[61]
  13. Limited to feed MIME types in 1.8 and 1.9.[62]
  14. Supported when the html5.enable preference is set.
  15. Fails when the key is an empty string.[77][78]
  16. In Chromium.

References

  1. HTML 5 Forms support in Opera Presto 2.2, Opera, http://www.opera.com/docs/specs/presto22/forms/ 
  2. Bug 27247 - Template:BracketTemplate:Bracket Part 5 of datalist&list: UI of `list' attribute of <input>, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27247 
  3. Bug 345822 - Implement required attribute for <input type="text">, <textarea>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=345822 
  4. Bug 523771 - Support <input type=file multiple>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=523771 
  5. http://trac.webkit.org/changeset/37863
  6. Almaer, Dion (2009-03-06), input type=”file” multiple; now in a real browser!, Ajaxian, http://ajaxian.com/archives/input-typefile-multiple-now-in-a-real-browser 
  7. Bug 345512 - Implement pattern attribute for <input type="text">, <textarea>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=345512 
  8. Bug 25552 - Support for HTML5 Forms "pattern" attribute, WebKit, https://bugs.webkit.org/show_bug.cgi?id=25552 
  9. Bug 27450 - Support HTML5 min/max attributes and associated CSS selectors, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27450 
  10. Bug 27451 - Support HTML5 step attribute, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27451 
  11. 11.0 11.1 Bug 457800 - Implement placeholder attribute for text input fields, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=457800 
  12. 12.0 12.1 12.2 PRB: HTML Tag KEYGEN Not Supported in Internet Explorer, Microsoft, http://support.microsoft.com/kb/190282 
  13. Bug 18887 - WF2 Support for autofocus controls, WebKit, https://bugs.webkit.org/show_bug.cgi?id=18887 
  14. Bug 535043 - Support maxlength on textarea, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=535043 
  15. Bug 29292 - Template:BracketTemplate:Bracket Support for <textarea maxlength=N>, WebKit, https://bugs.webkit.org/show_bug.cgi?id=29292 
  16. Bug 28145 - novalidate/formnovalidate support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=28145 
  17. Bug 346485 - Implement Web Forms 2 <html:output/>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=346485 
  18. Bug 29363 - Template:BracketTemplate:Bracket Support for <output> element, WebKit, https://bugs.webkit.org/show_bug.cgi?id=29363 
  19. Bug 456229 - Implement <input type="search"> for compatibility with Safari, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=456229 
  20. Hyatt, David (July 2004), Surfin' Safari, http://weblogs.mozillazine.org/hyatt/archives/2004_07.html 
  21. 21.0 21.1 21.2 21.3 Bug 25554 - Implement HTML5 Input element types for Text Fields, WebKit, https://bugs.webkit.org/show_bug.cgi?id=25554 
  22. Bug 344615 - Implement <input type="url">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=344615 
  23. Bug 446510 - Implement <input type="date"> and other date controls, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=446510 
  24. Bug 29004 - Template:BracketTemplate:Bracket simple implementation of date&time types of INPUT element, WebKit, https://bugs.webkit.org/show_bug.cgi?id=29004 
  25. Bug 344616 - Implement <input type="number">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=344616 
  26. Bug 344618 - Implement <input type="range">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=344618 
  27. Bug 28966 - Template:BracketTemplate:Bracket <input type=color> simple implementation, WebKit, https://bugs.webkit.org/show_bug.cgi?id=28966 
  28. Bug 32936 - HTML5 <section> element support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32936 
  29. Bug 27937 - Implement HTML5 nav element, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27937 
  30. Bug 32942 - HTML5 <article> element support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32942 
  31. Bug 32943 - HTML5 <aside> element support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32943 
  32. Bug 33369 - Implement HTML5 <hgroup> element., WebKit, https://bugs.webkit.org/show_bug.cgi?id=33369 
  33. 33.0 33.1 Bug 32944 - HTML5 <header> and <footer> elements support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32944 
  34. http://docs.google.com/View?id=dcgd8hk6_0ccsw4td4
  35. Bug 33339 - (ruby) XHTML <ruby> support, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=ruby 
  36. Bug 28420 - Implement HTML5 <ruby> rendering, WebKit, https://bugs.webkit.org/show_bug.cgi?id=28420 
  37. Steiner, Roland (2010-01-20), "Ruby Rendering in WebKit", Surfin’ Safari (WebKit), http://webkit.org/blog/948/ruby-rendering-in-webkit/, retrieved 2010-01-21 
  38. 38.0 38.1 http://www.opera.com/docs/specs/presto22/
  39. 39.0 39.1 39.2 Eric Shepherd (2009-05-28), Media formats supported by the audio and video elements, Mozilla developer center, https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements, retrieved 2009-10-11 
  40. 40.0 40.1 https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox
  41. 41.0 41.1 41.2 MozillaWiki (2009-03-18), Firefox3.5/Features, MozillaWiki, https://wiki.mozilla.org/Firefox3.5/Features, retrieved 2009-10-11 
  42. 42.0 42.1 HTML5 Media Support (in WebKit/Safari), http://webkit.org/blog/140/html5-media-support/, retrieved 2007-11-13 
  43. 43.0 43.1 43.2 Peter Davison (2009-09-22), Apple WebKit Browsers including Apple Safari, Legend Scrolls, http://www.legendscrolls.co.uk/webstandards/webkit, retrieved 2009-10-11 
  44. 44.0 44.1 WebCore-5525.18.1 ChangeLog, http://www.opensource.apple.com/source/WebCore/WebCore-5525.18.1/ChangeLog, retrieved 2009-10-25 
  45. (re-)Introducing video
  46. Canvas - MDC, Mozilla, https://developer.mozilla.org/en/HTML/Canvas 
  47. canvas Support in Opera, Opera, http://www.opera.com/docs/specs/opera9/canvas/ 
  48. http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-July/020741.html
  49. http://webkit.org/projects/mathml/index.html
  50. http://my.opera.com/mathml/blog/2008/06/12/opera-9-5-released
  51. http://www.opera.com/docs/history/
  52. Bug 503481 - Implement async attribute of script element, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=503481 
  53. "Bug 415168 - Disable <a ping> for Firefox 3". Mozilla. https://bugzilla.mozilla.org/show_bug.cgi?id=415168. Retrieved 2008-02-04. 
  54. https://bugs.webkit.org/show_bug.cgi?id=21288
  55. http://blog.whatwg.org/the-road-to-html-5-contenteditable
  56. http://blog.whatwg.org/the-road-to-html-5-spellchecking
  57. 57.0 57.1 http://hacks.mozilla.org/2009/07/html5-drag-and-drop/
  58. Bug 26262 - Implement HTML5 draggable, WebKit, https://bugs.webkit.org/show_bug.cgi?id=26262 
  59. http://www.quirksmode.org/dom/w3c_core.html
  60. Bug 357450 - Implement getElementsByClassName, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=357450 
  61. "DOM:window.navigator.registerProtocolHandler". Mozilla Developer Center. http://developer.mozilla.org/en/docs/DOM:window.navigator.registerProtocolHandler. Retrieved 2008-02-04. 
  62. "DOM:window.navigator.registerContentHandler". Mozilla Developer Center. http://developer.mozilla.org/en/docs/DOM:window.navigator.registerContentHandler#Notes. Retrieved 2008-02-04. 
  63. Holzschlag, Molly (June 2009), A Selection of Supported Features in HTML5, http://molly.com/html5/html5-0709.html 
  64. https://bugzilla.mozilla.org/show_bug.cgi?id=postmessage
  65. Bug 500328 - Add support for HTML5 History.pushState(), History.replaceState() methods, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=500328, retrieved 2010-02-02 
  66. Bug 32052 - Implement HTML5 state object history API, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32052, retrieved 2010-02-02 
  67. Chapin, Nate (2009-11-19), WebKit nightlies support HTML5 noreferrer link relation, http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/, retrieved 2009-11-20 
  68. http://msdn.microsoft.com/en-us/library/cc288209%28VS.85%29.aspx
  69. https://bugzilla.mozilla.org/show_bug.cgi?id=385434
  70. https://bugzilla.mozilla.org/show_bug.cgi?id=501257
  71. http://dev.w3.org/2006/webapi/selectors-api/
  72. http://ejohn.org/blog/javascript-in-internet-explorer-8/
  73. https://developer.mozilla.org/En/DOM/Document.querySelector
  74. http://webkit.org/blog/156/queryselector-and-queryselectorall/
  75. http://my.opera.com/core/blog/selectors-api
  76. http://dev.w3.org/html5/webstorage/
  77. [1]
  78. [2]
  79. 79.0 79.1 http://my.opera.com/ODIN/blog/opera-10-5-pre-alpha-build-released-here-is-whats-new
  80. http://dev.w3.org/html5/webdatabase/
  81. Eidson, Brady (2007-10-19), WebKit Does HTML5 Client-side Database Storage, http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/, retrieved 2009-10-22 
  82. http://dev.w3.org/html5/eventsource/
  83. Bug 338583 - Add support for Server-Sent DOM Events (Remote Events), Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=338583, retrieved 2009-03-30 
  84. http://dev.w3.org/html5/websockets/
  85. Bug 472529 - Support for Web sockets' HTML5 Draft Recommendation, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=472529, retrieved 2010-01-21 
  86. http://code.google.com/p/chromium/issues/detail?id=12497
  87. http://dev.w3.org/html5/workers/
  88. http://ejohn.org/blog/web-workers/
  89. Bug 437152 - implement worker threads, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=437152, retrieved 2010-01-21 
  90. http://dev.w3.org/geo/api/spec-source.html
  91. https://developer.mozilla.org/En/Using_geolocation
  92. https://bugs.webkit.org/show_bug.cgi?id=21475
  93. http://labs.opera.com/news/2009/03/26/

External links

If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...