Comparison of browser engines (HTML support)

This article needs to be updated. Please help update this article to reflect recent events or newly available information. (April 2018)

|

HTML

* Dynamic HTML
* HTML5
* audio
* canvas
* video
* XHTML
* Basic
* Mobile Profile
* C-HTML
* HTML element
* span and div
* HTML attribute
* HTML frame
* HTML editor
* Character encodings
* Unicode
* Language code
* Document Object Model
* Browser Object Model
* Style sheets
* CSS
* Font family
* Web colors
* JavaScript
* WebGL
* WebCL
* W3C
* Validator
* WHATWG
* Quirks mode
* Web storage
* Rendering engine

Comparisons

* Document markup languages
* HTML support
* XHTML
* 1.1

This article compares HTML support by several browser engines.

Support for the many new additions of the current HTML5 standard is in its own section after the items that preceded it in the history of HTML.

## Contents

* 1 Explanation of the tables
* 1.1 Values
* 2 Prior to HTML5
* 2.1 Global structure elements
* 2.2 Text elements
* 2.3 List elements
* 2.4 Table elements
* 2.5 Link elements
* 2.6 Multimedia elements
* 2.7 Frame elements
* 2.8 Form elements
* 2.9 Presentational elements
* 2.10 Stylesheet elements
* 2.11 Script elements
* 2.12 Language elements
* 2.13 Generic attributes
* 2.14 Non-standard items
* 3 HTML5
* 3.1 Element-specific attributes
* 3.2 Global attributes
* 3.3 Form elements and attributes
* 3.4 APIs
* 3.5 Other features
* 3.6 Next-generation additions
* 3.7 Related specifications
* 3.8 Media functions
* 3.8.1 Element attributes
* 3.8.2 DOM attributes
* 3.8.3 DOM events
* 3.8.4 Video format support
* 3.8.5 Audio format support
* 3.9 Canvas functions
* 3.9.1 Supported contexts
* 3.9.2 Rendering Context 2D
* 4 See also
* 5 Notes
* 6 References

## Explanation of the tables[edit]

Engine  | Status  | Embedded in

|
|

WebKit | Active  | Safari browser, plus all browsers hosted on the iOS App Store.
Blink | Active  | Google Chrome and other web browsers based on Chromium, such as Microsoft Edge, Opera, and Brave.
EdgeHTML | Active  | Universal Windows Platform apps; formerly in the Edge browser[1].
Gecko | Active  | Firefox browser and Thunderbird email client, plus forks like SeaMonkey and Waterfox.
KHTML | Active  | Konqueror browser
Presto | Discontinued  | Formerly used as Opera's browser engine, prior to the migration to Chromium and Blink.
Trident | Discontinued  | Internet Explorer and versions of Microsoft Outlook prior to Outlook 2007.

### Values[edit]

These indicate the level of support for the given item in each engine. By default, the most recent version of the engine is implied. However, a specific version number can be listed; when this indicates full support, it's the initial version of the engine fully supporting the item.

Legend  Value  | Meaning

|

Yes  | Fully supported
No  | Has never been supported
Partial  | Only some values are supported
Incorrect  | Not implemented correctly in all cases
Experimental  | May be incomplete or buggy
Nightly build | Currently in development; full support is expected
Depends  | Only supported for the specified conditions
Dropped  | No longer supported

## Prior to HTML5[edit]

### Global structure elements[edit]

The global structure of the document.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Basic structure
`html` | <3.1[IE 5.0] | Yes  | Yes  | Yes  | 1.0
`head` | <3.1[IE 4.0]
`body`
Metadata
`title` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`meta`
Headings
`h1` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`h2`
`h3`
`h4`
`h5`
`h6`
Grouping elements
`div` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`span`

### Text elements[edit]

Elements that represent text.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Phrase
`em` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`strong`
`dfn`
`code`
`samp`
`kbd`
`var`
`cite`
`acronym`
`abbr.` | 3.1
Quotations
`blockquote` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`q` | 4.0  | 1.8[note 1]
Subscripts and superscripts
`sub` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`sup`
Lines and paragraphs
`p` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`pre`
`br` | <3.1[IE 5.0]
Marking document changes
`ins` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`del`

### List elements[edit]

Elements that represent lists of information.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Unordered and ordered lists
`ul` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`ol`
`li`
Definition lists
`dl` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`dt`
`dd`

### Table elements[edit]

Elements that represent tabular information.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Basic table elements
`table` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`caption`
`tr`
`th`
`td`
Row groups
`thead` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`tbody`
`tfoot`
Column groups
`colgroup` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`col`

### Link elements[edit]

Hyperlinks, one of the primary forces driving the success of the World Wide Web.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

`a` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`link`
`base`

### Multimedia elements[edit]

Multimedia features including images, applets, video clips, and other HTML documents.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Images
`img` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
Generic inclusion
`object` | 4.0[note 2] | 1.0  | Yes  | Yes  | 1.0
`param` | <3.1[IE 6.0]
Image maps
`map` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`area` | 5.0

### Frame elements[edit]

Elements to present documents in multiple views, which may be independent windows or subwindows. Frame layout is only available in the frameset profiles. All frames are not available in XHTML 1.1 (use generic object elements instead for inline frames).

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Frame layout
`frameset` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`frame`
`noframes`
Inline frames
`iframe` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0

### Form elements[edit]

The user interface controls for interacting with the web server.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Basic structure
`form` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`fieldset`
`legend`
Form controls and labels
`button` | <3.1[IE 4.0]

[note 3]

| 1.0  | Yes  | Yes  | 1.0
`textarea` | <3.1[IE 4.0]
`input`
`label` | 3.4.2[note 4]
List boxes (combo boxes)
`select` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`optgroup`
`option`

### Presentational elements[edit]

Elements that specify presentational information. Although not all elements are deprecated, their use is discouraged in favor of stylesheets. Deprecated elements are not available in the strict profiles and XHTML 1.1.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Font styles
`b` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`i`
`big`
`small`
`tt`
Horizontal rules
`hr` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0

### Stylesheet elements[edit]

The ways to apply stylesheets (CSS) to the document.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

`<link rel="style" ... />` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`style` | 6.0[note 5]

### Script elements[edit]

Elements for embedding client-side script (JavaScript). See also DOM Events for a list of attributes used to attach an event handler to an element.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

`script` | <3.1[IE 5.0] | 1.0  | Yes  | Yes  | 1.0
`noscript` | Incorrect[note 6]

### Language elements[edit]

Elements related to language information.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

`bdo` | <3.1[IE 5.0] | 1.0  | Yes  | Partial[note 7] | 1.0

### Generic attributes[edit]

Attributes that can be used in any elements.

| Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|

Element identifiers
`id` | <3.1[IE 3.0] | 1.0  | Yes  | Yes  | 1.0
`class`
Inline styles
`style` | <3.1[IE 3.0] | 1.0  | Yes  | Yes  | 1.0
Advisory information
`title` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
Language information
`lang` | <3.1[IE 4.0] | 1.0  | Yes  | Yes  | 1.0
`dir` | <3.1[IE 5.0]

### Non-standard items[edit]

In the early years of the Web, the standards which today are used in most web browsers and web pages were mostly non-existent. Different browsers and HTML editors were being offered by competing vendors such as Netscape and Microsoft, who had competing ideas for how web sites should be constructed. These varying features resulted in web developers coding for specific web browsers, using elements which could often be recognized by only one browser.

These tables list browser engine support for non-standard HTML items.

Element  | Function  | Supported first by  | Deprecated in HTML version  | Alternative solution  | Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|
|
|
|
|

`applet` | Insert an applet | HotJava | 4[7] | `embed`, `object` | <3.1[IE 4.0] | 1.7  | Yes  | Yes  | 1.0
`basefont` | Sets font styles | Internet Explorer | 4 | CSS  | <3.1[IE 3.0] | No[8] | 85  | Yes
`center` | Centers contents | Netscape[9] | 4 | CSS  | 3.1  | Yes  | Yes
`dir` | Directory list | ? | 4 | `ul`, `ol`
`font` | Applies font styles | Netscape | 4 | CSS
`isindex`[10] | Adds a search field | ? | 4 | `input type="search"` | <3.1[IE 5.5] | 1.7  | 312  | Partial
`listing` | Displays preformatted text | IETF | 2 | `pre`, `samp`, `code`, CSS  | 3.1  | 125  | 3.3  | Yes
`menu` | Menu list | ? | 4 | `ul`, `ol` | Yes  | Yes  | Yes
`plaintext` | Designates that all HTML be ignored, and to display the page as is | ? | 3.2 | The `text/plain` MIME type
`s` | Strike-through | ? | 4 | `del`, CSS  | <3.1[IE 4.0] | 1.7  | 1.0
`strike` | Strike-through | ? | 4 | `del`, CSS
`u` | Underline | ? | 4 | CSS
`xmp` | Similar to `pre` and `plaintext`, but ignores all HTML within and displays as is | ? | 2 | `pre`, `samp`, `code` | <3.1[IE 3.0] | 125  | 3.3
Attribute  | Element  | Alternative solution  | Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|
|
|

`align` | `caption`, `div`, `fieldset`, `h1`, `h2`, `h3`, `h4`, `h5`, `h6`, `hr`, `img`, `input`, `legend`, `p`, `object`, `table` | CSS  | 3.1  | Yes  | Yes  | Yes  | Yes
`alink` | `body` | CSS  | No
`background` | `body` | CSS  | Yes
`bgcolor` | `body`, `table`, `tr`, `td`, `th` | CSS
`border` | `img`, `object` | CSS  | Partial[note 8]
`clear` | `br` | CSS  | No
`compact` | `dl`, `ul`, `ol` | CSS  | No  | No
`color` | `basefont`, `font` | CSS  | 3.1  | Partial[note 9][8] | Partial[note 9]
`height` | `td`, `th` | CSS  | Yes  | Yes
`hspace` | `img`, `object` | CSS
`language` | `script` | The `type` attribute  | No[citation needed]
`link` | `body` | CSS  | Yes
`noshade` | `hr` | CSS
`nowrap` | `td`, `th` | CSS
`size` | `basefont`, `font`, `hr` | CSS
`start` | `ol` | None
`text` | `body` | CSS
`type` | `li`, `ul`, `ol` | CSS
`version` | `html` | DTD | No  | No  | No  | No  | No
`vlink` | `body` | CSS  | Yes  | Yes  | Yes  | Yes  | Yes
`width` | `hr`, `pre`, `td`, `th` | CSS
`vspace` | `img`, `object` | CSS
Tag  | Function  | Introduced by  | Alternative solution  | Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|
|
|
|

`bgsound` | Used to add sound to the background of a website | Internet Explorer | `audio` | <3.1[IE 3.0] | No  | No  | No  | Dropped[11]
`blink` | Used to display a blinking text | Netscape | Javascript, CSS  | No  | Dropped[12] | Yes  | No  | 1.0
`bq` | Used to display a blockquote | WebTV, HTML 3.0 | `blockquote` | No  | No  | No  | No  | Dropped[13]
`comment` | Used to allow the addition of comments to HTML documents | Internet Explorer, WebTV | `<!-- ... -->` | 3.1  | No  | No  | No  | No
`ilayer` | Inline layers | Netscape (4 only) | `iframe` | No  | No  | No  | Partial  | No
`image` | Synonym of img | ? | `img` | 3.1  | Yes  | Yes  | Yes  | Yes
`layer` | Used to create multiple layers of text and images which lay on top of each other in a given order | Netscape (4 only) | CSS, AJAX | No  | No  | No  | Partial  | No
`marquee` | Used to display a scrolling, marquee-like text. | Internet Explorer, WebTV | JavaScript, CSS3  | 3.1  | 1.7  | 125  | 3.3  | 1.0
`nobr` | Prevents any line breaks from occurring within the flow of a text | Netscape[14][15] | CSS  | 3.1  | Yes  | Yes  | Yes  | Yes
`noembed` | Displays an alternative text for browsers which do not recognize the embed tag | Netscape | Child elements of object used as fallback
`spacer` | Adds whitespace in a layout | Netscape | CSS  | No  | Dropped[16] | No  | No  | No
`wbr` | Placed inside a nobr element to add a line break | Netscape[14][15] | Unicode character zero-width space (U+200B)  | Dropped[note 10] | 1.7  | Yes  | 3.1  | No
`xml`[18] | Includes XML data, either inline or from an URL, in an HTML page | Internet Explorer | AJAX, possibly XML namespaces | 3.1  | No  | No  | No  | No
Attribute  | Deprecated for  | Function  | Supported first by  | Trident | Gecko | WebKit | KHTML | Presto

|
|
|
|
|
|
|
|

`bgproperties` | `body` | Determines whether background image scrolls with the background | Internet Explorer  | 3.1  | No  | Yes  | Yes  | No
`bordercolor` | `body` | Sets colors for 3-D table borders in the `table`, `td`, `th`, and `tr` elements | Internet Explorer  | No  | Yes  | Yes  | No
`bordercolordark` | `body` | Sets colors for 3-D table borders in the `table`, `td`, `th`, and `tr` elements | Internet Explorer  | No  | No  | No  | No
`bordercolorlight` | `body` | Sets colors for 3-D table borders in the `table`, `td`, `th`, and `tr` elements | Internet Explorer
`controls` | `img` | Uses the `img` element to place video or audio clips | Internet Explorer  | No  | No  | No  | No
`dynsrc` | `img` | Uses the `img` element to place video or audio clips | Internet Explorer  | No  | No  | No  | No
`event` | `script` | Defines function to call for an object. | Internet Explorer  | Partial  | ?  | ?  | ?
`for` | `script` | Defines the object to bind a scripting event. | Internet Explorer  | Partial  | ?  | ?  | ?
`frame` | `table` | Controls the display of the outer borders of a table in the table tag | Internet Explorer  | Yes  | ?  | Yes  | No
`framespacing` | `frameset` | Sets the amount of space between frames | Internet Explorer  | ?  | ?  | No  | No
`leftmargin` | `body` | Sets the margin between the browser window and the contents of the page | Internet Explorer  | 3.1  | ?  | ?  | Yes  | No
`loop` | `img` | Uses the `img` element to place video or audio clips | Internet Explorer  | No  | No  | No  | No
`rightmargin` | `body` | Sets the margin between the browser window and the contents of the page | Internet Explorer  | 3.1  | ?  | ?  | No  | No
`start` | `img` | Uses the `img` element to place video or audio clips | Internet Explorer  | No  | No  | No  | No
`target` | `form` | Specifies a target window or frame for the output of a form | Internet Explorer  | No[19] | ?  | Yes  | No
`valign` | `caption` | Sets vertical alignment of table caption | Internet Explorer  | 3.1  | ?  | ?  | No  | No

## HTML5[edit]

| Trident | EdgeHTML | Gecko | WebKit | Presto

|
|
|
|
|

`section` | 5.0[t 1] | 12  | 2.0[g 1][g 2] | 533[w 1][w 2][w 3][w 4][w 5][w 6] | 2.7.70
`nav`
`article`
`aside`
`hgroup`
`header`
`footer`
`ping` | No  | No  | Disabled  | Yes  | No
`time` | No  | No  | 22.0[g 3] | No  | 2.8.146
`mark` | 5.0[t 1] | 12  | 2.0[g 4] | Yes[w 7] | 2.7.70
`ruby`,[20] `rt`, `rp` | 3.1[t 2] | 12  | 38.0[g 5] | 533[w 8][w 9] | No
`dialog`[21] | No  | No  | No[g 6] | Only in Chrome[w 10] | No
`figure` | 5.0[t 1] | 12  | 2.0[g 7] | Yes[w 11] | 2.7.70
`figcaption`
`embed` | <3.1[IE 3.0] | 12  | 1.7  | 85  | 1.0
`video` | 5.0 (Partial)[t 3][t 4] | 12  | 15.0[g 8] | 525  | 2.5[a][b]
`audio`
`source`
`canvas` | Partial  | 1.9.2[g 9] | Partial  | 2.0[p 4]
Inline MathML | No  | No  | 2.0  | No[w 12][w 13] | 2.1[c]
Inline SVG | 5.0[t 3] | 12  | Yes[w 14] | 2.9.220[p 6]
`details` | No  | No  | 47[g 10] | Yes[w 15] | No
`summary` | Yes[w 15]
`command` | No[g 11] | No
`menu` | 8.0[g 12] | No[w 16] | 2.8[p 7]
`bdi` | 10.0[g 13] | 528[w 17] | No
`data` | No  | No  | 22.0[g 14] | No  | No
`picture` | No  | 13  | 38.0[g 15] | No[w 18] | No
| Trident | EdgeHTML | Gecko | WebKit | Presto

### Element-specific attributes[edit]

Attribute  | Element  | Trident | EdgeHTML | Gecko | WebKit | Presto

|
|
|
|
|
|

`manifest` | `html` | 6.0[22] | 12  | 1.9  | Yes  | 2.6[p 8][p 9]
`sizes` | `link` | No  | 13  | 8.0 (only mobile)[g 16][g 17] | Yes[w 19] | No
`charset` | `meta` | 4.0[23] | 12  | 1.9.2  | Yes  | 2.5.24
`scoped` | `style` | No  | No  | 21.0[g 18] | No[w 20] | No
`async` | `script` | 6.0  | 12  | 1.9.2[g 19] | Yes[w 21]
`reversed` | `ol` | No  | No  | 18.0[g 20] | Yes[w 22]
`download`[citation needed] | `a,area` | No  | 13  | 20.0[g 21] | Yes
`sandbox` | `iframe` | 6.0[t 5] | 12  | 17.0[g 22] | 533[w 23]
`seamless` | `iframe` | No  | No  | No[g 23] | No[w 24]
Attribute  | Element  | Trident | EdgeHTML | Gecko | WebKit | Presto

### Global attributes[edit]

| Trident | Gecko | WebKit | Presto

|
|
|
|

`translate`[24] | No
Datasets (`data-*`)  | No  | 6.0[g 24] | Yes[w 25] | 2.8[p 10]
`contextmenu` | 8.0[g 25] | No[w 16] | No
`hidden` | 2.0[g 26] | Yes[w 26] | 2.7.70
`contenteditable`[25] | <3.1[IE 5.5] | 1.9  | Yes  | 2.0
`spellcheck`[26] | 6.0  | 1.8[g 27] | Incorrect[w 27] | 2.8[p 11]
`draggable` | 1.9.1[g 28] | 533[w 28] | 2.10.270
`dropzone` | No  | No[g 29] | Yes  | 2.10.270
| Trident | Gecko | WebKit | Presto

### Form elements and attributes[edit]

Many of these features can be emulated with third-party libraries.[citation needed]

| Trident | Gecko[g 30] | WebKit[w 29] | Presto[p 12]

|
|
|
|

Attributes
`autocomplete` | 3.1  | Yes  | Yes  | 2.0
`list` | 6.0[t 6] | 2.0[g 31] | Yes[w 30]
`required` | 6.0[t 7] | 2.0[g 32] | 528[d][w 31]
`multiple` | 6.0[t 8] | 1.9.2[e][g 33] | 526[e][w 32] | 2.7[p 13]
`pattern` | 6.0[t 9] | 2.0[g 34] | 528[d][w 33][w 31] | 2.0
`min`, `max` | 6.0[t 10][t 11] | 16.0[g 35][g 36] | Yes[w 34]
`step` | 6.0[t 12] | 16.0[g 37] | 528[w 35]
`placeholder` | 6.0[t 13] | 2.0[g 38] | Yes  | 2.7[p 13]
`form` | No  | 2.0[g 39] | Yes[w 36] | 2.0
`autofocus` | 6.0[t 14] | 2.0[g 40] | 528[w 37]
`maxlength` | 6.0[t 15] | 2.0[g 41] | 528[w 38]
`novalidate` | 6.0[t 16] | 2.0[g 42] | 528[w 39] | 2.8[p 11]
`control` | No  | 2.0[g 43] | No  | No
`accept` | No  | 2.0[g 44] | Yes[w 40] | Yes
`formtarget` | 6.0[t 17] | 2.0[g 45] | Yes[w 41] | 2.8[p 11]
`formaction` | 6.0[t 18] | 2.0[g 46] | Yes[w 41] | 2.8[p 11]
`formmethod` | 6.0[t 19] | 2.0[g 47] | Yes[w 41] | 2.8[p 11]
`formenctype` | 6.0[t 20] | 2.0[g 47] | Yes[w 41] | 2.8[p 11]
`formnovalidate` | 6.0[t 21] | 2.0[g 48] | 528[w 39] | 2.8[p 11]
`disabled` (fieldset element)  | <3.1  | 2.0  | No  | 2.7
Elements
`datalist` | 6.0[t 22] | 2.0[g 49] | Yes[w 42] | 2.0
`keygen`[27] | No[t 23] | 1.0[g 50] | 125  | 1.0
`output` | No  | 2.0[g 51] | Yes[w 43] | 2.0
`progress` | 6.0[t 24] | 6.0[g 52] | Yes[w 44] | 2.7[p 13]
`meter` | No  | 16.0[g 53] | Yes[w 45]
Input types
`search` | 6.0[t 25] | 2.0[g 54] | 312[w 46] | 2.7[p 13]
`tel` | 6.0[t 26] | 2.0[g 55] | 528[w 47]
`url` | 6.0[t 27] | 2.0[g 56] | 528[w 47] | 2.0
`email` | 6.0[t 28] | 2.0[g 57] | 528[w 47]
`datetime` | No  | No[g 58] | No[w 48][w 49]
`date` | No  | Yes
`month` | No
`week` | No
`time` | No
`datetime-local` | No
`number` | 6.0[t 29] | 29.0[g 59] | 528[w 47]
`range` | 6.0[t 30] | 23.0[g 60] | Yes
`color` | No  | 29.0[g 61] | Yes[w 50] | 2.7[p 13]
| Trident | Gecko | WebKit | Presto

### APIs[edit]

| Trident | EdgeHTML | Gecko | WebKit | Presto

|
|
|
|
|

`getElementsByClassName`[28] | 5.0[t 31] | 12  | 1.9[g 62] | 525  | 2.1
`registerProtocolHandler` | No  | No  | 1.9[f][dead link] | Yes[w 51] | 2.10[p 14]
`registerContentHandler` | 1.8[g]
Cross-document messaging | 4.0  | 12  | 1.9[g 65] | Yes  | 2.0
Drag-and-drop  | 6.0  | 12  | 1.9.1[g 28] | Yes  | 2.10.270[p 15]
`pushState()` and `replaceState()` | 6.0[t 32] | 12  | 2.0[g 66] | 528[w 52] | 2.9[p 16]
| Trident | EdgeHTML | Gecko | WebKit | Presto

### Other features[edit]

| Trident | Gecko | WebKit | Presto

|
|
|
|

Microdata | No  | 16.0[g 67] | No[w 53] | Yes[p 17]
HTML5 Tokenizer  | 6.0[t 33] | 2.0[g 68] | Yes[w 54] | 2.10[p 18]
HTML5 Tree Builder  | Yes[w 14]
HTML5 Fragment Parser  | Yes
`<a rel="noreferrer">` | No  | 33.0[g 69] | Yes[w 55] | No
`window.onhashchange` | 4.0[t 34] | 1.9.2[g 70] | 528[w 56] | 2.6[p 19]
`element.classList` | No  | 1.9.2[g 71] | Yes[w 57] | 2.8[p 11]
`dir="auto"` | No  | 20.0[g 72] | 528+[w 58] | No
| Trident | Gecko | WebKit | Presto

### Next-generation additions[edit]

The WHATWG version of HTML also includes additional features that are not technically HTML5, which are described as "next-generation additions still in development" in the specification.[29]

| Trident | EdgeHTML | Gecko | WebKit | Presto

|
|
|
|
|

`<track>` | 6.0[t 35] | 12
`<a ping>` | No  | No  | Depends[g 73][h] | Depends[w 59][i]

### Related specifications[edit]

| Trident | EdgeHTML | Gecko | WebKit | Presto

|
|
|
|
|

`main` element[30] | No  | 12  | 21.0[g 76] | Yes[w 60] | No
`template` element[31] | No  | 13  | No  | Yes[w 61] | No
Selectors API[32] | 4.0[t 36] | 12  | 1.9.1[g 77] | 525[w 62] | 2.2[p 20]
Web Storage[33] | 4.0  | 12  | 1.9.1[g 78] | 525  | 2.5[p 21]
Indexed Database API[34] | 5.0[t 37] | 12  | 16.0[g 79] | Partial  | No
Web SQL Database (obsolete)[35] | No  | No  | No[g 80] | Yes[w 63] | 2.5[p 21]
File API[36] | 5.0  | 12  | Yes[g 81] | Yes[w 64][w 65] | 2.8[p 22]
File API: Writer[37] | 5.0  | No  | No[g 82] | Partial[w 66] | No
File API: Directories and System[38] | No  | No  | No[g 83] | Yes[w 67]
Media Capture API[39] | 2.0[j] | No  | 2.10[p 23]
Server-sent events[40] | 6.0[g 85] | Yes[w 68] | 2.7[p 24][p 25]
WebSocket[41] | 6.0[t 38] | 12  | 11.0[g 86] | 533  | 2.11[k]
Web Workers[42][43] | 6.0[t 39] | 12  | 1.9.1[g 87] | Yes  | 2.6[p 8][p 9]
Geolocation API[44] | 5.0[t 40] | 12  | 1.9.1[g 88] | 533[w 69] | 2.6[l]
Offline Web applications[45] | 6.0[t 41] | 12  | 1.9.1[g 89] | Yes  | 2.6[p 8][p 9]
Web Notifications[46] | No  | No  | 22.0[47][48] | only in Chrome[49] | 25
| Trident | EdgeHTML | Gecko | WebKit | Presto

### Media functions[edit]

The HTML5 specification defines several tags which allow video and audio to be included natively and semantically in HTML markup.

#### Element attributes[edit]

Media elements allow some attributes to be set directly in the tag.

| Trident | Gecko | WebKit | Presto

|
|
|
|

`<audio>` attributes
`src` | 5.0[t 1] | 1.9.1  | 525  | 2.5
`preload` | 2.0[note 11][g 90] | Experimental[note 11]
`autoplay` | 1.9.1  | 2.5
`loop` | 11.0[g 91]
`controls` | 1.9.1
`<video>` attributes
`src` | 5.0[t 1] | 1.9.1  | 525  | 2.5
`preload` | 2.0[note 11][g 90] | Experimental[note 11]
`autoplay` | 1.9.1  | 2.5
`loop` | 11.0[g 91]
`controls` | 1.9.1
`poster` | 1.9.2[g 92]
`width` | 1.9.1
`height`
`<source>` attributes
`src` | 5.0[t 1] | 1.9.1  | 525[w 70] | 2.5
`type`
`media` | 15.0[g 93]
`<track>` attributes
`kind` | 6.0[t 42] | 24.0[g 94] | Yes[w 71] | No
`label`
`src`
`srclang`

#### DOM attributes[edit]

Some attributes related to media elements are exposed in the DOM.

| Trident | Gecko | WebKit | Presto[p 31]

|
|
|
|

Error state
`MediaError` | 5.0 [t 43] | 1.9.1  | ?  | 2.5
Network state
`src` | 5.0[t 1] | 1.9.1  | ?  | 2.5
`currentSrc`
`networkState`
`preload` | 2.0[note 11][g 90] | No
`buffered` | 2.0[g 95]
`load()` | 1.9.1  | 2.5
`canPlayType()` | 533[w 72]
Ready state
`readyState` | 5.0[t 1] | 1.9.1  | ?  | 2.5
`seeking`
Playback state
`currentTime` | 5.0[t 1] | 1.9.1  | ?  | 2.5
`startTime` | No
`duration` | 1.9.1
`paused`
`defaultPlaybackRate` | 20.0[g 96] | No
`playbackRate`
`played` | 15.0[g 97]
`seekable` | 8.0[g 98]
`ended` | 1.9.1  | 2.5
`autoplay`
`loop` | 11.0[g 91]
`play()` | 1.9.1
`pause()`
Controls
`controls` | 5.0[t 1] | 1.9.1  | ?  | 2.5
`volume`
`muted`

#### DOM events[edit]

Media elements introduce new events to handle conditions which apply only to those elements, such as pausing/resuming.

| Trident | Gecko[g 99] | WebKit | Presto

|
|
|
|

`loadstart` | 5.0[t 44] | 1.9.1  | ?  | ?
`progress`
`suspend` | 1.9.2
`abort` | 1.9.1
`error`
`emptied`
`stalled` | 8.0[g 100]
`play` | 1.9.1
`pause`
`loadedmetadata`
`loadeddata`
`waiting`
`playing` | No
`canplay` | 1.9.1
`canplaythrough`
`seeking`
`seeked`
`timeupdate`
`ended`
`ratechange`
`durationchange`
`volumechange`

#### Video format support[edit]

Main article: HTML5 video

This table documents support for video codecs by the `<video>` element.

| Trident | edgeHTML | Gecko | WebKit | Presto

|
|
|
|
|

Ogg Theora | Manual install[note 12] |  | 1.9.1[g 101] | Depends[note 13] | 2.5
H.264 | 5.0[t 46] |  | 33.0[50][g 102] | Depends (525)[note 13][w 78] | Depends[note 14]
WebM VP8 | Manual install[note 12] | Yes[51] | 2.0[g 103][g 104] | Depends (534)[w 79] | 2.6.30[p 33][p 34][p 35]

#### Audio format support[edit]

Main article: HTML5 Audio

This table documents support for audio codecs by the `<audio>` element.

| Trident | edgeHTML | Gecko | WebKit | Presto

|
|
|
|
|

Ogg Vorbis | Manual install[note 12] |  | 1.9.1[g 101] | Depends[note 13] | 2.5
WAV PCM |  | 525[note 13] | 2.0
MP3 | 5.0[t 47] |  | No[g 105] | Depends[note 14]
AAC |  | No
Speex | Manual install[note 12] |  | No[g 106] | Depends[note 13] | No
Opus | No  | Yes[51] | 15.0[g 107] | Depends[note 13] | No

### Canvas functions[edit]

The following tables compare support for the drawing APIs of the Canvas element, a feature of HTML5. These tables compare native support by web browsers, without any plugins, add-ons or ECMAScript workarounds.

| Trident | Gecko | WebKit | Presto

|
|
|
|

`getContext` | 5.0  | 1.8  | Yes  | 2.0
`toDataURL` | 1.8[g 108] | Yes[w 80] | 2.1[note 15]

#### Supported contexts[edit]

| Trident | Gecko | WebKit | Presto

|
|
|
|

`2d` | 5.0  | 1.9.1  | Partial  | 2.6
WebGL | 7.0[t 48] | Depends[g 109] | Depends[w 81] | 2.9.220[p 36]

#### Rendering Context 2D[edit]

| Trident[t 49] | Gecko[g 110] | WebKit[w 82] | Presto[p 37][p 38]

|
|
|
|

The canvas state
`save` | 5.0  | 1.8  | Yes  | 2.0
`restore`
Transformations
`scale` | 5.0  | 1.8  | Yes  | 2.0
`rotate`
`translate`
`transform` | 2.6[note 16][p 39][p 40][p 41]
`setTransform` | 2.6[note 16]
Compositing
`globalAlpha` | 5.0  | 1.8  | Yes  | 2.0
`globalCompositeOperation`
Colors and styles
`strokeStyle` | 5.0  | 1.8  | Yes  | 2.0
`fillStyle`
`createLinearGradient`
`createRadialGradient`
`createPattern`
Line styles
`lineWidth` | 5.0  | 1.8  | Yes  | 2.0
`lineCap`
`lineJoin`
`miterLimit`
Shadows
`shadowOffsetX` | 5.0  | 1.9.1[g 111] | Yes  | 2.4[note 17]
`shadowOffsetY`
`shadowBlur`
`shadowColor`
Simple shapes
`clearRect` | 5.0  | 1.8  | Yes  | 2.0
`fillRect`
`strokeRect`
Complex shapes
`beginPath` | 5.0  | 1.8  | Yes  | 2.0
`closePath`
`moveTo`
`lineTo`
`quadraticCurveTo` | 1.8.1[note 18]
`bezierCurveTo` | 1.8
`arcTo` | 1.8.1[g 112]
`rect` | 1.8
`arc`
`fill`
`stroke`
`clip`
`isPointInPath`
Focus management
`drawFocusRing` | No  | 28.0[g 113] | No  | No
Text
`font` | 5.0  | 1.9.1[note 19] | Yes  | No
`textAlign` | 2.6
`textBaseline`
`fillText`
`strokeText`
`measureText`
Images
`drawImage` | 5.0  | 1.8  | Yes  | 2.0
`createImageData` | 1.9.1[g 115][g 116] | 2.7[p 42]
`getImageData` | 1.9[g 116] | 2.6[note 16]
`putImageData` | 2.0[g 117][g 116]

## See also[edit]

* Comparison of browser engines

## Notes[edit]

1. ^ `<q>` does not support nested quotes prior to Gecko 1.8.[2]
2. ^ For images, a frame will be added to the object. Other content types are not supported and the element is incorrectly implemented as an ActiveX wrapper. Nested objects fallback mechanism is not supported prior to version 7.[3]
3. ^ Prior to Internet Explorer 8.0 (trident 4.0), and in earlier compatibility modes, the innerText is submitted instead of the value attribute.[4]
4. ^ `<label>` was focusable prior to KHTML 3.4.2.[citation needed]
5. ^ Internet Explorer 9 (trident 5.0) and earlier is limited to 31 `<style>` elements.[5][6]
6. ^ Trident doesn't hide CSS backgrounds and borders on a `<noscript>` element when scripting is enabled[citation needed].
7. ^ While alphabetic and alphanumeric words are affected, numeric (numbers only) words are not.[citation needed]
8. ^ Supported for only `img`.
9. ^ a b Supported for only `font`.
10. ^ Trident dropped support for `wbr` in version 5.0.[17]
11. ^ a b c d e Supports `preload` under the older name `autobuffer`.
12. ^ a b c d Google released a WebM component for Media Foundation to allow the playback of WebM files in IE9 through the standard HTML5 <video> tag.[t 45] Xiph.org distributes OpenCodecs package, which amends Google's VP8 decoder with DirectShow-based codecs for Ogg Theora and Ogg Vorbis. VLC media player comes with "Web plugin" that uses VLC for playing multimedia from `<video>` and `<audio>` tags, enabling support for all formats VLC supports.
13. ^ a b c d e f WebKit on macOS previously used QuickTime, and supported whatever formats that does.[w 73] By default, this includes H.264, MP3, AAC and WAV PCM, but not Ogg Theora or Vorbis. These are supported only if installed as third-party codecs, such as XiphQT. However, this relied on QuickTime 7 (not QuickTime X) to play these formats, and since Safari 12 and later versions of WebKit2, Apple officially dropped support for their QuickTime plugin (since it was developed for NPAPI, not HTML5). Google Chrome supports Theora, Vorbis, WebM, and MP3.[w 74] Chromium can be compiled to support anything that FFmpeg supports, and may or may not support patented formats such as H.264 and MP3.[w 75] Origyn Web Browser for MorphOS uses also FFmpeg for playing HTML5 media content.[w 76][w 77]
14. ^ a b On Linux and FreeBSD, Presto 2.5 uses the system version of the GStreamer library, and is able to play any formats supported by GStreamer (including H.264, MP3, AAC and others, if codecs are installed). On other platforms, it only supports Ogg Theora for video; and Ogg Vorbis and WAVE PCM for sound.[p 32]
15. ^ Presto 2.0 had partial support for this property.
16. ^ a b c Opera 9.5(Presto 2.1) support table claims support for this, but support tables for Presto 2.1.1 up to 2.5 indicate that this property is not supported.
17. ^ Prior to version 2.4, Presto only had partial support for this property.
18. ^ Incorrect in Gecko 1.8
19. ^ Gecko had experimental support in version 1.9, with different names.[g 114]

1. ^ 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]
2. ^ 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]
3. ^ MathML for CSS, XHTML only[p 5]
4. ^ a b Form validation disabled in Safari Can I use... Support tables for HTML5, CSS3, etc.
5. ^ a b For file inputs only.
6. ^ Limited to the feed protocol in 1.8; fully supported in 1.9.[g 63]
7. ^ Limited to feed MIME types in 1.8 and 1.9.[g 64]
8. ^ The `ping` attribute is disabled by default, due to privacy concerns.[g 74][g 75]
9. ^ The `ping` attribute is disabled by default, thus needs to be manually enabled by each port
10. ^ Currently partially supported in nightly builds for the Linux platform.[g 84]
11. ^ WebSocket support was added in Presto 2.7[p 26] but was disabled due to security reasons.[p 27] In Presto 2.11 protocol implementation was updated to version RFC 6455[p 28] which resolved security issue.
12. ^ Geolocation support was added in Presto 2.5, but was not enabled by default until 2.6.[p 29][p 30][p 8][p 9]

## References[edit]

1. ^ Mackie, Kurt (10 December 2018). "Microsoft Edge Browser To Get New Rendering Engine but EdgeHTML Continues". Redmond Mag. Retrieved 21 December 2019.
2. ^ "New Web Developer Features in Deer Park Alpha 1". Mozilla. 27 May 2005. Retrieved 25 March 2011. Cite journal requires `|journal=` (help)
3. ^ "What's New in Internet Explorer 7". Microsoft Developer Network. Microsoft. Retrieved 25 March 2011.
4. ^ "button element | button object (Internet Explorer)". Microsoft. Retrieved 29 November 2012.
5. ^ "A webpage that uses CSS styles does not render correctly in Internet Explorer". Microsoft. 31 August 2010. Retrieved 25 March 2011. Cite journal requires `|journal=` (help)
6. ^ Removal of style sheet limits (Windows), Microsoft
7. ^ HTML 4 Changes, W3C, 18 December 1997, retrieved 7 May 2008
8. ^ a b Bug 3875 – (basefont) deprecated basefont element not supported, Mozilla
9. ^ HTML 3.2 Reference Specification, W3C, 14 January 1997, retrieved 8 October 2008
10. ^ Isindex Example, archived from the original on 5 April 2008, retrieved 7 May 2008
11. ^ Tommy A. Olsen (28 November 2011). "Opera Desktop Team – Glyphs and plugins". Retrieved 28 November 2011. "CORE-34613 Drop support for <bgsound>"
12. ^ "Mozilla Aurora Notes". Mozilla. Retrieved 1 June 2013.
13. ^ gsnedders (9 September 2010). "IRC logs: freenode / #whatwg / 2010-09-09". Retrieved 9 September 2010. "# [17:27] <gsnedders> I know we dropped support for the bq element :P"
14. ^ a b "Complete List of HTML Tags". Retrieved 10 October 2011.
15. ^ a b "Extensions to HTML". Netscape. 1994. Retrieved 10 October 2011.
16. ^ Bug 531056 – [HTML5] Remove spacer support, Mozilla
17. ^ Zeilenumbruch erlauben (in German), Impressum
18. ^ XML Element | xml Object, Microsoft
19. ^ Bug 207900 – psychotekk.de – the target attribute in the form element is ignored, Mozilla
20. ^ Studholme, Oli (11 May 2010), The ruby element and her hawt friends, rt and rp, HTML5 Doctor
21. ^ "HTML Standard".
22. ^ "HTML5". microsoft.com. Microsoft.
23. ^ W3C – Test results: HTML character encoding basics, 12 April 2010, archived from the original on 2 March 2012
24. ^ WHATWG Weekly: translate attribute and other changes to HTML, 7 February 2012
25. ^ Pilgrim, Mark (6 March 2009), The Road to HTML 5: contentEditable
26. ^ Pilgrim, Mark (4 March 2009), The Road to HTML 5: spellchecking
27. ^ "keygen", Mozilla Developer Center, Mozilla, retrieved 13 March 2010
28. ^ Koch, Peter-Paul, DOM Core, QuirksMode
29. ^ "Is this HTML5?", HTML5 (including next generation additions still in development), WHATWG, 4 May 2010, retrieved 4 May 2010
30. ^ `main` element – an HTML5 extension specification, W3C, 17 December 2012
31. ^ HTML Templates, W3C, 14 February 2013
32. ^ Selectors API Level 1, W3C
33. ^ Web Storage, W3C
34. ^ Indexed Database API, W3C
35. ^ Web SQL Database, W3C
36. ^ File API, W3C, 26 October 2010
37. ^ File API: Writer, W3C, 26 October 2010
38. ^ File API: Directories and System, W3C, 26 October 2010
39. ^ Media Capture API, W3C
40. ^ Server-Sent Events, W3C
41. ^ The Web Sockets API, W3C
42. ^ Web Workers, W3C
43. ^ Resig, John (21 July 2009), Computing with JavaScript Web Workers
44. ^ Geolocation API Specification, W3C
45. ^ 5.6 Offline Web applications — HTML5, W3C
46. ^ Web Notifications, W3C
47. ^ Available only in Firefox Mobile as of Gecko 2.0
48. ^ 594543 – Implement Desktop Notifications
49. ^ There is a bug in Chrome but is working
50. ^ via OpenH264
51. ^ a b "WebM, VP9 and Opus Support in Microsoft Edge". 18 April 2016.

Trident

1. ^ a b c d e f g h i j Internet Explorer Platform Preview Guide for Developers, Microsoft
2. ^ Ruby
3. ^ a b Bisson, Simon (17 September 2010), Microsoft previews Internet Explorer 9 with HTML5 support, ZDNet
4. ^ Hachamovitch, Dean (23 June 2010), HTML5, Native: Third IE9 Platform Preview Available for Developers, Microsoft
5. ^ Rossi, Jacob (14 July 2011), Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox, Microsoft
6. ^ "list attribute | list property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
7. ^ "required attribute | required property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
8. ^ "multiple property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
9. ^ "pattern attribute | pattern property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
10. ^ "min attribute | min property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
11. ^ "max attribute | max property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
12. ^ "step property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
13. ^ "placeholder attribute | placeholder property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
14. ^ "autofocus attribute | autofocus property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
15. ^ "maxlength attribute | maxLength property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
16. ^ "noValidate property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
17. ^ "formTarget property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
18. ^ "formAction attribute | formAction property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
19. ^ "formMethod attribute | formMethod property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
20. ^ "formEnctype attribute | formEnctype property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
21. ^ "formNoValidate attribute | formNoValidate property (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
22. ^ "datalist object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
23. ^ PRB: HTML Tag KEYGEN Not Supported in Internet Explorer, Microsoft
24. ^ "Progress element | Progress object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
25. ^ "input type=search object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
26. ^ "input type=tel element | input type=tel object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
27. ^ "input type=url element | input type=url object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
28. ^ "input type=email element | input type=email object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
29. ^ "input type=number element | input type=number object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
30. ^ "input type=range element | input type=range object (Internet Explorer)". Microsoft. Retrieved 16 November 2012.
31. ^ getElementsByClassName, Microsoft, archived from the original on 23 July 2012, retrieved 19 April 2018
32. ^ HTML5 History in IE10, Microsoft
33. ^ HTML5 Parsing in IE10, Windows Internet Explorer Engineering Team, 6 July 2001
34. ^ onhashchange Event, Microsoft
35. ^ "track element | track object (Internet Explorer)". Microsoft. Retrieved 29 November 2012.
36. ^ Resig, John (6 March 2008), JavaScript in Internet Explorer 8
37. ^ IndexedDB Prototype Available for Internet Explorer
38. ^ WebSockets in Windows Consumer Preview, IE Engineering Team
39. ^ Leithead, Travis (2 July 2011), Web Workers in IE10: Background JavaScript Makes Web Apps Faster, Microsoft
40. ^ Acting on Feedback: IE9 Release Candidate Available for Download
41. ^ "Application Cache API ("AppCache") (Windows)". Microsoft. Retrieved 17 November 2012.
42. ^ "track element – track object (Internet Explorer)". Microsoft. Retrieved 12 July 2013.
43. ^ MSDN HTMLMediaError Object for Internet Explorer 9, Microsoft
44. ^ "video object". Microsoft. Retrieved 12 July 2013.
45. ^ Jazayeri, Mike (1 January 2011), More about the Chrome HTML Video Codec Change
46. ^ McCracken, Harry (1 March 2010), Microsoft Previews the Revamped Internet Explorer 9 Platform, Technologizer
47. ^ Branscombe, Mary (1 March 2010), Microsoft previews Internet Explorer 9, TechRadar UK, archived from the original on 22 March 2010, retrieved 19 April 2018
48. ^ "Introducing IE11: The Best Way to Experience the Web on Modern Touch Devices". Microsoft. Retrieved 8 November 2013.
49. ^ Internet Explorer Platform Preview Release Notes, archived from the original on 19 April 2010, retrieved 19 April 2018

Gecko

1. ^ Bug 559284 – Support for HTML5 sectioning elements (article, aside, footer, header, hgroup, nav, section): style as display:block, Mozilla
2. ^ Bug 562008 – HTML5 section DOM elements should be of type HTMLElement, Mozilla
3. ^ Bug 629801 – Implement HTML5 <time> element, Mozilla
4. ^ Bug 485377 – Implement HTML5's <mark> tag, Mozilla
5. ^ Bug 33339 – HTML5 <ruby> support, Mozilla, retrieved 3 December 2014
6. ^ Implement the HTML5 dialog element, Mozilla
7. ^ Implement the figure element, Mozilla
8. ^ Support media attribute of source elements, Mozilla
9. ^ Canvas – MDC, Mozilla
10. ^ Bug 591737 – Support for HTML5's <details> and <summary>, Mozilla
11. ^ Implement the HTML5 command API, Mozilla
12. ^ Implement HTML5 toolbar menus, Mozilla
13. ^ Bug 613149 – Support HTML5 bdi element and CSS property unicode-bidi: isolate, Mozilla
14. ^ Bug 839371 – Implement HTML5 <data> element, Mozilla
15. ^ Bug 870022 – Implement 'picture' element, Mozilla
16. ^ Bug 596650 – Use the "sizes" attribute to select the best web app icon, Mozilla
17. ^ Bug 441770 – Add 'sizes' getter/setter to link elements, Mozilla
18. ^ Bug 508725 – Implement HTML 5 scoped attribute on STYLE tag, Mozilla
19. ^ Bug 503481 – Implement async attribute of script element, Mozilla
20. ^ Bug 601912 – HTML 5's <li> reversed attribute not supported, Mozilla
21. ^ Bug 676619 – Implement proposed download attribute, Mozilla
22. ^ Bug 341604- Implement IFRAME's sandbox attribute, Mozilla
23. ^ Bug 631218 – implement the HTML5 seamless attribute for the iframe element, Mozilla
24. ^ Bug 560112 – Implement HTML5 dataset attribute, Mozilla
25. ^ Changes for web developers, Mozilla, archived from the original on 7 October 2011
26. ^ Bug 567663 – Implement the hidden attribute, Mozilla
27. ^ Controlling spell checking in HTML forms, Mozilla
28. ^ a b Blizzard, Christopher (15 July 2009), HTML5 drag and drop in Firefox 3.5
29. ^ Bug 723008 – Implement dropzone attribute, Mozilla
30. ^ User:Mounir.lamouri/HTML5 Forms, Mozilla
31. ^ Bug 556007 – Implement list attribute, Mozilla
32. ^ Bug 345822 – Implement required attribute for <input type="text">, <textarea>, Mozilla
33. ^ Bug 523771 – Support <input type=file multiple>, Mozilla
34. ^ Bug 345512 – Implement pattern attribute for <input type="text">, <textarea>, Mozilla
35. ^ Bug 635499- Implement the max attribute, Mozilla
36. ^ Bug 635553- Implement the min attribute, Mozilla
37. ^ Bug 556009 – Implement step attribute, Mozilla
38. ^ Bug 457800 – Implement placeholder attribute for text input fields, Mozilla
39. ^ Bug 588683 – Implement form attribute, Mozilla
40. ^ Bug 546995 – Implement autofocus attribute for some form elements, Mozilla
41. ^ Bug 535043 – Support maxlength on textarea, Mozilla
42. ^ Bug 556013 – Implement novalidate attribute for form elements, Mozilla
43. ^ Bug 562932 – Implement control attribute for label element, Mozilla
44. ^ Bug 377624 – Implement the accept attribute for the form and file upload controls form "image/*", Mozilla,Bug 565274 – Implement the accept attribute for the form and file upload controls for custom MIME types, Mozilla
45. ^ Bug 566064 – HTMLInputElement and HTMLButtonElement should implement formtarget attribute which override HTMLFormElement target attribute, Mozilla
46. ^ Bug 566160 – HTMLInputElement and HTMLButtonElement should implement formaction attribute which override HTMLFormElement action attribute, Mozilla
47. ^ a b Bug 582412 – Implement @formmethod, @formenctype, Mozilla
48. ^ Bug 589696 – Implement formnovalidate attribute for submit controls, Mozilla
49. ^ Bug 555840 – Implement datalist element, Mozilla
50. ^ Bug 101019 – Implement keygen element, Mozilla
51. ^ Bug 346485 – Implement Web Forms 2 <html:output/>, Mozilla
52. ^ Bug 514437 – Implement HTML 5 progress element, Mozilla
53. ^ Bug 555985 – Implement meter element, Mozilla
54. ^ Bug 456229 – Implement <input type="search"> for compatibility with Safari, Mozilla
55. ^ Bug 557620 – Implement <input type="telephone">, Mozilla
56. ^ Bug 344615 – Implement <input type="url">, Mozilla
57. ^ Bug 555559- Implement <input type="email">, Mozilla
58. ^ Bug 446510 – Implement <input type="date"> and other date controls, Mozilla
59. ^ Bug 344616 – Implement <input type="number">, Mozilla
60. ^ Bug 344618 – Implement <input type="range">, Mozilla
61. ^ Bug 547004 – Implement <input type="color">, Mozilla, retrieved 18 February 2010
62. ^ Bug 357450 – Implement getElementsByClassName, Mozilla
63. ^ window.navigator.registerProtocolHandler, Mozilla, archived from the original on 4 June 2011
64. ^ Navigator.registerContentHandler(), Mozilla
65. ^ Bug 387706 – (postMessage) Implement HTML5's cross-document messaging API (postMessage), Mozilla
66. ^ Bug 500328 – Add support for HTML5 History.pushState(), History.replaceState() methods, Mozilla
67. ^ Bug 591467 – Implement HTML5 Microdata API, Mozilla
68. ^ Bug 373864 – Replace HTML parser with an HTML5 parser, Mozilla
69. ^ Bug 530396 – Support for <a rel="noreferrer"> functionality, Mozilla
70. ^ Bug 385434 – Add support for HTML5 onhashchange (event for named anchor changes), Mozilla
71. ^ Bug 501257 – Implement HTML 5's HTMLElement.classList property, Mozilla
72. ^ Bug 548206 – Implement the auto value for the HTML dir attribute, Mozilla
73. ^ Bug 319368 – Implement <a ping>, Mozilla
74. ^ Bug 324645 – <a ping> support should be opt-in, not opt-out, for Gecko-based apps, Mozilla
75. ^ Bug 319368 – Implement <a ping> (Comment 64), Mozilla
76. ^ Bug 820508 – Add support for <main> element, Mozilla
77. ^ document.querySelector
78. ^ DOM Storage, Mozilla, archived from the original on 29 June 2011, retrieved 19 April 2018
79. ^ Implement Indexed Database API, Mozilla
80. ^ Bug 416327 – Implement Client-side database storage, Mozilla
81. ^ Using files from web applications, Mozilla
82. ^ Bug 557540 – Implement File API: Writer, Mozilla
83. ^ FileSystem API, Mozilla
84. ^ Bug 692955 – Camera support for desktop, Mozilla
85. ^ Bug 338583 – Add support for Server-Sent DOM Events (Remote Events), Mozilla
86. ^ Bug 472529 – Support for Web sockets' HTML5 Draft Recommendation, Mozilla
87. ^ Bug 437152 – implement worker threads, Mozilla
88. ^ Using geolocation, Mozilla
89. ^ Offline resources in Firefox, Mozilla
90. ^ a b c Bug 548523 – HTML 5 media attribute 'autobuffer' has been renamed to 'preload', Mozilla
91. ^ a b c Bug 449157 – Implement the looping attributes in media elements, Mozilla
92. ^ Bug 449156 – Implement the poster attribute for the <video> element, Mozilla
93. ^ Bug 449363 – Support media attribute of <source> elements, Mozilla
94. ^ Bug 629350 – Implement the track element, Mozilla
95. ^ Bug 462957 – Implement nsIDOMHTMLMediaElement::GetBuffered(), Mozilla
96. ^ Bug 495040 – Implement playbackRate, Mozilla
97. ^ Bug 462959 – Implement nsIDOMHTMLMediaElement::GetPlayed(), Mozilla
98. ^ Bug 462960 – Implement nsIDOMHTMLMediaElement::GetSeekable(), Mozilla
99. ^ Using audio and video in Firefox – Media events, Mozilla, archived from the original on 8 May 2012, retrieved 19 April 2018
100. ^ Bug 481082 – Video controls should listen for |stalled| event, Mozilla
101. ^ a b Shepherd, Eric (2 January 2010), Media formats supported by the audio and video elements, Mozilla, archived from the original on 27 June 2010, retrieved 11 October 2009
102. ^ Bug 799318 – [meta] Support H.264/AAC/MP3 video/audio playback on desktop Firefox, Mozilla
103. ^ Bug 566243 – Merge mozilla-webmedia repository to mozilla-central, Mozilla
104. ^ Firefox WebM Builds, Mozilla
105. ^ Bug 562730 – Reproducing Mp3 files with html5, Mozilla
106. ^ Bug 476752 – support the speex voice codec in <audio> and <video> elements, Mozilla
107. ^ Bug 674225 – support the Opus voice codec in <audio> and <video> elements, Mozilla
108. ^ "The Graphics Canvas element - HTML: HyperText Markup Language | MDN".
109. ^ WebGL – MDC, Mozilla
110. ^ Canvas tutorial – MDC
111. ^ Bug 310682 – Implement shadows for <html:canvas>, Mozilla
112. ^ Bug 333613 – update canvas on branch, Mozilla
113. ^ Bug 540456 – Support HTML5 canvas drawFocusRing(), Mozilla
114. ^ Bug 436904 – implementing Canvas text spec, Mozilla
115. ^ Bug 433004 – Support canvas.getContext("2d").createImageData(), Mozilla
116. ^ a b c Pixel manipulation with canvas – MDC
117. ^ Bug 498826 – canvas putImageData doesn't implement optional arguments, Mozilla

Webkit

1. ^ Bug 32936 – HTML5 <section> element support, WebKit
2. ^ Bug 27937 – Implement HTML5 nav element, WebKit
3. ^ Bug 32942 – HTML5 <article> element support, WebKit
4. ^ Bug 32943 – HTML5 <aside> element support, WebKit
5. ^ Bug 33369 – Implement HTML5 <hgroup> element., WebKit
6. ^ Bug 32944 – HTML5 <header> and <footer> elements support, WebKit
7. ^ Bug 41144 – Implement the HTML5 <mark> element., WebKit
8. ^ Bug 28420 – Implement HTML5 <ruby> rendering, WebKit
9. ^ Steiner, Roland (20 January 2010), "Ruby Rendering in WebKit", Surfin' Safari, WebKit, archived from the original on 21 December 2016, retrieved 21 January 2010
10. ^ Bug 84635 – Implement the DIALOG element, WebKit
11. ^ Bug 50684 – Default styling rules for the figure and figcaption elements, WebKit
12. ^ "Google subtracts MathML from Chrome, and anger multiplies". CNET. 5 November 2013.
13. ^ Bug 42373 – Changes to enable MathML, WebKit
14. ^ a b Seidel, Eric (5 August 2010). "The HTML5 Parsing Algorithm". Surfin' Safari. WebKit Project. Archived from the original on 8 August 2010. Retrieved 5 August 2010.
15. ^ a b Bug 50309 – HTML5 <details> and <summary> initial implementation, WebKit
16. ^ a b Bug 50555 – implement the HTML5 "context menu" feature (contextmenu attribute), WebKit
17. ^ Bug 50913 – [BiDi] Add support for the BDI element, WebKit
18. ^ Bug 116963 – (picture) Implement 'picture' element, WebKit
19. ^ Bug 37674 – Implement sizes attribute for link tag from HTML5, WebKit
20. ^ Bug 49142 – Implement HTML5 style scoped attribute, WebKit
21. ^ Bug 20710 – WebKit should support defer and async on script elements, WebKit
22. ^ Bug 36724 – Add support for ol reversed, WebKit
23. ^ Bug 21288 – Implement HTML5's sandbox attribute for iframes, WebKit
24. ^ Bug 45950 – Implement HTML5's seamless attribute for iframes, WebKit
25. ^ Bug 41146 – Implement the .dataset DOM property, WebKit
26. ^ Bug 40511 – Implement HTML5 hidden attribute, WebKit
27. ^ Bug 25537 – WebKit does not follow HTML5 spellcheck attribute logic for words split by spans, WebKit
28. ^ Bug 26262 – Implement HTML5 draggable, WebKit
29. ^ Bug 19264 – HTML5 Forms Implementation – Master bug, WebKit
30. ^ Bug 27247 – [HTML5][Forms] Part 5 of datalist&list: UI of 'list' attribute of <input>, WebKit
31. ^ a b Bug 59019 – Enable the interactive form validation feature by default, WebKit
32. ^ Almaer, Dion (6 March 2009), input type="file" multiple; now in a real browser!, Ajaxian
33. ^ Bug 25552 – Support for HTML5 Forms "pattern" attribute, WebKit
34. ^ Bug 27450 – Support HTML5 min/max attributes and associated CSS selectors, WebKit
35. ^ Bug 27451 – Support HTML5 step attribute, WebKit
36. ^ Bug 47813 – [HTML5] "form" attribute support for form control elements, WebKit
37. ^ Bug 18887 – WF2 Support for autofocus controls, WebKit
38. ^ Bug 29292 – [HTML5][Forms] Support for <textarea maxlength=N>, WebKit
39. ^ a b Bug 28145 – novalidate/formnovalidate support, WebKit
40. ^ Bug 45079 – HTML <input type="file"> accept attribute, WebKit+accept+attribute&rft.pub=WebKit&rft_id=https://bugs.webkit.org/show_bug.cgi?id=45079&rfr_id=info:sid/en.wikipedia.org:Comparison+of+browser+engines+(HTML+support)" class="Z3988">
41. ^ a b c d Bug 49240 – Implement formaction, formenctype, formmethod and formtarget attributes for the input tag, WebKit
42. ^ Bug 27247 – Master bug of datalist element and list attribute implementation, WebKit
43. ^ Bug 29363 – [HTML5][Forms] Support for <output> element, WebKit
44. ^ Bug 37307 – [Chromium] Support for <progress> element, WebKit
45. ^ Bug 37074 – Support for HTMLMeterElement, WebKit
46. ^ Hyatt, David (July 2004), The Search Field, archived from the original on 26 January 2010
47. ^ a b c d Bug 25554 – Implement HTML5 Input element types for Text Fields, WebKit
48. ^ Bug 29004 – [HTML5][Forms] simple implementation of date&time types of INPUT element, WebKit
49. ^ Bug 29359 – Add UIs for date and time types of <input>
50. ^ Bug 28966 – [HTML5][Forms] <input type=color> simple implementation, WebKit
51. ^ Bug 44740 – registerProtocolHandler and registerContentHandler, WebKit
52. ^ Bug 32052 – Implement HTML5 state object history API, WebKit
53. ^ Bug 68609 – Implement HTML5 Microdata (master bug)
54. ^ Bug 39259 – MASTER: WebKit needs an HTML5 Tokenizer
55. ^ Chapin, Nate (19 November 2009), WebKit nightlies support HTML5 noreferrer link relation, archived from the original on 14 March 2017, retrieved 20 November 2009
56. ^ Bug 21605 – Support for HTML5 "hashchange" event, WebKit
57. ^ Bug 20709 – Implement HTML 5's HTMLElement.classList property, WebKit
58. ^ Bug 50916 – Add support for dir=auto, WebKit
59. ^ Bug 30458 – Implement <a ping>, WebKit
60. ^ Bug 103172 – implement the HTML <main> element, WebKit
61. ^ Bug 113016 – HTMLStackItem should include <template> as a special tag, WebKit
62. ^ Smith, David (7 February 2008), querySelector and querySelectorAll, archived from the original on 16 November 2016, retrieved 19 April 2018
63. ^ Eidson, Brady (19 October 2007), WebKit Does HTML5 Client-side Database Storage, retrieved 22 October 2009
64. ^ Bug 36567 – Implement FileAPI/FileWriter, WebKit
65. ^ Bug 38157 – Implement FileReader class, WebKit
66. ^ Bug 44358 – Implement FileWriter, WebKit
67. ^ Bug 42903 – Implement FileAPI: Directories and System (a.k.a. FileSystem API), WebKit
68. ^ Bug 14997 – Support for server-sent DOM events, WebKit
69. ^ Bug 21475 – Provide support for the Geolocation API, WebKit
70. ^ Pfeiffer, Silvia (1 December 2009), [whatwg] Quality Values for Media Source Elements, archived from the original on 19 July 2011, retrieved 19 April 2018
71. ^ April 2012 HTML5 Media Element & WebAudio – WebKit
72. ^ Bug 24364 – Add HTMLMediaElement canPlayType method, WebKit
73. ^ Koivisto, Antti (1 November 2007), HTML5 Media Support, WebKit
74. ^ Look for "GOOGLE_CHROME_BUILD"
75. ^ DiBona, Chris (1 June 2009), [whatwg] Google's use of FFmpeg in Chromium and Chrome Was: Re: MPEG-1 subset proposal for HTML5 video codec, archived from the original on 19 July 2011, retrieved 19 April 2018
76. ^ Origyn Web Browser for MorphOS, Fabian Coeurjoly, retrieved 4 January 2010
77. ^ Holwerda, Thom (8 March 2010), Origyn Web Browser 1.7 Supports HTML5 Media, More, OSNews, retrieved 8 March 2010
78. ^ HTML Video Codec Support in Chrome, retrieved 22 January 2010
79. ^ Bankoski, Jim (1 May 2010), WebM and VP8 land in Chromium
80. ^ WebKit DOM Programming Topics: Using the Canvas
81. ^ Marrin, Chris (1 October 2009), WebGL Now Available in WebKit Nightlies, Surfin' Safari
82. ^ WebKit DOM reference – CanvasRenderingContext2D

Presto

1. ^ "A call for video on the web – Opera <video> release on Labs", Opera
2. ^ a b "Opera Core Concerns – (re-)Introducing <video>", Opera, archived from the original on 4 January 2010
3. ^ "Web specifications supported in Opera 9.5", Opera, archived from the original on 25 February 2009, retrieved 19 April 2018
4. ^ "`canvas` Support in Opera", Opera, archived from the original on 31 January 2016, retrieved 19 April 2018
5. ^ Chavchanidze, George (12 June 2008), "Opera 9.5 released", Opera, archived from the original on 13 October 2008
6. ^ "Implemented full support for the part of the HTML5 specification entitled "Parsing HTML documents".", Opera
7. ^ "HTML5 elements, attributes, and APIs support in Opera Presto 2.8", Opera
8. ^ a b c d Haavard (14 June 2010), "HTML5, and then some", Opera, archived from the original on 17 June 2010
9. ^ a b c d Kleinhout, Huib (1 July 2010), "Opera 10.60 goes final", Opera, archived from the original on 2 July 2010
10. ^ "HTML5 elements, attributes, and APIs support in Opera Presto 2.8", Opera
11. ^ a b c d e f g h "HTML5 elements, attributes, and APIs support in Opera Presto 2.8", Opera
12. ^ "HTML 5 Forms support in Opera Presto 2.2", Opera
13. ^ a b c d e Ødegaard, Ruarí (6 December 2010). "Extension improvements, updates to Core and some other nice fixes". Opera. Archived from the original on 10 December 2010. Retrieved 6 December 2010.
14. ^ Opera 11.60 changelog, 6 December 2011, archived from the original on 23 October 2014, retrieved 19 April 2018
15. ^ "Web specifications support in Opera Presto 2.10 – Drag and Drop", Opera
16. ^ "Introducing the HTML5 History API", Opera
17. ^ Web specifications support in Opera Presto 2.9
18. ^ "Opera 11.60 for Windows changelog", Opera, 6 December 2011, archived from the original on 23 October 2014, retrieved 19 April 2018
19. ^ Haavard (31 May 2010), "Opera 10.60 Alpha 1: Speed, eye-candy, and bug fixing", Opera, archived from the original on 2 June 2010
20. ^ Hunt, Lachlan (22 May 2008), "Selectors API", Opera, archived from the original on 27 May 2008
21. ^ a b Dixit, Shwetank (16 December 2009), "Opera 10.5 Pre-Alpha build released: the new additions", Opera, archived from the original on 25 December 2009
22. ^ "W3C File API support in Opera Presto 2.8", Opera
23. ^ Web specifications support in Opera Presto 2.10, Opera Software ASA, 13 October 2011
24. ^ Bersvendsen, Arve (1 September 2006), "Event Streaming to Web Browsers", Opera, archived from the original on 16 October 2006
25. ^ van Kesteren, Anne (11 October 2010). "The long journey of Server-Sent Events (EventSource)". Opera. Archived from the original on 12 October 2010. Retrieved 11 October 2010.
26. ^ Pieters, Simon (11 October 2010). "WebSockets in Opera". Opera. Archived from the original on 12 October 2010. Retrieved 11 October 2010.
27. ^ van Kesteren, Anne (8 December 2010). "Disabling the WebSocket protocol". Retrieved 10 January 2011.
28. ^ "Web specifications support in Opera Presto 2.11". Opera Software ASA. Retrieved 23 July 2012.
29. ^ Nilsen, Petter (5 February 2010), "Skin fixes, Unite, and then some", Opera, archived from the original on 9 February 2010
30. ^ "Web specifications supported in Opera Presto 2.5", Opera, archived from the original on 12 February 2012, retrieved 19 April 2018
31. ^ Pieters, Simon (1 March 2010), "Everything you need to know about HTML5 video and audio", Opera
32. ^ Jägenstedt, Philip (3 December 2009), "(re-)Introducing <video>", Opera, archived from the original on 4 January 2010
33. ^ Lie, Håkon Wium (1 May 2010), "Welcome, WebM <video>!", Opera, archived from the original on 21 March 2011
34. ^ Mills, Chris (1 May 2010), "Opera supports the WebM video format", Opera
35. ^ Kleinhout, Huib (1 July 2010), "Opera 10.60 goes final", Opera, archived from the original on 2 July 2010
36. ^ Opera Desktop Team Blog
37. ^ Opera 9 canvas support, archived from the original on 31 January 2016, retrieved 19 April 2018
38. ^ Opera 9.5 canvas support, archived from the original on 3 March 2016, retrieved 19 April 2018
39. ^ Presto 2.1.1 canvas support table, archived from the original on 3 March 2016, retrieved 19 April 2018
40. ^ Presto 2.5 canvas support table, archived from the original on 4 March 2016, retrieved 19 April 2018
41. ^ Presto 2.6 canvas support table, archived from the original on 4 March 2016, retrieved 19 April 2018
42. ^ Web specifications support in Opera Presto 2.7 – Core Milestone additions since Opera Presto 2.6, archived from the original on 13 February 2011, retrieved 19 April 2018

* v
* t
* e

Browser engines

Active|

* Blink
* Flow
* Gecko
* Goanna
* WebKit

Maintained|

* EdgeHTML
* KHTML
* NetSurf
* Servo
* Trident

Discontinued|

* Mariner
* Presto
* Tasman
* Tkhtml

Comparisons|

* General info
* Support
* HTML
* CSS
* graphics
* typography

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template