HTML 4.01 Test Suite for CSS 2.1 Conformance Testing
Thank you for offering to contribute results for the support of CSS2.1 conformance
testing.
Your browser has been identified by the user-agent string shown below.
This string indicates that your browser is IE 6.0 run on WinXP; however,
you can provide results for a different browser by providing another user-agent
string.
The HTML 4.01 test suite contains 511 test cases.
You can choose to conduct:
The full test suite
in order
with least tested cases first
A group of test cases:
17.6.2 The collapsing border model
16.6 Whitespace: the 'white-space' property
16.5 Capitalization: the 'text-transform' property
16.4 Letter and word spacing: the 'letter-spacing' and 'word-spacing' properties
16.2 Alignment: the 'text-align' property
16.1 Indentation: the 'text-indent' property
15.8 Shorthand font property: the 'font' property
15.7 Font size: the 'font-size' property
15.6 Font boldness: the 'font-weight' property
15.5 Small-caps: the 'font-variant' property
15.4 Font styling: the 'font-style' property
15.3 Font family: the 'font-family' property
14.2.1 Background properties: 'background-color', 'background-image', 'background-repeat', 'background-attachment', 'background-position', and 'background'
14.2 The background
14.1 Foreground color: the 'color' property
12.5 Lists
12.4.3 Counters in elements with 'display: none'
12.4.1 Nested counters and scope
12.4 Automatic counters and numbering
12.2 The 'content' property
10.8.1 Leading and half-leading
10.8 Line height calculations: the 'line-height' and 'vertical-align' properties
10.5 Content height: the 'height' property
10.4 Minimum and maximum widths: 'min-width' and 'max-width'
10.3.4 Block-level, replaced elements in normal flow
10.3.3 Block-level, non-replaced elements in normal flow
10.2 Content width: the 'width' property
10.1 Definition of "containing block"
9.5.2 Controlling flow next to floats: the 'clear' property
9.5.1 Positioning the float: the 'float' property
9.5 Floats
9.4.2 Inline formatting context
9.2.4 The 'display' property
9 Visual formatting model
8.5 Border properties
8.4 Padding properties: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', and 'padding'
8.3.1 Collapsing margins
8.3 Margin properties: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left', and 'margin'
8.1 Box dimensions
6.4.3 Calculating a selector's specificity
6.4.2 !important rules
6.3 The @import rule
6.4.1 Cascading order
6.2 Inheritance
5.12.2 The :first-letter pseudo-element
5.12.1 The :first-line pseudo-element
5.11.3 The dynamic pseudo-classes: :hover, :active, and :focus
5.11 Pseudo-classes
5.9 ID selectors
5.10 Pseudo-elements and pseudo-classes
5.8.3 Class selectors
5.5 Descendant selectors
4.3.7 Strings
5.2.1 Grouping
4.3.6 Colors
4.3.4 URLs and URIs
4.3.3 Percentages
4.3.2 Lengths
4.2 Rules for handling parsing errors
4.1.9 Comments
4.1.5 At-rules
4.1.3 Characters and case
4.1.2 Keywords
1.4.3 Shorthand properties
misc.
in order
with least tested cases first
A single test case:
Border Conflict Resolution (width) - none/none
Border Conflict Resolution (width) - none/inset
Border Conflict Resolution (width) - none/groove
Border Conflict Resolution (width) - inset/outset
Border Conflict Resolution (width) - none/ridge
Border Conflict Resolution (width) - none/dotted
Border Conflict Resolution (width) - none/dashed
Border Conflict Resolution (width) - none/solid
Border Conflict Resolution (width) - none/double
Border Conflict Resolution (width) - none/hidden
Border Conflict Resolution (width) - inset/none
Border Conflict Resolution (width) - inset/inset
Border Conflict Resolution (width) - inset/groove
Border Conflict Resolution (width) - inset/outset
Border Conflict Resolution (width) - inset/ridge
Border Conflict Resolution (width) - inset/dotted
Border Conflict Resolution (width) - inset/dashed
Border Conflict Resolution (width) - inset/solid
Border Conflict Resolution (width) - inset/double
Border Conflict Resolution (width) - inset/hidden
Border Conflict Resolution (width) - groove/none
Border Conflict Resolution (width) - groove/inset
Border Conflict Resolution (width) - groove/groove
Border Conflict Resolution (width) - groove/outset
Border Conflict Resolution (width) - groove/ridge
Border Conflict Resolution (width) - groove/dotted
Border Conflict Resolution (width) - groove/dashed
Border Conflict Resolution (width) - groove/solid
Border Conflict Resolution (width) - groove/hidden
Border Conflict Resolution (width) - groove/double
Border Conflict Resolution (width) - outset/none
Border Conflict Resolution (width) - outset/inset
Border Conflict Resolution (width) - outset/groove
Border Conflict Resolution (width) - outset/outset
Border Conflict Resolution (width) - outset/ridge
Border Conflict Resolution (width) - outset/dashed
Border Conflict Resolution (width) - outset/dotted
Border Conflict Resolution (width) - outset/solid
Border Conflict Resolution (width) - outset/double
Border Conflict Resolution (width) - outset/hidden
Border Conflict Resolution (width) - ridge/none
Border Conflict Resolution (width) - ridge/inset
Border Conflict Resolution (width) - ridge/groove
Border Conflict Resolution (width) - ridge/outset
Border Conflict Resolution (width) - ridge/ridge
Border Conflict Resolution (width) - ridge/dotted
Border Conflict Resolution (width) - ridge/dashed
Border Conflict Resolution (width) - ridge/solid
Border Conflict Resolution (width) - ridge/double
Border Conflict Resolution (width) - ridge/hidden
Border Conflict Resolution (width) - dotted/none
Border Conflict Resolution (width) - dotted/inset
Border Conflict Resolution (width) - dotted/groove
Border Conflict Resolution (width) - dotted/outset
Border Conflict Resolution (width) - dotted/ridge
Border Conflict Resolution (width) - dotted/dotted
Border Conflict Resolution (width) - dotted/dashed
Border Conflict Resolution (width) - dotted/solid
Border Conflict Resolution (width) - dotted/double
Border Conflict Resolution (width) - dotted/hidden
Border Conflict Resolution (width) - dashed/none
Border Conflict Resolution (width) - dashed/inset
Border Conflict Resolution (width) - dashed/groove
Border Conflict Resolution (width) - dashed/outset
Border Conflict Resolution (width) - dashed/ridge
Border Conflict Resolution (width) - dashed/dotted
Border Conflict Resolution (width) - dashed/dashed
Border Conflict Resolution (width) - dashed/solid
Border Conflict Resolution (width) - dashed/double
Border Conflict Resolution (width) - dashed/hidden
Border Conflict Resolution (width) - solid/none
Border Conflict Resolution (width) - solid/inset
Border Conflict Resolution (width) - solid/groove
Border Conflict Resolution (width) - solid/outset
Border Conflict Resolution (width) - solid/ridge
Border Conflict Resolution (width) - solid/dotted
Border Conflict Resolution (width) - solid/dashed
Border Conflict Resolution (width) - solid/solid
Border Conflict Resolution (width) - solid/double
Border Conflict Resolution (width) - solid/hidden
Border Conflict Resolution (width) - double/none
Border Conflict Resolution (width) - double/inset
Border Conflict Resolution (width) - double/groove
Border Conflict Resolution (width) - double/outset
Border Conflict Resolution (width) - double/ridge
Border Conflict Resolution (width) - double/dashed
Border Conflict Resolution (width) - double/dashed
Border Conflict Resolution (width) - double/solid
Border Conflict Resolution (width) - double/double
Border Conflict Resolution (width) - double/hidden
Border Conflict Resolution (width) - hidden/none
Border Conflict Resolution (width) - hidden/inset
Border Conflict Resolution (width) - hidden/groove
Border Conflict Resolution (width) - hidden/outset
Border Conflict Resolution (width) - hidden/ridge
Border Conflict Resolution (width) - hidden/dotted
Border Conflict Resolution (width) - hidden/dashed
Border Conflict Resolution (width) - hidden/solid
Border Conflict Resolution (width) - hidden/double
Border Conflict Resolution (width) - hidden/hidden
white-space
text-transform
letter-spacing
letter-spacing
word-spacing
word-spacing
text-align
Replaced Elements
text-indent
text-indent
font
font
font
font
font
font
font
font
font
font
font
font-size
font-size
font-size
font-size
font-weight
font-variant
text-decoration
font-style
font-family
background
background-position
background-position
background-attachment
background-repeat
background-repeat
background-repeat
background-repeat
background-repeat
background-repeat
background-repeat
background-repeat
background-image
background-image
background-color
background-color
The Canvas
color
list-style
list-style
list-style-position
list-style-position
list-style-image
list-style-type
list-style-type
display
Counter properties on 'visibility: hidden' elements
Counter properties on 'display: none' elements
Counter properties on 'content: none' pseudo-elements
Counter scope and nesting
Counter scope and nesting on :after
Counter scope and nesting on :before
Counter scope and nesting on elements
Counter scope
counters on the root element
dynamic changes to 'counter-increment'
dynamic changes to 'counter-increment'
dynamic changes to 'counter-increment'
Order of counters in out-of-flow content
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements
Multiple increments and resets
Multiple resets for same counter
dynamic changes to 'counter-increment'
dynamic changes to 'counter-increment'
dynamic changes to 'counter-increment'
Implied counter scopes by 'counter-increment'
Implied counter scopes by counter use
Implied counter scopes with no 'counter-increment' or 'counter-reset'
content: counters() error cases
content: counters() string argument
content: counters() string argument
content: counters(c, ".", lower-greek)
content: counters(c, ".", upper-alpha)
content: counters(c, ".", upper-latin)
content: counters(c, ".", lower-alpha)
content: counters(c, ".", lower-latin)
content: counters(c, ".", armenian)
content: counters(c, ".", georgian)
content: counters(c, ".", upper-roman)
content: counters(c, ".", lower-roman)
content: counters(c, ".", decimal-leading-zero)
content: counters(c, ".", decimal)
content: counters(c, ".", square)
content: counters(c, ".", circle)
content: counters(c, ".", disc)
content: counters(c, ".", none)
content: counters(c, ".")
content: counter() error cases
content: counter(c, lower-greek)
content: counter(c, upper-alpha)
content: counter(c, upper-latin)
content: counter(c, lower-alpha)
content: counter(c, lower-latin)
content: counter(c, armenian)
content: counter(c, georgian)
content: counter(c, upper-roman)
content: counter(c, lower-roman)
content: counter(c, decimal-leading-zero)
content: counter(c, decimal)
content: counter(c, square)
content: counter(c, circle)
content: counter(c, disc)
content: counter(c, none)
line-height
content: counter(c)
line-height
line-height
line-height
line-height
line-height
vertical-align
vertical-align
vertical-align
vertical-align
vertical-align
Inline Elements
The Height of Lines
The Height of Lines
The Height of Lines
The Height of Lines
height
height
height
Replaced Elements
Replaced Elements
Replaced Elements
Replaced Elements
Horizontal Formatting
width
width
width
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for absolute positioning
Containing block for fixed positioning
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
Margin Collapsing with Clearance
float
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
clear
clear
float
float
float
float
float
float
float
float
float
float
float
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Floating Elements
Inline Elements
Updating layout on display changes
display/box/float/clear test
border
border
border
border
border-left
border-left
border-left
border-left
border-bottom
border-bottom
border-bottom
border-right
border-right
border-right
border-right
border-top
border-top
border-top
border-style
border-style
border-color
border-color
border-width
border-width
border-width
border-width
border-left-width
border-left-width
border-left-width
border-left-width
border-left-width
border-bottom-width
border-bottom-width
border-bottom-width
border-bottom-width
border-bottom-width
border-right-width
border-right-width
border-right-width
border-right-width
border-right-width
border-top-width
border-top-width
border-top-width
border-top-width
border-top-width
padding
padding
padding
padding
padding-left
padding-left
padding-left
padding-left
padding-left
padding-left
padding-left
padding-left
padding-left
padding-bottom
padding-bottom
padding-bottom
padding-bottom
padding-right
padding-right
padding-right
padding-right
padding-right
padding-right
padding-right
padding-right
padding-right
padding-top
padding-top
padding-top
padding-top
Vertical Formatting
margin
margin
margin
margin
margin
margin-left
margin-left
margin-left
margin-left
margin-left
margin-left
margin-left
margin-left
margin-left
margin-left
margin-left
margin-bottom
margin-bottom
margin-right
margin-right
margin-right
margin-right
margin-right
margin-right
margin-right
margin-right
margin-right
margin-right
margin-top
margin-right
margin-top
Horizontal Formatting
anchor
anchor
important
Basic Containment
Cascading Order
Inheritance
Inheritance
Multiple Pseudo-Elements
first-letter
first-line
Effect of DOM mutations on :hover matching
Effect of DOM mutations on :hover matching
anchor
anchor
anchor
anchor
anchor
anchor
anchor
anchor
Escapes in ID selectors
Pseudo-elements in Selectors
ID selectors starting with number
ID as selector
ID as selector
Class as selector
Contextual selectors
Contextual selectors
Descendant selectors (Contextual selectors)
Newlines in strings
Grouping
RGB color syntax error handling
Color Units
URLs
Percentage Units
Length Units
Length Units
Length Units
malformed declaration: unexpected tokens { }, part 2
malformed declaration: unexpected tokens { }, part 1
malformed declaration missing value, part 2
malformed declaration missing value, part 1
malformed declaration missing ':', value, part 2
malformed declaration missing ':', value, part 1
Forward-Compatible Parsing
Forward-Compatible Parsing
Forward-Compatible Parsing
Forward-Compatible Parsing
Forward-Compatible Parsing
Comments
Comments
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
At-rules
Characters and Case
At-rules
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Characters and Case
Invalid Space-terminated Character Escapes
Space-terminated Unicode Escapes
Incorrect Letter Escape (Class Selector)
Unicode Escapes and Case Insensitivity
Unicode Escapes
Class and Keyword Letter Escapes
Escaped Quote Marks in String
Invalid Punctuation Escapes
Escaped Newline in String
Characters and Case
Characters and Case
Keywords
Keywords
Shorthand Properties (font)
Shorthand Properties (font)
Shorthand Properties (font)
Shorthand Properties (font)
Shorthand Properties (border)
SGML comments
page-break-inside:auto
page-break-before inline elements
page-break-before :auto
page-break-before: always
page-break-after (invalid syntax)
page-break-after (no inherit)
page-break-after (inline elements)
page-break-after: auto
page-break-after: always
Unicode-escaped Braces
Characters and case: Escaping a character inside a keyword
Note: You can stop running tests at any time without causing troubles.
Also, the harness adds automatically in each test case the number of remaining
test cases and a form to submitt results; these additions are not part of the original
test cases, and their influence on the results should be ignored as much as possible.
If you would like to see a particular test case without these additions a link is
provided to open the test case in a separate window. In case of doubt, please hit
the "Cannot Tell" button.
Developed and maintained by:
Dominique Hazael-Massieux
(dom@w3.org ).
David M. Berfanger
(david.berfanger@hp.com ).