Web browser standards support

This document will summarize the level of support for web standards and maturing technologies in popular web browsers. It covers the Internet Explorer, Firefox, and Opera web browsers, with focus on the HTML, CSS, DOM, and ECMAScript technologies.

Pick browsers to display

Table of Contents

  1. Quick links
  2. Accessibility features
  3. How to interpret these tables
  4. How features are rated
  5. Specification maturity levels
  6. Web standards and maturing technologies (summaries)
    1. HTML
    2. CSS
    3. DOM
    4. ECMAScript
    5. Summary
  7. About other browsers
  8. How to contribute
  9. Disclaimer

Accessibility features

Up

Visitors with visual impairments may take advantage of a magnified version or a monochrome version of these documents. In most web browsers, you can select your preferred view by going to the View menu and then Page Style or Style. This mechanism is not supported by Internet Explorer or Safari.

How to interpret these tables

Up

Each row corresponds to a feature of the particular web standard or maturing specification. In the full tables, the browser support for that feature is usually indicated by a single letter: Y (yes), N (no), or I (incomplete support). A question mark (?) means that the support for that feature is currently unknown. The values have been colored for readability. Most feature names in the full tables are links to the official standards definitions.

Some features are listed as a summary of another group of features on the tables. These summary features often show percentages indicating the mean average support for the features in that group. Incomplete (I) support for a feature is calculated as a 50% support. Features with unknown levels of support are ignored. Features that are irrelevant in the summarized context are also ignored, such as the “inherit” values in the individual components of CSS shorthand properties. If more than 5% of the data in the summarized group is unknown, it simply lists a question mark. If all of the summarized features have all or no support, the summary feature simply lists a Y or N, respectively. If there is only one feature summarized and it has an I rating, the summary feature simply lists an I.

Some summary features summarize a feature breakdown that is not written out on these tables but is obvious in the standard's specification, such as a predefined set of possible values for an attribute in HTML. These summary features assume a value for general support and an additional value for each part of the breakdown in order to arrive at the displayed percentage.

The tables on this page and the summary page are in summarized form. Each row is a summary feature of the corresponding group in the full tables. Feature names are links to the corresponding sections of the full tables.

Some feature ratings have explanations associated with them, particularly for those with an “I” rating. The explanations are stored in the title attribute of the table cell or in a mouseover event for user agents supporting ECMAScript, and can usually be accessed by user agents with mouse support by hovering the mouse cursor over the table cell. These rating symbols are marked with an overline.

There are three families of web browsers shown here by default: IE, Firefox, and Opera. IE values are relevant for Microsoft Internet Explorer for Windows, Maxthon, Netscape in “I Trust This Site” or Internet Explorer mode, Avant Browser, AOL Browser, and other programs that use the Trident layout engine. (It should be noted that Internet Explorer for the Macintosh uses a different layout engine.) Firefox values are relevant for corresponding versions of Mozilla Firefox, the Mozilla Application Suite, Seamonkey, Netscape in “I'm Not Sure” or Netscape mode, Camino, Flock, Galeon, Epiphany, and other programs that use the Gecko layout engine. Opera values are relevant for Opera, Dreamweaver on Mac OS X, Adobe Creative Suite 2, and other programs that use the Presto layout engine. For features that are specific to the interface of the browser rather than simply the layout engine, the named web browser is the browser being tested.

How features are rated

Up

If the browser doesn't recognize a given feature or admits that the feature is not yet implemented, and the browser is supposed to do something with the feature, it receives an automatic N. Features in description languages such as HTML that don't have a clear functional purpose are expected to contain information that is made directly available to the user. If the browser appears to support a given feature completely with no significantly impairing bugs, the feature receives a Y. In other cases, the feature generally receives an I, often with an explanation attached (see above). For consistency reasons, it will receive an I even if the feature never performs a correct task or always returns an incorrect value, as long as the browser shows that it recognizes the feature and attempts to utilize it.

A Y value can only be given if the feature is supported natively or by a plugin distributed as an official optional component of the web browser. If it requires a plugin not officially endorsed and distributed by the creators of the web browser, it can at best receive an I rating. If the feature requires a plugin, but there is no such plugin that is officially promoted by the creators of the browser, it receives an N. This is done because all major browsers have a variety of third party plugins available to extend the browser's standards support, and including them would defeat the purpose of judging the browser itself.

Features are generally tested with webpages using valid HTML or XHTML markup with strict doctypes, doctype URLs, and no XML declaration. Some browsers will purposefully implement some features incorrectly when there are perceived errors on the page, particularly when no doctype is used, or when certain types of doctypes are used. In order to see the following results, make sure that you are using valid markup and a doctype that triggers the closest mode to standards mode in the respective browser. You can check an HTML or XHTML document for validity by using the W3C HTML validator.

Specification maturity levels

Up

World Wide Web Consortium specifications are included in this resource once they have reached the Candidate Recommendation (CR) status for the first time. Some of the technologies detailed here, such as the changes in CSS 2.1 over CSS 2 and the included sections of CSS 3, are still at this stage or have been regressed from CR status. This means that these technologies are not yet technically considered web standards and it is incorrect for these new features to be used on webpages. The CR stage is when web browsers are expected to begin implementing support for the relevant features. After the specification is implemented by a predetermined number of user agents, it moves on to Proposed Recommendation status and eventually becomes a Recommendation. It isn't until a specification reaches this Recommendation stage that it is technically considered a web standard. For more information, see Advancing a Technical Report to Recommendation.

Features that have been marked as deprecated in the relevant specifications are not included in these tables.

Web standards and maturing technologies

Up

HTML

Up

HTML is the primary language that makes up a webpage. It puts together all of the text, images, scripts, and other content.

In most web browsers, you can view this page's HTML code by going to the View menu and selecting “Page Source” or “Source”.

This table is in summarized form. View the full tables

HTML / XHTML
Feature IE 6 IE 7 Firefox 2 Firefox 3 Opera 9
HTML 4.01
a 72% 72% 88% 88% 83%
abbr 50% 88% 97% 97% 84%
acronym 88% 88% 97% 97% 84%
address 88% 88% 97% 97% 91%
area 88% 88% 96% 96% 93%
b 88% 88% 97% 97% 91%
base 83% 83% 83% 83% 83%
bdo 88% 88% 97% 97% 91%
big 88% 88% 97% 97% 91%
blockquote 80% 80% 98% 98% 83%
body 92% 92% 98% 98% 94%
br 88% 88% 94% 94% 94%
button 82% 82% 99% 99% 93%
caption 88% 88% 97% 97% 91%
cite 88% 88% 97% 97% 91%
code 88% 88% 97% 97% 91%
col 68% 68% 75% 75% 70%
colgroup 68% 68% 75% 75% 70%
dd 88% 88% 97% 97% 91%
del 75% 75% 98% 98% 77%
dfn 88% 88% 97% 97% 91%
div 88% 88% 97% 97% 91%
dl 88% 88% 97% 97% 91%
dt 88% 88% 97% 97% 91%
em 88% 88% 97% 97% 91%
fieldset 88% 88% 97% 97% 91%
form 85% 85% 95% 95% 93%
frame 85% 85% 88% 88% 88%
frameset 96% 96% 98% 98% 92%
h1 88% 88% 97% 97% 91%
h2 88% 88% 97% 97% 91%
h3 88% 88% 97% 97% 91%
h4 88% 88% 97% 97% 91%
h5 88% 88% 97% 97% 91%
h6 88% 88% 97% 97% 91%
head 67% 67% 83% 83% 83%
hr 88% 88% 97% 97% 91%
html 88% 88% Y Y 88%
i 88% 88% 97% 97% 91%
iframe 89% 89% 93% 93% 93%
img 85% 85% 99% 99% 91%
input 85% 85% 89% 89% 86%
ins 75% 75% 98% 98% 77%
kbd 88% 88% 97% 97% 91%
label 75% 81% 86% 86% 95%
legend 90% 90% 98% 98% 83%
li 88% 88% 97% 97% 91%
link 75% 75% 93% 93% 80%
map 80% 80% 98% 98% 93%
meta 96% 96% 96% 96% 96%
noframes 50% 50% 97% 97% 88%
noscript 63% 63% 97% 97% 75%
object 69% 70% 85% 85% 88%
ol 88% 88% 97% 97% 91%
optgroup 69% 71% 93% 93% 78%
option 70% 78% 82% 82% 77%
p 88% 88% 97% 97% 91%
param 92% 92% Y Y Y
pre 88% 88% 97% 97% 91%
q 70% 70% 98% 98% 83%
samp 88% 88% 97% 97% 91%
script Y Y 90% 90% 90%
select 86% 88% 99% 99% 89%
small 88% 88% 97% 97% 91%
span 88% 88% 97% 97% 91%
strong 88% 88% 97% 97% 91%
style 85% 85% 90% 90% 85%
sub 88% 88% 97% 97% 91%
sup 88% 88% 97% 97% 91%
table 90% 90% 94% 94% 92%
tbody 77% 77% 91% 91% 86%
td 62% 62% 78% 78% 71%
textarea 90% 90% 99% 99% 97%
tfoot 77% 77% 91% 91% 86%
th 62% 62% 78% 78% 71%
thead 77% 77% 91% 91% 86%
title 88% 88% 88% 88% 88%
tr 77% 77% 91% 91% 86%
tt 88% 88% 97% 97% 91%
ul 88% 88% 97% 97% 91%
var 88% 88% 97% 97% 91%
Core attributes 75% 75% 88% 88% 88%
Event attributes Y Y Y Y Y
Internationalization (i18n) attributes 75% 75% Y Y 75%
Cell alignment attributes 37% 37% 68% 68% 68%
SGML inheritance 17% 17% 38% 38% 33%
XHTML 1.0 changes
HTML in XML N N Y Y Y
Documents must be well-formed I I Y Y Y
Media types N N Y Y Y
DTD changes I I I I I
XHTML 1.1 changes
rb N N 69% 69% 63%
rbc N N 69% 69% 63%
rp N N 69% 69% 63%
rt N N 46% 46% 42%
rtc N N 69% 69% 63%
ruby N N 69% 69% 63%

CSS

Up

CSS is the primary language for adding presentation elements to a webpage. These presentation elements include colors, fonts, backgrounds, and layout.

View this page without CSS

This table is in summarized form. View the full tables

CSS 2.1
Feature IE 6 IE 7 Firefox 2 Firefox 3 Opera 9
CSS 2.1 Units
Color 99% 99% Y Y 97%
Counter N N Y Y I
Integer Y Y Y Y Y
Length Y Y Y Y Y
Number Y Y Y Y Y
Percentage Y Y Y Y Y
String N N Y Y Y
URI Y Y Y Y Y
CSS 2.1 Importance
!important I I Y Y Y
CSS 2.1 At-rules
@charset I I Y Y Y
@import I I Y Y Y
@media I I Y Y Y
@page N N N N Y
CSS 2.1 Basic selectors
* I I Y Y I
E I I Y Y Y
E F I I Y Y Y
E > F N I Y Y Y
E + F N I Y Y I
[attr] N I Y Y Y
[attr="value"] N I I I I
[attr~="value"] N I I I I
[attr|="value"] N I I I I
.class I Y Y Y Y
#id I Y Y Y Y
CSS 2.1 Pseudo-classes
:active I I Y Y Y
:first-child N I I Y I
:focus N N Y Y Y
:hover I I Y Y Y
:lang(C) N N Y Y Y
:link I I Y Y Y
:visited I I Y Y Y
CSS 2.1 Pseudo-elements
:after N N I I I
:before N N I I I
:first-letter I I I I I
:first-line I I Y Y Y
CSS 2.1 Basic properties
background 56% 58% Y Y 83%
background-attachment 38% 50% Y Y 88%
background-color 62% 62% Y Y 87%
background-image 63% 63% Y Y 88%
background-position 45% 45% Y Y 95%
background-repeat 75% 75% Y Y 92%
border 58% 61% Y Y ≈100%
border-bottom 58% 61% Y Y ≈100%
border-bottom-color 50% 62% Y Y 99%
border-bottom-style 75% 75% Y Y Y
border-bottom-width 75% 75% Y Y Y
border-collapse 50% 50% Y Y Y
border-color 50% 62% Y Y 99%
border-left 58% 61% Y Y ≈100%
border-left-color 50% 62% Y Y 99%
border-left-style 75% 75% Y Y Y
border-left-width 75% 75% Y Y Y
border-right 58% 61% Y Y ≈100%
border-right-color 50% 62% Y Y 99%
border-right-style 75% 75% Y Y Y
border-right-width 75% 75% Y Y Y
border-spacing N N Y Y Y
border-style 75% 75% Y Y Y
border-top 58% 61% Y Y ≈100%
border-top-color 50% 62% Y Y 99%
border-top-style 75% 75% Y Y Y
border-top-width 75% 75% Y Y Y
border-width 75% 75% Y Y Y
bottom 70% 70% Y Y 90%
caption-side N N Y Y Y
clear 75% 50% Y Y Y
clip N N Y Y Y
color 50% 50% Y Y 99%
content N N 93% Y 80%
counter-increment N N Y Y 90%
counter-reset N N Y Y Y
cursor 93% 90% Y Y 93%
direction 88% 88% Y Y Y
display 31% 31% 81% 92% 94%
empty-cells N N 88% 88% 88%
float 50% 50% 80% 80% 80%
font 89% 89% Y Y Y
font-family 81% 81% Y Y Y
font-size 88% 88% Y Y Y
font-style 70% 70% Y Y Y
font-variant 50% 50% Y Y Y
font-weight 90% 90% Y Y Y
height 50% 50% Y Y 90%
left 60% 60% Y Y Y
letter-spacing 63% 63% Y Y Y
line-height 75% 75% Y Y Y
list-style 67% 67% Y Y Y
list-style-image 63% 63% Y Y Y
list-style-position 63% 63% Y Y Y
list-style-type 56% 56% Y Y Y
margin 50% 60% Y Y Y
margin-bottom 50% 60% Y Y Y
margin-left 50% 60% Y Y Y
margin-right 50% 60% Y Y Y
margin-top 50% 60% Y Y Y
max-height N 50% Y Y Y
max-width N 50% Y Y Y
min-height N 38% Y Y 75%
min-width N 38% Y Y 88%
outline N N Y Y ≈100%
outline-color N N Y Y 99%
outline-style N N Y Y Y
outline-width N N Y Y Y
overflow 42% 50% 92% 92% Y
padding 50% 63% Y Y Y
padding-bottom 50% 63% Y Y Y
padding-left 50% 63% Y Y Y
padding-right 50% 63% Y Y Y
padding-top 50% 63% Y Y Y
position 42% 50% Y Y Y
quotes N N Y Y 88%
right 70% 70% Y Y 90%
table-layout 63% 63% Y Y Y
text-align 75% 75% Y Y Y
text-decoration 64% 64% 93% 93% Y
text-indent 63% 63% Y Y Y
text-transform 58% 58% Y Y Y
top 70% 70% Y Y Y
unicode-bidi 70% 70% Y Y Y
vertical-align 54% 54% Y Y Y
visibility 70% 70% Y Y 90%
white-space 29% 29% 50% 64% 64%
width 40% 50% Y Y 90%
word-spacing 63% 63% Y Y Y
z-index 63% 63% 88% Y Y
CSS 2.1 Print properties
orphans N N N N Y
page-break-after 64% 64% 57% 57% Y
page-break-before 64% 64% 57% 57% Y
page-break-inside N N N N Y
widows N N N N Y
CSS 2.1 Conformance
Conformance 43% 43% Y Y 86%
CSS 3 changes
Feature IE 6 IE 7 Firefox 2 Firefox 3 Opera 9
CSS 3 Units
Appearance 5% 5% 5% 5% 5%
Color 91% 91% 97% 99% 96%
Counter N N N N N
ID N N N N N
Target name N N N N N
CSS 3 At-rules
@color-profile N N N N N
@media N N N N 48%
@page N N N N N
CSS 3 Basic selectors
E ~ F N I Y Y Y
[attr^="value"] N I I I I
[attr$="value"] N I I I I
[attr*="value"] N I I I I
CSS 3 Pseudo-classes
:root N N Y Y N
:nth-child(N) N N N N N
:nth-last-child(N) N N N N N
:nth-of-type(N) N N N N N
:nth-last-of-type(N) N N N N N
:last-child N N I Y N
:first-of-type N N N N N
:last-of-type N N N N N
:only-child N N I Y N
:only-of-type N N N N N