BrowseAtWork.com:   [ UP ]   [Manage cookies]

Comparison of layout engines (HTML5)

From Wikipedia, the free encyclopedia

Jump to: navigation, search
HTML
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 W3C 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.

Contents

[edit] Explanation of the tables

[edit] 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
Amaya Amaya
Gecko All Mozilla software, including Firefox; SeaMonkey and Galeon; Camino; K-Meleon; Flock; also Epiphany-gecko
iCab iCab 1-3
KHTML Konqueror
Presto Opera; Opera Mobile, Nintendo DS & DSi Browser‎; Internet Channel
Prince Prince XML
Tasman Mac OS X versions of Internet Explorer and MSN
Trident Internet Explorer and other Internet Explorer shells (Microsoft Windows operating systems only)
WebKit Apple Safari; Google Chrome; Shiira; iCab 4; OmniWeb 5.5+; Epiphany; Adobe AIR; Midori; Adobe Dreamweaver CS4; Palm WebOS browser; Symbian S60 browser; OWB

[edit] 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.

[edit] Form elements and attributes

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

Trident Gecko WebKit Presto[p 1]
Attributes
autocomplete Yes Yes Yes 2.0
list No No No[w 1] 2.0
required No No[g 1] No 2.0
multiple No 1.9.2[note 1][g 2] 526[note 1][w 2] No
pattern No No[g 3] 528+[w 3] 2.0
min, max No No No[w 4] 2.0
step No No No[w 5] 2.0
placeholder No 1.9.3[g 4] Partial No
form No No No 2.0
autofocus No No[g 5] 528+[w 6] 2.0
maxlength No 1.9.3[g 6] 528+[w 7] 2.0
novalidate No No 528+[w 8] No
Elements
datalist No No No 2.0
keygen[1] No[t 1] 1.0 125 1.0
output No No[g 7] No[w 9] 2.0
Input types
search No No[g 8] 312[w 10] No
tel No No 528+[w 11] No
url No No[g 9] 528+[w 11] 2.0
email No No 528+[w 11] 2.0
datetime No No[g 10] No[w 12] 2.0
date
month
week
time
datetime-local
number No No[g 11] 528+[w 11] 2.0
range No No[g 12] Yes 2.0
color No No[g 13] 528+[w 13] No
Trident Gecko WebKit Presto

[edit] 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.

Trident Gecko WebKit Presto
section No No 528+[w 14] No
nav No No 528+[w 15] No
article No No 528+[w 16] No
aside No No 528+[w 17] No
hgroup No No 528+[w 18] No
header No No 528+[w 19] No
footer No No 528+[w 19] 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[t 2] No[g 14] 528+[w 20][w 21] No
figure No No No No
figcaption No No No No
embed 3.0 1.7 85 1.0
video 9.0[t 3] 1.9.1[note 2] 525 2.5[note 3]
audio 9.0[t 3] 1.9.1[note 4] 525 2.5[note 5]
source 9.0[t 3] 1.9.1[note 6] 525 2.5[p 3]
canvas No 1.8[g 18] Partial 2.0[p 5]
Inline MathML No Partial[note 7] No[w 22] 2.1[note 8]
Inline SVG 9.0[t 3] Partial[note 7] Partial[note 9] 1.0[note 9]
details No No No No
summary No No No No
command No No No No
menu No No No No
Trident Gecko WebKit Presto

[edit] Attributes

[edit] 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[g 20] No[w 23] No
reversed ol No No No No
sandbox iframe No No 528+[w 24] No
seamless iframe No No No No
Attribute Element Trident Gecko WebKit Presto

[edit] Global

Trident Gecko WebKit Presto
Datasets (data-*) No No No No
contextmenu No No No No
hidden No No No No
contenteditable[2] 5.5 1.9 Yes 2.0
spellcheck[3] No Yes No No
draggable No 1.9.1[g 21] 528+[w 25] No
Trident Gecko WebKit Presto

[edit] APIs

Trident Gecko WebKit Presto
getElementsByClassName[4] No 1.9[g 22] 525 2.1
registerProtocolHandler No 1.9[note 10] No No
registerContentHandler No 1.8[note 11] No No
Cross-document messaging[5] 8.0 1.9[g 25] 528+ 2.0
Drag-and-drop Partial 1.9.1[g 21] Partial No
pushState() and replaceState() No 1.9.3[g 26] 528+[w 26] No
Trident Gecko WebKit Presto

[edit] Other features

Trident Gecko WebKit Presto
Microdata No No No No
Parsing HTML documents No Depends[note 12] No Partial[p 7]
<a rel="noreferrer"> No No[g 27] 528+[w 27] No
window.onhashchange 8.0[t 4] 1.9.2[g 28] 528+[w 28] No
element.classList No 1.9.2[g 29] No[w 29] No
Trident Gecko WebKit Presto

[edit] Related specifications

Trident Gecko WebKit Presto
Selectors API[6] 8.0[t 5] 1.9.1[g 30] 525[w 30] 2.2[p 8]
Web Storage[7] 8.0 1.8[note 13] 525 2.5[p 9]
Web Database[8] No No Yes[w 31] 2.5[p 9]
Server-sent Events[9] No No[g 33] No 2.0
Web Sockets[10] No No[g 34] Yes[note 14] No
Web Workers[11][12] No 1.9.1[g 35] Yes No
Geolocation API[13] No 1.9.1[g 36] 528+[w 33] Depends[note 15]
Trident Gecko WebKit Presto

[edit] Notes

  1. ^ a b For file inputs only.
  2. ^ loop attribute not supported,[g 15] poster attribute supported as of 1.9.2.[g 16]
  3. ^ Beginning in 2007,[p 2] several experimental builds have been released with Ogg Theora support. Full support for the video element will be included in Presto 2.5.[p 3]
  4. ^ loop attribute not supported.[g 15]
  5. ^ 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 4] Full support for the audio element with the Ogg Vorbis and WAV codecs will be included in Presto 2.5.[p 3]
  6. ^ media attribute not implemented.[g 17]
  7. ^ a b Supported in XHTML and in HTML when the html5.enable preference is set.[g 19]
  8. ^ MathML for CSS, XHTML only[p 6]
  9. ^ a b XHTML only
  10. ^ Limited to the feed protocol in 1.8; fully supported in 1.9.[g 23]
  11. ^ Limited to feed MIME types in 1.8 and 1.9.[g 24]
  12. ^ Supported when the html5.enable preference is set.
  13. ^ Fails when the key is an empty string.[g 31][g 32]
  14. ^ In Chromium.[w 32]
  15. ^ Geolocation support was added in Presto 2.5, but is not enabled by default.[p 10][14]

[edit] References

[edit] Trident references

[edit] Gecko references

  1. ^ Bug 345822 - Implement required attribute for <input type="text">, <textarea>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=345822 
  2. ^ Bug 523771 - Support <input type=file multiple>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=523771 
  3. ^ Bug 345512 - Implement pattern attribute for <input type="text">, <textarea>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=345512 
  4. ^ Bug 457800 - Implement placeholder attribute for text input fields, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=457800 
  5. ^ Bug 546995 - Implement autofocus attribute for some form elements, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=546995 
  6. ^ Bug 535043 - Support maxlength on textarea, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=535043 
  7. ^ Bug 346485 - Implement Web Forms 2 <html:output/>, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=346485 
  8. ^ Bug 456229 - Implement <input type="search"> for compatibility with Safari, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=456229 
  9. ^ Bug 344615 - Implement <input type="url">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=344615 
  10. ^ Bug 446510 - Implement <input type="date"> and other date controls, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=446510 
  11. ^ Bug 344616 - Implement <input type="number">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=344616 
  12. ^ Bug 344618 - Implement <input type="range">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=344618 
  13. ^ Bug 547004 - Implement <input type="color">, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=547004, retrieved 2010-02-18 
  14. ^ Bug 33339 - HTML5 <ruby> support, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=33339, retrieved 2010-03-13 
  15. ^ a b Bug 449157 - Implement the looping attributes in media elements, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=449157 
  16. ^ Bug 449156 - Implement the poster attribute for the <video> element, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=449156 
  17. ^ Source - MDC, Mozilla, https://developer.mozilla.org/En/HTML/Element/Source 
  18. ^ Canvas - MDC, Mozilla, https://developer.mozilla.org/en/HTML/Canvas 
  19. ^ Zbarsky, Boris (2009-07-03), MathML in non-XML documents, http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-July/020741.html 
  20. ^ Bug 503481 - Implement async attribute of script element, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=503481 
  21. ^ a b Blizzard, Christopher (2009-07-15), HTML5 drag and drop in Firefox 3.5, http://hacks.mozilla.org/2009/07/html5-drag-and-drop/ 
  22. ^ Bug 357450 - Implement getElementsByClassName, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=357450 
  23. ^ window.navigator.registerProtocolHandler, Mozilla, https://developer.mozilla.org/en/DOM/window.navigator.registerProtocolHandler 
  24. ^ window.navigator.registerContentHandler, Mozilla, https://developer.mozilla.org/en/DOM/window.navigator.registerContentHandler 
  25. ^ Bug 387706 - (postMessage) Implement HTML5's cross-document messaging API (postMessage), Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=387706 
  26. ^ Bug 500328 - Add support for HTML5 History.pushState(), History.replaceState() methods, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=500328 
  27. ^ Bug 530396 - Support for <a rel="noreferrer"> functionality, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=530396 
  28. ^ Bug 385434 - Add support for HTML5 onhashchange (event for named anchor changes), Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=385434 
  29. ^ Bug 501257 - Implement HTML 5's HTMLElement.classList property, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=501257 
  30. ^ document.querySelector, https://developer.mozilla.org/En/DOM/Document.querySelector 
  31. ^ HTML 5 Test Suite: localStorage - empty string as a key, Microsoft, http://samples.msdn.microsoft.com/ietestcenter/HTML5/DOMStorage/localStorage_empty_key.htm 
  32. ^ HTML 5 Test Suite: sessionStorage - empty string as a key, Microsoft, http://samples.msdn.microsoft.com/ietestcenter/HTML5/DOMStorage/sessionStorage_empty_key.htm 
  33. ^ Bug 338583 - Add support for Server-Sent DOM Events (Remote Events), Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=338583 
  34. ^ Bug 472529 - Support for Web sockets' HTML5 Draft Recommendation, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=472529 
  35. ^ Bug 437152 - implement worker threads, Mozilla, https://bugzilla.mozilla.org/show_bug.cgi?id=437152 
  36. ^ Using geolocation, Mozilla, https://developer.mozilla.org/En/Using_geolocation 

[edit] Webkit references

  1. ^ Bug 27247 - [HTML5][Forms] Part 5 of datalist&list: UI of `list' attribute of <input>, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27247 
  2. ^ 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 
  3. ^ Bug 25552 - Support for HTML5 Forms "pattern" attribute, WebKit, https://bugs.webkit.org/show_bug.cgi?id=25552 
  4. ^ Bug 27450 - Support HTML5 min/max attributes and associated CSS selectors, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27450 
  5. ^ Bug 27451 - Support HTML5 step attribute, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27451 
  6. ^ Bug 18887 - WF2 Support for autofocus controls, WebKit, https://bugs.webkit.org/show_bug.cgi?id=18887 
  7. ^ Bug 29292 - [HTML5][Forms] Support for <textarea maxlength=N>, WebKit, https://bugs.webkit.org/show_bug.cgi?id=29292 
  8. ^ Bug 28145 - novalidate/formnovalidate support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=28145 
  9. ^ Bug 29363 - [HTML5][Forms] Support for <output> element, WebKit, https://bugs.webkit.org/show_bug.cgi?id=29363 
  10. ^ Hyatt, David (July 2004), The Search Field, http://weblogs.mozillazine.org/hyatt/archives/2004_07.html#005890 
  11. ^ a b c d Bug 25554 - Implement HTML5 Input element types for Text Fields, WebKit, https://bugs.webkit.org/show_bug.cgi?id=25554 
  12. ^ Bug 29004 - [HTML5][Forms] simple implementation of date&time types of INPUT element, WebKit, https://bugs.webkit.org/show_bug.cgi?id=29004 
  13. ^ Bug 28966 - [HTML5][Forms] <input type=color> simple implementation, WebKit, https://bugs.webkit.org/show_bug.cgi?id=28966 
  14. ^ Bug 32936 - HTML5 <section> element support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32936 
  15. ^ Bug 27937 - Implement HTML5 nav element, WebKit, https://bugs.webkit.org/show_bug.cgi?id=27937 
  16. ^ Bug 32942 - HTML5 <article> element support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32942 
  17. ^ Bug 32943 - HTML5 <aside> element support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32943 
  18. ^ Bug 33369 - Implement HTML5 <hgroup> element., WebKit, https://bugs.webkit.org/show_bug.cgi?id=33369 
  19. ^ a b Bug 32944 - HTML5 <header> and <footer> elements support, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32944 
  20. ^ Bug 28420 - Implement HTML5 <ruby> rendering, WebKit, https://bugs.webkit.org/show_bug.cgi?id=28420 
  21. ^ 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 
  22. ^ Bug 3251 - Implement MathML (master bug), WebKit, https://bugs.webkit.org/show_bug.cgi?id=3251 
  23. ^ Bug 20710 - WebKit should support defer and async on script elements, WebKit, https://bugs.webkit.org/show_bug.cgi?id=20710 
  24. ^ Bug 21288 - Implement HTML5's sandbox attribute for iframes, WebKit, https://bugs.webkit.org/show_bug.cgi?id=21288 
  25. ^ Bug 26262 - Implement HTML5 draggable, WebKit, https://bugs.webkit.org/show_bug.cgi?id=26262 
  26. ^ Bug 32052 - Implement HTML5 state object history API, WebKit, https://bugs.webkit.org/show_bug.cgi?id=32052 
  27. ^ 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 
  28. ^ Bug 21605 - Support for HTML5 "hashchange" event, WebKit, https://bugs.webkit.org/show_bug.cgi?id=21605 
  29. ^ Bug 20709 - Implement HTML 5's HTMLElement.classList property, WebKit, https://bugs.webkit.org/show_bug.cgi?id=20709 
  30. ^ Smith, David (2008-02-07), querySelector and querySelectorAll, http://webkit.org/blog/156/queryselector-and-queryselectorall/ 
  31. ^ 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 
  32. ^ Issue 12497: Add HTML 5 WebSocket support, Google, http://code.google.com/p/chromium/issues/detail?id=12497 
  33. ^ Bug 21475 - Provide support for the Geolocation API, WebKit, https://bugs.webkit.org/show_bug.cgi?id=21475 

[edit] Presto references

[edit] Other references

[edit] External links