Code | Meaning | Score |
---|---|---|
4.0— | feature supported | +1 |
[4.0—] | limited support or minor bugs | +½ |
- | degrades gracefully | 0 |
\ | disfigures pages | −½ |
X | breaks pages | −1 |
! | buggy | −1 |
In this table, version numbers indicate the earliest version of a Web browser supporting a particular feature. Prerelease versions are emphasized. Results on other platforms may vary.
Metadata attributes like summary
are considered “supported” if rendering is affected or if a command or option can present it to you.
Netscape 8.0— for Windows can switch between Gecko (Firefox) and Trident (Internet Explorer) rendering engines. When acting as a front end for Internet Explorer for Windows, results are same as for Internet Explorer.
MSIE | Firefox | Safari | Opera | Netscape | SeaMonkey | iCab | |
---|---|---|---|---|---|---|---|
Latest Version Tested | 7.0 | 2.0 | 1.3.2 | 9.02 | 8.1.2 | 1.0.6 | 3.0.3 |
Operating System | Windows XP | Windows XP | OS X | Windows XP | Windows XP | Windows XP | OS X |
Abbreviations | |||||||
<abbr> |
7.0(1) | 0.1— | 1.2— | 5.0— | 6.0— | 1.0— | 1.25— |
<acronym> |
7.0 | 0.1— | 1.2— | 5.0— | 6.0— | 1.0— | 1.25— |
Character Entities | |||||||
named | 5.0— | 0.1— | [1.2—] | 7.30—(2) | 6.0— | 1.0— | [2.5.3—](3) |
€ |
5.0— | 0.1— | 1.2— | 7.30—(2) | 4.06—(4) | 1.0— | 2.0—(3) |
™ |
3.0— | 0.1— | 1.2— | 7.30—(2) | 6.0— | 1.0— | 2.0—(3) |
decimal | 4.0— | 0.1— | 1.2— | 7.20—(2) | 4.0— | 1.0— | 2.5.3—(3) |
hex | 5.0— | 0.1— | 1.2— | 7.20—(2) | 6.0— | 1.0— | 2.5.3—(3) |
Characters: Special | |||||||
­ |
|||||||
invisible within line | 5.0— | 0.1— | 1.3.2 | 4.0— | 6.0— | 1.0— | 2.0— |
used to hyphenate | 5.0— | \ | 1.3.2 | 7.20— | \ | \ | \ |
  ,   , and   |
|||||||
fixed width | 5.0— | 0.1— | 1.2— | 7.20—(5) | 6.0— | 1.0— | 3.0.3 |
line break after | 5.0— | 0.1— | X | 7.20—(5) | 6.0— | 1.0— | X |
​ |
|||||||
invisible | 6.0—(6) | 0.1— | 1.2— | 7.20—(5) | 6.0— | 1.0— | 3.0.3 |
lines wrap at | 4.0— | 0.1— | X | 6.0— | 6.1— | 1.0— | X |
‌ |
|||||||
‍ |
|||||||
ligatures | - | - | - | - | - | - | 3.0.3 |
Common Attributes | |||||||
core attributes | |||||||
id |
|||||||
as anchor | 3.0— | 0.1— | 1.2— | 3.50— | 6.0— | 1.0— | 1.25— |
as style sheet selector | [3.0—] | 0.1— | 1.2— | 3.50— | 4.0— | 1.0— | 2.5.1— |
as script reference | |||||||
class |
|||||||
as style sheet selector | 5.0—(7) | 0.1— | 1.2— | 3.50— | 6.0—(7) | 1.0— | 2.5.1— |
style |
3.0— | 0.9— | [1.2—] | 7.10— | 7.20— | 1.0— | [2.5.1—] |
internationalization | |||||||
lang |
- | 0.1— | - | 7.30— | 6.1— | 1.0— | 1.25— |
Edits | |||||||
<ins> , <del> |
|||||||
inline | 4.0— | 0.1— | 1.2— | 5.0—(8) | 6.0— | 1.0— | 1.25— |
block | 4.0— | !(9) | 1.2— | 5.0— | !(9) | ! | 1.25— |
cite |
- | 0.1—(10) | - | - | 6.1—(10) | 1.0— | 1.25— |
datetime |
- | 0.1— | - | - | 6.1— | 1.0— | - |
Forms | |||||||
<fieldset> |
4.0— | 0.1— | 1.2— | 6.02— | 6.0— | 1.0— | 1.25— |
<legend> |
|||||||
labels fieldset | 4.0— | 0.1— | 1.2— | 6.02— | 6.0— | 1.0— | 1.25— |
accesskey |
4.0— | 1.5— | - | -(11) | - | 1.0— | - |
<label> |
|||||||
implicit | -(12) | 0.1— | - | 7.0— | 7.01—(13) | 1.0— | [2.5.3—](14) |
explicit: for
|
4.0— | 0.1— | - | 7.0— | 7.01—(13) | 1.0— | [2.5.3—](14) |
accesskey |
- | [0.1—](13) | 1.3.2 | [7.0—](11) | [6.0—](13) | [1.0—](13) | 3.0.3 |
<input> |
|||||||
disabled |
4.0— | 0.1— | 1.2— | 5.01— | 6.0— | 1.0— | 1.25— |
readonly |
4.0— | 0.1— | 1.2.4— | 5.01—(15) | 6.0— | 1.0— | 1.25— |
tabindex |
4.0— | 0.1— | 1.2.4— | 7.0— | 6.0— | 1.0— | 1.25— |
accesskey |
4.0— | [0.1—](13) | 1.2.4— | [7.0—](11) | [7.0.1—](13) | [1.0—](13) | 1.7— |
<textarea> |
|||||||
disabled |
4.0— | 0.1— | 1.2— | 5.01— | 6.0— | 1.0— | 1.25— |
readonly |
4.0— | 0.1— | 1.2.4— | 5.01— | 6.0— | 1.0— | 1.25— |
tabindex |
4.0— | 0.1— | 1.2.4— | 7.0— | 6.0— | 1.0— | - |
accesskey |
4.0— | 0.1— | 1.2.4— | 7.0—(11) | 6.0— | 1.0— | 3.0.3 |
<select> |
|||||||
disabled |
4.0— | 0.1— | [1.2.4—] | 5.01— | 6.0— | 1.0— | 1.25— |
tabindex |
4.0— | 0.1— | - | 7.0— | 6.0— | 1.0— | - |
<optgroup> |
|||||||
groups options | 6.0— | 0.1— | [1.3.2] | 7.0— | 6.0— | 1.0— | 2.0— |
disabled |
X | 0.1— | X | 6.0— | 6.0— | 1.0— | X |
<option> |
|||||||
label |
7.0 | \ | 1.2— | \ | \ | \ | 2.9.1—(16) |
disabled |
X | 0.1— | X | 6.0— | 6.0— | 1.0— | 1.25— |
<button> |
4.0— | 0.1— | 1.2.4— | [6.02—] | 6.0— | 1.0— | 1.25— |
tabindex |
4.0— | 0.1— | - | 7.0— | 6.1— | 1.0— | 1.5— |
Frames | |||||||
<noframes> |
3.0— | 0.1— | 1.2— | 2.1— | 2.0— | 1.0— | 1.25— |
<frameset> , <frame> |
3.0— | 0.1— | 1.2— | 2.1— | 2.0— | 1.0— | 1.25— |
longdesc |
- | - | - | - | - | - | - |
<iframe> |
3.0— | 0.1— | 1.2— | 4.0— | 6.0— | 1.0— | 1.25— |
longdesc |
- | - | - | - | - | - | - |
Images | |||||||
<img> |
|||||||
longdesc |
- | 0.1—(17) | - | - | 6.1—(17) | 1.0—(17) | 2.5.3—(18) |
Links | |||||||
<a> |
|||||||
rel , rev |
- | 0.1—(19) | - | - | 6.1—(19) | 1.0—(19) | - |
hreflang |
- | 0.1—(19) | - | - | 6.1—(19) | 1.0—(19) | - |
type |
- | 0.1—(19) | - | - | 6.1—(19) | 1.0—(19) | - |
charset |
- | - | - | - | - | - | - |
accesskey |
4.0— | 0.1— | 1.2.4— | 7.0— | 6.0— | 1.0— | - |
Objects | |||||||
<object> |
|||||||
type |
X | 0.1— | [1.2—] | 5.0— | 4.0— | 1.0— | X |
nested objects | !(20) | 0.1— | \ | 5.0— | 6.0— | 1.0— | ! |
images | !(21) | 0.1— | 1.2.4— | 7.0— | 6.0— | 1.0— | !(22) |
scaling | X | 0.1— | 1.2.4— | 5.0— | 6.0— | 1.0— | 1.25— |
image maps | X | 0.1— | X | 7.0— | 6.1— | 1.0— | 1.25— |
usemap |
X | 0.1— | X | 7.0— | 6.0— | 1.0— | 1.25— |
codebase |
X | X | X | 7.0— | X | X | 1.25— |
plain text | [4.0—] | 0.1— | 1.2.4— | 4.0— | 6.2.1— | 1.0— | [1.25—] |
HTML documents | [4.0—] | 0.1— | 1.2.4— | 4.0— | 6.2.1— | 1.0— | [1.25—] |
Java applets | [4.0—] | 0.1— | X | 5.0— | 4.0— | 1.0— | 3.0.3 |
codebase |
X | 0.1— | X | 5.0— | 4.0— | 1.0— | X |
archive |
|||||||
standby |
[3.0—] | - | - | - | - | - | - |
tabindex |
4.0— | - | - | - | - | - | - |
declare |
|||||||
<a> |
|||||||
shape |
X | 0.1— | X | 7.0— | 6.1— | 1.0— | 1.25— |
coords |
X | 0.1— | X | 7.0— | 6.1— | 1.0— | 1.25— |
Quotations | |||||||
<q> |
|||||||
quotation marks | X | 1.5—(23) | [1.2—](23) | 7.30—(23) | [6.0—](23) | 1.0— | 1.25— |
cite |
- | 0.1—(10) | - | - | 6.1—(10) | 1.0—(10) | 1.25— |
<blockquote> |
|||||||
cite |
- | 0.1—(10) | - | - | 6.1—(10) | 1.0—(10) | 1.25— |
Scripts | |||||||
<script> |
|||||||
type |
4.0— | 0.1— | 1.2— | 7.20—(24) | 6.0— | 1.0— | 2.5.1— |
application/javascript
|
\ | 1.5— | \ | 9.0— | \ | 1.0— | \ |
application/ecmascript
|
\ | 1.5— | \ | 9.0— | \ | 1.0— | \ |
text/javascript
|
4.0— | 0.1— | 1.2— | 7.20—(24) | 6.0— | 1.0— | 2.5.1— |
text/ecmascript
|
7.0 | 1.5— | 1.2.4— | 7.50—(24) | - | 1.0— | 3.0.3 |
application/x-javascript
|
-(25) | 0.1— | 1.2— | 7.30—(25) | 6.0— | 1.0— | 2.5.1— |
defer |
4.0— | - | - | - | - | - | - |
<noscript> |
|||||||
when disabled | 3.0— | 0.1— | 1.2.4— | 3.0— | 3.0— | 1.0— | 1.9— |
after unsupported script | - | - | - | 7.20— | - | - | - |
Tables | |||||||
<table> |
|||||||
frame |
[3.0—](26) | 0.1— | X | 7.10— | 6.0— | 1.0— | [1.25—](27) |
rules |
[3.0—](26) | 0.1— | X | 7.10— | 7.01— | 1.0— | [1.25—](27) |
summary |
- | 0.1— | - | - | 6.1—(28) | 1.0— | - |
<thead> , <tfoot> , <tbody> |
3.0— | 0.1— | 1.2— | 4.0— | 6.0— | 1.0— | 1.25— |
<colgroup> |
[3.0—] | [0.1—] | X | [7.10—] | [6.1—] | [1.0—] | [2.0—] |
span |
3.0— | 0.1— | X | 7.10— | 6.1— | 1.0— | 2.0— |
width |
[3.0—](29) | 0.1— | X | X | 6.1— | 1.0— | X |
style |
3.0— | 0.9— | \ | 7.10— | 7.20— | 1.0— | \ |
align |
[4.0—] | X | X | [7.0—] | X | X | X |
char |
\ | \ | \ | \ | \ | \ | \ |
charoff |
\ | \ | \ | \ | \ | \ | \ |
<col> |
[3.0—] | [0.1—] | X | [7.10—] | [6.1—] | [1.0—] | [2.2—] |
width |
[3.0—](29) | 0.1— | X | X | 6.1— | 1.0— | X |
style |
3.0— | 0.9— | \ | 7.10— | 7.20— | 1.0— | \ |
align |
[4.0—] | X | X | [7.0—] | X | X | X |
char |
\ | \ | \ | \ | \ | \ | \ |
charoff |
\ | \ | \ | \ | \ | \ | \ |
<th> , <td> |
|||||||
scope |
- | - | - | - | - | - | - |
headers |
- | - | - | - | - | - | - |
abbr |
- | - | - | - | - | - | - |
axis |
- | - | - | - | - | - | - |
Text Direction | |||||||
dir |
5.5— | 0.1— | ! | 7.20— | 6.1— | 1.0— | X |
<bdo> |
5.0— | 0.1— | X | 7.20— | 6.1— | 1.0— | X |
‎ , ‏ |
5.5— | 0.1— | 1.3.2 | 7.20—(30) | 6.1— | 1.0— | X |
‬ , ‭ , and ‮ |
5.5— | 0.1— | ! | 7.20—(30) | 6.1— | 1.0— | X |
Score | 44.5 | 77 | 18.5 | 72 | 71.5 | 77 | 39.5 |
In Internet Explorer 4.0–6.0, when you hover your pointer over an <acronym>
element (or most other elements), its title
attribute appears in a small “tool tip” pop‐up.
But not <abbr>
. Even style
attributes on <abbr>
tags are disregarded.
Internet Explorer 4.0 was released on 3 October 1997, two months before the final HTML 4.0 standard was published. <abbr>
was a late addition to HTML 4.0, so 4.0’s lack of support is understandable. Not so understandable is 5.0’s, 5.5’s, and 6.0’s lack of support.
No doubt it was a trivial change to handle <abbr>
as if it were a synonym for <acronym>
. It seems like the Internet Explorer for Windows developers lost interest in HTML 4.0 compliance after Internet Explorer 4.0 was released and didn’t regain it until 7.0.
Fixed: Opera 6.0–7.23 has severe bugs handling character entities in pages served as XHTML.
It fails to render any named entities on my Characters test and this Results page except for "
, &
, <
, >
, '
, and
.
Opera 7.20 misrenders ampersand entities followed by an HTML entity reference (numeric or named), like
, as if they were the entity itself (&
ndash;–
).
Opera 7.10–7.11 does not support ο
, ϑ
, and ℵ
. They are rendered as text (ex. ϑ). However, these characters are rendered when their numeric entities are used.
Opera 7.0–7.11 substitutes spaces for  
,  
, and  
even when font coverage exists.
Opera 6.0–6.06 supports all HTML 4.0 entity names.
Opera 5.10–5.12 for Windows renders only new entities for characters included in Windows-1252, the default character set for English-language
versions of Windows. (Namely, €
, ™
, –
, —
, …
, •
, †
, ‡
, ‰
, ‘
, ’
, ‚
, “
, ”
, „
, ‹
, ›
, ˆ
, ˜
, ƒ
, œ
, Œ
, š
, Š
, and Ÿ
.) A few others are rendered with ASCII approximations, and the rest are rendered with an unknown‐character glyph.
Opera 4.0–5.02 renders only €
, ™
, –
, and —
. Even when a display font supports them, some others like left and right quotes are rendered as ASCII approximations. Other
new entities are rendered with the unknown‐character glyph.
Opera 3.60–3.62 renders only €
.
I have been informed that iCab can render any character in fonts it is configured to use, if the Unicode to MacOS language system is available.
Character entities that iCab cannot render are displayed as text (ex. š or š).
Fixed: Navigator 4.06–4.80 supports no named entities added in HTML 4.0, except for €
.
Fixed: Opera 7.0–7.11 substitutes regular variable‐width spaces for  
,  
,  
, and ​
.
Opera 7.20— and 6.02–6.06 handles these space entities correctly.
Fixed: Although Internet Explorer 4.0–5.5 correctly treats ​
as white space for line breaking, it defeats the purpose by rendering zero‐width spaces as unknown‐character glyphs.
Though rendering unknown character glyphs is technically compliant, this reveals an error: When a line is wrapped at a zero‐width space, an unknown‐character glyph appears at the beginning of the following line. (If ordinary spaces were treated this way, every paragraph would have a hanging indent!)
Fixed: Internet Explorer 3.0–4.0 and Netscape 4.0–4.80 handle the class
attribute correctly when it contains a single class name, but not when it contains multiple class names.
Fixed: Opera 4.0–4.02 puts a line break before the first <ins>
or <del>
in a paragraph.
Downgrade: Firebird/Firefox 0.6—, Netscape 7.10—, SeaMonkey, and Mozilla 1.3— underline <ins>
and strike through <del>
only when used as inline elements, not as block elements.
Phoenix 0.1–0.5, Netscape 6.0–7.02, and Mozilla 0.6–1.2 will underline <ins>
and strike through <del>
as either block or inline.
To view citation URLs in Firefox, Netscape 6.1—, SeaMonkey, and Mozilla 0.9—, hover over anything with a citation and select “Properties” from the context menu.
Though you cannot directly open addresses in a Properties dialog in Firefox 0.4—, Netscape 7.1—, and Mozilla 1.2—, you can copy and paste.
iCab allows you to navigate to a citation URL directly from the context menu, though you must scroll down the context menu to find the option.
Minor Bug: In Opera 7.0—, if you use an accesskey
of a hyperlink, field or label that is off screen, its associated form control is activated but remains off screen, except
when that form control is a text box.
To use access keys in Opera 7.0—, press Shift‐Esc and then a key.
Internet Explorer 4.0— does not associate a <label>
element with a form control in its content without a for
attribute.
Minor Bug: In Firefox, Netscape 7.01—, SeaMonkey, and Mozilla 1.0.2—, labels on checkboxes or radio buttons are handled inconsistently. Clicking on such a label always activates the control,
but invoking a label’s accesskey
will not activate the control when it is in focus. (You must move off of it to use its accesskey
to toggle it again.) However, invoking an accesskey
on a checkbox <input>
control will not activate it unless it is already in focus. (You must invoke an accesskey
twice to toggle a checkbox.)
In Netscape 6.0–7.0 and Mozilla 0.6–1.0.1, clicking on a label or invoking a label’s accesskey
will always activate checkboxes and radio buttons, but does not give focus to other types of form control.
Minor Bug: When you click on a <label>
element, iCab 2.5.3 shifts focus to its associated control only when it is a checkbox or radio button (not text input controls and selection
boxes).
Opera 5.0–5.12 prevented changes to read‐only checkboxes and radio buttons, but stopped doing so in 6.0—.
Fixed: iCab 2.5.3 displays both <option>
content and its label
attribute, instead of one or the other.
To view long description URLs in Firefox, Netscape 6.1—, SeaMonkey, and Mozilla 0.9—, hover over an image and select Properties from the context menu.
Though you cannot directly open addresses in a Properties dialog in Firefox 0.4—, Netscape 7.1—, and Mozilla 1.2—, you can copy and paste.
To view long descriptions in iCab, hover over an image and select “Description” from the context menu and then “Images” from the submenu.
To view link information in Firefox, Netscape 6.1—, SeaMonkey, and Mozilla 0.9— and its derivatives, hover over a link and select Properties from the context menu. A Properties dialog will report content type, relation, and target language.
Bug: Internet Explorer 4.0–6.0 mishandles nested objects. If an object in a page has an alternate object within its replacement markup, that alternate object
is displayed alongside the primary one. This bug occured because, according to MSDN, Internet Explorer was automatically closing
the outer <object>
tag when it encountered the inner one.
Bug: Internet Explorer 4.0— destroys pages that use image objects, which it treats much like HTML objects. Instead of scaling image objects by their width
and height
attributes, it creates a scrolling internal frame of that size. Images without width
and height
attributes are not displayed at all, nor is their replacement markup.
Bug: iCab Pre1.25–2.2 displays image objects with sizes correctly. However, they distort images without sizes.
Bug: Netscape 6.0–7.02, Mozilla 0.6–1.1, Opera 4.0–7.23, and Safari always render <q>
with straight ASCII double quotes, even when nested.
Firefox 0.1–1.0.8, Netscape 7.10—, and Mozilla 1.2— use only the first level of quotation marks specified by a CSS quotes
style description, ignoring quotation marks specified for nested quotations.
Fixed: Opera 3.0–7.11 ignored the type
attribute of <script>
, and tried to execute scripts it doesn’t support (ex. VBScript) as JavaScript. This causes it to report spurious syntax errors
(or in version 5.01, to crash!).
Minor Bug: Before application/javascript
became the official media type for JavaScript on 27 June 2005, many users eschewed the incorrect text/javascript
in favor of a correct unofficial media type, application/x-javascript
. Though Internet Explorer and Opera 7.20–7.23 support JavaScript, they do not support this widely used media type.
Bug: Internet Explorer 3.0— doesn’t use standard default values for a table with either a frame
attribute or a rules
attribute, but not both. For example, <table frame="hsides">
should result in a table with no rules, but Internet Explorer treats it as though rules="cols"
were also set.
Bug: iCab ignores frame
and rules
attributes unless the deprecated border
attribute is also set.
To view a table summary in Firefox, Netscape 6.1—, SeaMonkey, and Mozilla 0.9—, hover over a table and select Properties from the context menu. A Properties dialog will show its summary. Try it on the results table above.
Internet Explorer 3.0— supports column widths in pixels and percentages, but does not support relative column widths.
Fixed: Opera 7.0–7.11 seems to ignore ‏
, and only changes direction for the first word after ‮
.
Opera 7.20— and 6.0–6.06 correctly alter text direction when the source contains the proper Unicode character entities.
Many thanks to Brian Wilson’s useful reference index DOT Html for providing support information about early Internet Explorer and Netscape versions.
Your Web browser identified itself as Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
when it requested this page. Mozilla 5.0
, why do you lie to me so?