Idenitfier equivalence in CSS

When are CSS identifiers equivalent?

I would identify two types of variation in identifiers: case and escaping.

I would identify fourteen roles that identifiers fulfill:
 namespace prefixes,
 type selectors,
 class selectors,
 ID selectors,
 attribute names,
 attribute values,
 pseudo-class names,
 pseudo-element names,
 property/descriptor names,
 dimension units,
 keyword values,
 hash color values,
 system component values (as font names),
 author-constructed component values (as counters, pages),
 function-notation names (as in URI, colors, and so on).

Have I missed any roles or types of variation?

If all the roles and types of variation are listed, we have a fourteen-by-two matrix 
whose positions each need an answer to the question, "Is an identifier in this role 
equivalent to an identifier with only this type of variation and also in this role?"

Identifiers varying by case are by definition equivalent in the roles of
 pseudo-class names,
 pseudo-element names,
 property/descriptor names,
 dimension units,
 keyword values,
 hash color values,
 and function-notation names.

Identifiers varying by case may be equivalent according to document type 
semantics or systemic pratice in the roles of
 type selectors,
 class selectors,
 ID selectors,
 attribute names,
 attribute values,
 and system component values.

Are namespace prefixes in CSS equivalent if they vary only by case?

Are counter or page names equivalent if they vary only by case?

Identifiers varying by the use of escape sequences are equivalent in the roles of
 namespace prefixes (I would assume),
 type selectors,
 class selectors,
 ID selectors,
 attribute names,
 attribute values,
 system component values,
 and author-constructed component values (I would assume).
In other words, escape sequences are irrelevant to identifier equivalence for 
syntactic parts whose allowed content is not enumerated by CSS.

Identifiers varying by the use of escape sequences might be equivalent in the roles 
of
 pseudo-class names,
 pseudo-element names,
 property/descriptor names,
 dimension units,
 keyword values,
 hash color values,
 and function-notation names.
We need to form a consensus on these roles; the consensus should apply to all 
future levels of CSS and, through corrigenda, to CSS2 and to CSS1.

Comments are most welcome.

-- 
Etan Wexler <mailto:ewexler@stickdog.com>

Received on Saturday, 18 May 2002 09:17:45 UTC