Summarized test results:
Selectors 3, selector normalization

Intended audience: users, XHTML/HTML coders (using editors or scripting), script developers (PHP, JSP, etc.), CSS coders, Web project managers, and anyone who wants to know how selectors work with regards to Unicode normalization.

Updated

These tests user agents normalize away the differences between selector names and class names, and multiple selector names in the same CSS file when there are differences in Unicode normalization.

Note that although normalization makes sense, current CSS specifications do NOT require selectors and class names to be normalized prior to matching.

Normalization is important for many languages, where users using different tools can produce the same text but with different mixtures of precomposed, decomposed and partially composed characters. It is particularly an issue if different people author the CSS and the document content. For example, some Vietnamese input methods produce NFC output, but Microsoft keyboards under XP produce unnormalized output where tone marks are separate combining characters but diacritics that differentiate letters are composed with their base character.

To see the test, click on the link in the left-most column. To see detailed results for a single test, click on the link in the Details column and look just above the table. The detailed results show the date(s) the test result was recorded, and the version of the browser tested.

Any dependencies are shown in notes above the table, and notes below the table will usually provide any additional useful information, including an explanation of why a result was marked as 'partially successful'.

Results

Note that these test results are for released versions of the browsers tested. Versions that are still in development may provide better support for these features. The tests do not use any vendor prefixes. Tests that do show support for vendor prefixes are listed in the next section.

Control tests


Test link Assertion Detail
markup precomposed, CSS precomposed
selectors-normalization-001.html
[Exploratory test] A fully precomposed class name will match a fully precomposed CSS selector name.
markup decomposed, CSS decomposed
selectors-normalization-002.html
[Exploratory test] A fully decomposed class name will match a fully decomposed CSS selector name.

Notes

  1. These tests are just control tests. They are expected to always match, because the bytes sequences are identical in selector and class names. The real tests begin with test 3.

Matching selector to class name


Test link Assertion Detail
markup decomposed, CSS precomposed
selectors-normalization-003.html
[Exploratory test] A fully decomposed class name will NOT match a fully precomposed CSS selector name.
markup precomposed, CSS decomposed
selectors-normalization-004.html
[Exploratory test] A fully precomposed class name will NOT match a fully decomposed CSS selector name.
markup partially decomposed, CSS precomposed
selectors-normalization-005.html
[Exploratory test] A partially decomposed class name will NOT match a fully precomposed CSS selector name.
markup partially decomposed, CSS decomposed
selectors-normalization-006.html
[Exploratory test] A partially decomposed class name will NOT match a fully decomposed CSS selector name.
markup precomposed, CSS partially decomposed
selectors-normalization-007.html
[Exploratory test] A partially decomposed CSS selector name will NOT match a fully precomposed class name.
markup decomposed, CSS partially decomposed
selectors-normalization-008.html
[Exploratory test] A partially decomposed CSS selector name will NOT match a fully decomposed class name.