Summarized test results:
Selectors, 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.

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 a row 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'.


pass fail partially successful

Control tests


  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