CSS2.1 Conformance Test Suite

Chapter 12 - Generated content, automatic numbering, and lists (299 tests)

Test Flags
12 Generated content, automatic numbering, and lists
12.1 The :before and :after pseudo-elements
Pseudo-element ':after' inherits inheritable values
The pseudo-element ':after' generated content inherits any inheritable properties from the element.
Pseudo-element ':after' does not inherit non-inheritable values
Non-inherited properties apply their initial value when applying to ':after'.
After applies after text
After places the generated content after the element content.
Before, after applies to same selector invalid
Multiple pseudo-elements cannot be placed on the same selector.
Before, after is included in formatting changes
Generated content is included in any formatting changes made to an element.
Pseudo-element ':before' inherits inheritable values
The pseudo-element ':before' generated content inherits any inheritable properties from the element.
Pseudo-element ':before' does not inherit non-inheritable values
Non-inherited properties apply the initial value when applying to ':before'.
Before applies before text
Before places generated content before the element content.
12.2 The 'content' property
Content with the value of 'none'
The 'content' property properly handles a value of 'none'.
Content with the value of 'normal'
The 'content' property properly handles a value of 'normal'.
Content with a string as the value
The 'content' property properly handles a string as a value.
Content with a url() to an image as a value G
The 'content' property properly handles the 'url()' function as a value.
Content with a 'counter()' function as a value
The 'content' property properly handles a 'counter()' function as a value.
Content using a 'counter()' function with a list style set to 'disc'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'circle'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'square'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'decimal'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'decimal-leading-zero'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'lower-roman'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'upper-roman'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'lower-greek'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'lower-latin'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'upper-latin'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'armenian'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'georgian'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'lower-alpha'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'upper-alpha'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counter()' function with a list style set to 'none'
The 'content' property properly handles a 'counter()' function with a list-style.
Content using a 'counters()' function with a string value
The 'content' property properly handles a 'counters()' function with a string value.
Content using a 'counters()' function with a string and a list style set to 'disc'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'circle'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'square'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'decimal'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'decimal-leading-zero'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'lower-roman'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'upper-roman'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'lower-greek'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'lower-latin'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'upper-latin'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'armenian'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'georgian'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'lower-alpha'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'upper-alpha'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content using a 'counters()' function with a string and a list style set to 'none'
The 'content' property properly handles a 'counters()' function with a string and a list style.
Content with a 'attr()' function as a value selecting 'abbr'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'abbr'.
Content with a 'attr()' function as a value selecting 'accept-charset'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'accept-charset'.
Content with a 'attr()' function as a value selecting 'accept'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'accept'.
Content with a 'attr()' function as a value selecting 'accesskey'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'accesskey'.
Content with a 'attr()' function as a value selecting 'action'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'action'.
Content with a 'attr()' function as a value selecting 'align'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'align'.
Content with a 'attr()' function as a value selecting 'alink'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'alink'.
Content with a 'attr()' function as a value selecting 'axis'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'axis'.
Content with a 'attr()' function as a value selecting 'background'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'background'.
Content with a 'attr()' function as a value selecting 'bgcolor'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'bgcolor'.
Content with a 'attr()' function as a value selecting 'border'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'border'.
Content with a 'attr()' function as a value selecting 'cellpadding'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'cellpadding'.
Content with a 'attr()' function as a value selecting 'cellspacing'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'cellspacing'.
Content with a 'attr()' function as a value selecting 'char'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'char'.
Content with a 'attr()' function as a value selecting 'charoff'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'charoff'.
Content with a 'attr()' function as a value selecting 'charset'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'charset'.
Content with a 'attr()' function as a value selecting 'cite'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'cite'.
Content with a 'attr()' function as a value selecting 'class'
The 'content' property properly handles the 'attr()' function when calling the attribute 'class'.
Content with a 'attr()' function as a value selecting 'color'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'color'.
Content with a 'attr()' function as a value selecting 'colspan'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'colspan'.
Content with a 'attr()' function as a value selecting 'compact'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'compact'.
Content with a 'attr()' function as a value selecting 'coords'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'coords'.
Content with a 'attr()' function as a value selecting 'datetime'
The 'content' property correctly handles the 'attr()' function when calling the attribute 'datetime'.
Content with a 'attr()' function as a value selecting 'dir'
The 'content' property properly handles the 'attr()' function when calling the attribute 'dir'.
Content with a 'attr()' function as a value selecting 'enctype'
The 'content' property properly handles the 'attr()' function when calling the attribute 'enctype'.
Content with a 'attr()' function as a value selecting 'face'
The 'content' property properly handles the 'attr()' function when calling the attribute 'face'.
Content with a 'attr()' function as a value selecting 'for'
The 'content' property properly handles the 'attr()' function when calling the attribute 'for'.
Content with a 'attr()' function as a value selecting 'frame'
The 'content' property properly handles the 'attr()' function when calling the attribute 'frame'.
Content with a 'attr()' function as a value selecting 'headers'
The 'content' property properly handles the 'attr()' function when calling the attribute 'headers'.
Content with a 'attr()' function as a value selecting 'height'
The 'content' property properly handles the 'attr()' function when calling the attribute 'height'.
Content with a 'attr()' function as a value selecting 'href'
The 'content' property properly handles the 'attr()' function when calling the attribute 'href'.
Content with a 'attr()' function as a value selecting 'hreflang'
The 'content' property properly handles the 'attr()' function when calling the attribute 'hreflang'.
Content with a 'attr()' function as a value selecting 'id'
The 'content' property properly handles the 'attr()' function when calling the attribute 'id'.
Content with a 'attr()' function as a value selecting 'lang'
The 'content' property properly handles the 'attr()' function when calling the attribute 'lang'.
Content with a 'attr()' function as a value selecting 'link'
The 'content' property properly handles the 'attr()' function when calling the attribute 'link'.
Content with a 'attr()' function as a value selecting 'method'
The 'content' property properly handles the 'attr()' function when calling the attribute 'method'.
Content with a 'attr()' function as a value selecting 'name'
The 'content' property properly handles the 'attr()' function when calling the attribute 'name'.
Content with a 'attr()' function as a value selecting 'nowrap'
The 'content' property properly handles the 'attr()' function when calling the attribute 'nowrap'.
Content with a 'attr()' function as a value selecting 'onblur' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onblur'.
Content with a 'attr()' function as a value selecting 'onclick' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onclick'.
Content with a 'attr()' function as a value selecting 'ondblclick' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'ondblclick'.
Content with a 'attr()' function as a value selecting 'onfocus' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onfocus'.
Content with a 'attr()' function as a value selecting 'onkeydown' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onkeydown'.
Content with a 'attr()' function as a value selecting 'onkeypress' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onkeypress'.
Content with a 'attr()' function as a value selecting 'onkeyup' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onkeyup'.
Content with a 'attr()' function as a value selecting 'onload' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onload'.
Content with a 'attr()' function as a value selecting 'onmousedown' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onmousedown'.
Content with a 'attr()' function as a value selecting 'onmousemove' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onmousemove'.
Content with a 'attr()' function as a value selecting 'onmouseout' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onmouseout'.
Content with a 'attr()' function as a value selecting 'onmouseover' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onmouseover'.
Content with a 'attr()' function as a value selecting 'onmouseup' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onmouseup'.
Content with a 'attr()' function as a value selecting 'onreset' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onreset'.
Content with a 'attr()' function as a value selecting 'onsubmit' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onsubmit'.
Content with a 'attr()' function as a value selecting 'onunload' O
The 'content' property properly handles the 'attr()' function when calling the attribute 'onunload'.
Content with a 'attr()' function as a value selecting 'profile'
The 'content' property properly handles the 'attr()' function when calling the attribute 'profile'.
Content with a 'attr()' function as a value selecting 'rel'
The 'content' property properly handles the 'attr()' function when calling the attribute 'rel'.
Content with a 'attr()' function as a value selecting 'rev'
The 'content' property properly handles the 'attr()' function when calling the attribute 'rev'.
Content with a 'attr()' function as a value selecting 'rowspan'
The 'content' property properly handles the 'attr()' function when calling the attribute 'rowspan'.
Content with a 'attr()' function as a value selecting 'rules'
The 'content' property properly handles the 'attr()' function when calling the attribute 'rules'.
Content with a 'attr()' function as a value selecting 'scope'
The 'content' property properly handles the 'attr()' function when calling the attribute 'scope'.
Content with a 'attr()' function as a value selecting 'shape'
The 'content' property properly handles the 'attr()' function when calling the attribute 'shape'.
Content with a 'attr()' function as a value selecting 'size'
The 'content' property properly handles the 'attr()' function when calling the attribute 'size'.
Content with a 'attr()' function as a value selecting 'start'
The 'content' property properly handles the 'attr()' function when calling the attribute 'start'.
Content with a 'attr()' function as a value selecting 'style'
The 'content' property properly handles the 'attr()' function when calling the attribute 'style'.
Content with a 'attr()' function as a value selecting 'summary'
The 'content' property properly handles the 'attr()' function when calling the attribute 'summary'.
Content with a 'attr()' function as a value selecting 'tabindex'
The 'content' property properly handles the 'attr()' function when calling the attribute 'tabindex'.
Content with a 'attr()' function as a value selecting 'target'
The 'content' property properly handles the 'attr()' function when calling the attribute 'target'.
Content with a 'attr()' function as a value selecting 'text'
The 'content' property properly handles the 'attr()' function when calling the attribute 'text'.
Content with a 'attr()' function as a value selecting 'title'
The 'content' property properly handles the 'attr()' function when calling the attribute 'title'.
Content with a 'attr()' function as a value selecting 'type'
The 'content' property properly handles the 'attr()' function when calling the attribute 'type'.
Content with a 'attr()' function as a value selecting 'valign'
The 'content' property properly handles the 'attr()' function when calling the attribute 'valign'.
Content with a 'attr()' function as a value selecting 'value'
The 'content' property properly handles the 'attr()' function when calling the attribute 'value'.
Content with a 'attr()' function as a value selecting 'version'
The 'content' property properly handles the 'attr()' function when calling the attribute 'version'.
Content with a 'attr()' function as a value selecting 'vlink'
The 'content' property properly handles the 'attr()' function when calling the attribute 'vlink'.
Content with a 'attr()' function as a value selecting 'width'
The 'content' property properly handles the 'attr()' function when calling the attribute 'width'.
Content with the value of 'open-quote'
The 'content' property properly handles an 'open-quote' value.
Content with the value of 'close-quote'
The 'content' property properly handles a 'close-quote' value.
Content with the value of 'no-open-quote'
The 'content' property properly handles a 'no-open-quote' value.
Content with the value of 'no-close-quote'
The 'content' property properly handles a 'no-close-quote' value.
Content with the value of 'inherit'
The 'content' property correctly handles an 'inherit' value.
Content property works only with :before and :after
Content property only works in conjunction with the :before and :after pseudo-elements.
Content property missing attr(x)
If attribute (x) does not exist then an empty string is returned for the attr(x) value.
Content property attr(x) case sensitivity
The attr(x) function selects the attribute even when case does not match.
Content property on out of scope counter
If content refers to a counter that is not in scope, it is assumed that a counter-reset has occurred and the counter is reset to zero.
Content property \A creates newline
A '\A' creates a newline for strings in the content property.
Content property with missing image G
When the URI resource cannot be displayed the user agent needs to leave it out or display some indication that the resource cannot be displayed.
Content property and white-space handling
The property 'white-space' applies to generated string content.
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter-increment on out of scope counter
If a counter-increment refers to counter that is not in scope it assumes that a counter-reset has occurred and resets back to zero.
Counter-increment only on 'display: none' element
An element that is set to 'display: none' does not increment or create a counter.
Counter-increment on 'display: none' element
An element that is set to 'display: none' does not increment counters.
Counter-increment on pseudo-element and 'display: none' on element
An element that is set to 'display: none' does not increment counters when increment is on the pseudo-element.
Counter-increment on pseudo-element, 'display: none' on element and parent with counter-reset
An element that is set to 'display: none' does not increment counters when increment is on the pseudo-element.
Multiple counter-increment before counter use
If multiple increments are specified on the same counter then all of them occur in the order specified.
Counter-increment on pseudo-element that is not generated
Pseudo-elements that are not generated do not increment counters.
Counter-increment only on 'visibility: hidden' element
An element that is set to 'visibility: hidden' does increment and can create a counter.
Counter-increment on 'visibility: hidden' element
An element that is set to 'visibility: hidden' does increment counters.
Counter-increment on pseudo-element and 'visibility: hidden' on element
An element that is set to 'visibility: hidden' does increment counters when increment is on the pseudo-element.
Counter-increment on pseudo-element, 'visibility: hidden' on element and parent with counter-reset
An element that is set to 'visibility: hidden' does increment counters when increment is on the pseudo-element.
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter-reset on 'display: none' element
An element that is set to 'display: none' does not reset counters.
Counter-reset before 'counter-increment' before 'counter' use
When both reset and increment are present that the reset occurs first and the increment second.
Multiple 'counter-reset' before 'counter' use
If multiple resets are specified on the same 'counter' then all of them occur in the order specified.
Counter-reset on pseudo-element that is not generated
Pseudo-elements that are not generated do not reset counters.
Counter-reset on visibility: hidden element
Elements that are set to 'visibility: hidden' reset counters.
Counter-increment before 'counter' use
A counter is used after an increment.
Content with multiple content values
When 'content' property values produce no visual effect or are invalid in the current context the other 'content' property values still apply.
Function 'attr()' referencing another elements attribute data
The 'attr()' function can only retrieve data from the same element that is called from.
Quotes with negative depth
When a 'close-quote' makes the depth negative then depth stays at 0. Insertion of a quote does not occur but the remainder of the content string is inserted.
Quotes not affected by page level quotes
The page content quotes do not affect the depth of generated quotes.
Quote depth exceeded
If the depth of the 'quotes' is more than the defined pairs then repeat the last set of pair.
Counter-reset before counter use
Counter is used after a reset.
content: with character forced bidi - rlo
A right-to-left override should be applied when u+202E is inserted through the content property
content: counter(c)
content: counter(c, none)
content: counter(c, disc)
content: counter(c, circle)
content: counter(c, square)
content: counter(c, decimal)
content: counter(c, decimal-leading-zero)
content: counter(c, lower-roman)
content: counter(c, upper-roman)
content: counter(c, georgian)
content: counter(c, armenian)
content: counter(c, lower-latin)
content: counter(c, lower-alpha)
content: counter(c, upper-latin)
content: counter(c, upper-alpha)
content: counter(c, lower-greek)
content: counter() error cases invalid
content: counters(c, ".")
content: counters(c, ".", none)
content: counters(c, ".", disc)
content: counters(c, ".", circle)
content: counters(c, ".", square)
content: counters(c, ".", decimal)
content: counters(c, ".", decimal-leading-zero)
content: counters(c, ".", lower-roman)
content: counters(c, ".", upper-roman)
content: counters(c, ".", georgian)
content: counters(c, ".", armenian)
content: counters(c, ".", lower-latin)
content: counters(c, ".", lower-alpha)
content: counters(c, ".", upper-latin)
content: counters(c, ".", upper-alpha)
content: counters(c, ".", lower-greek)
content: counters() string argument
content: counters() string argument
content: counters() error cases invalid
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
Multiple resets for same counter
Multiple increments and resets
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements
Order of counters in out-of-flow content
counters on the root element
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
Implied counter scopes with no 'counter-increment' or 'counter-reset'
Implied counter scopes by counter use
Implied counter scopes by 'counter-increment'
12.3 Quotation marks
12.3.1 Specifying quotes with the 'quotes' property
12.3.2 Inserting quotes with the 'content' property
12.4 Automatic counters and numbering
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
dynamic changes to 'counter-increment' O
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
Multiple resets for same counter
Multiple increments and resets
Order of 'counter-reset', 'counter-increment', and counter use, including pseudo-elements
Order of counters in out-of-flow content
counters on the root element
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
Implied counter scopes with no 'counter-increment' or 'counter-reset'
Implied counter scopes by counter use
Implied counter scopes by 'counter-increment'
12.4.1 Nested counters and scope
Counter-reset on later siblings
Setting 'counter-reset' on later siblings does not have an effect on previous counters.
Counter scope
Counter scope and nesting on elements
Counter scope and nesting on :before
Counter scope and nesting on :after
Counter scope and nesting
12.4.2 Counter styles
content: counter(c)
content: counter(c, none)
content: counter(c, disc)
content: counter(c, circle)
content: counter(c, square)
content: counter(c, decimal)
content: counter(c, decimal-leading-zero)
content: counter(c, lower-roman)
content: counter(c, upper-roman)
content: counter(c, georgian)
content: counter(c, armenian)
content: counter(c, lower-latin)
content: counter(c, lower-alpha)
content: counter(c, upper-latin)
content: counter(c, upper-alpha)
content: counter(c, lower-greek)
content: counter() error cases invalid
content: counters(c, ".")
content: counters(c, ".", none)
content: counters(c, ".", disc)
content: counters(c, ".", circle)
content: counters(c, ".", square)
content: counters(c, ".", decimal)
content: counters(c, ".", decimal-leading-zero)
content: counters(c, ".", lower-roman)
content: counters(c, ".", upper-roman)
content: counters(c, ".", georgian)
content: counters(c, ".", armenian)
content: counters(c, ".", lower-latin)
content: counters(c, ".", lower-alpha)
content: counters(c, ".", upper-latin)
content: counters(c, ".", upper-alpha)
content: counters(c, ".", lower-greek)
content: counters() string argument
content: counters() string argument
content: counters() error cases invalid
12.4.3 Counters in elements with 'display: none'
Counter properties on 'content: none' pseudo-elements
Counter properties on 'display: none' elements
Counter properties on 'visibility: hidden' elements
12.5 Lists
List with background applied
Background properties only apply to the principal box and not the marker box when the marker is set to outside.
List marker displayed when image missing G
If the 'list-style-image' is not available then the marker needs to be visible.
List-style set to 'none' overrides 'list-style-image' G
The 'list-style-image' property is also set to 'none when 'list-style' is set to 'none'.
List marker in right-to-left layout
When the 'direction' property is set to 'RTL' the markers for list items are placed on the right.
direction:rtl - nested unordered list
direction:rtl should apply to nested unordered lists, putting bullets on the right and offset leftwards
direction:rtl - ordered list
direction:rtl should apply to nested ordered lists, putting bullets on the right and offset leftwards
text-align: justify and direction:rtl - unordered list
text-align: justify should apply to unordered lists in rtl context without affecting their rtlness
text-align: left and direction:rtl - unordered list
text-align:left should be applied to unordered list in rtl context without affecting its rtlness
text-align: right and direction:rtl - unordered list
text-align:right should be applied to unordered list in rtl context without affecting its rtlness
text-align: center and direction:rtl - unordered list
text-align: center should apply to unordered lists in rtl context without affecting their rtlness
display
list-style-type
list-style-type
list-style-image G
list-style-position
The marker box is outside the principal block box.
list-style-position
The marker box is inside the principal block box.
list-style AG
list-style G
12.5.1 Lists: the 'list-style-type', 'list-style-image', 'list-style-position', and 'list-style' properties
List style numbering alignment
That the list numbering is aligned consistently.