Re: [css-counter-styles] case sensitivity of counter-style-name

On Wed, Mar 26, 2014 at 3:52 PM, Xidorn Quan <quanxunzhen@gmail.com> wrote:
> http://dev.w3.org/csswg/css-counter-styles/#the-counter-style-rule says:
> Counter style names are case-sensitive. However, the names defined in this
> specification are ASCII lower-cased on parse wherever they are used as
> counter styles, e.g. in the list-style set of properties, in the
> @counter-style rule, and in the counter() functions.
>
> Does it mean, counter style names should normally be case-sensitive except
> the names defined in this spec? I think this rule is puzzling.

Counter style names have migrated from being CSS-defined to being
author-defined, which means we have to move from being
case-insensitive to case-sensitive.

CSS defines a few of them, though, and so to handle the fact that they
were historically allowed to be case-insensitive, the spec forces a
lowercase of those names.

> http://www.w3.org/TR/2011/REC-CSS2-20110607/syndata.html#characters says:
> All CSS syntax is case-insensitive within the ASCII range (i.e., [a-z] and
> [A-Z] are equivalent), except for parts that are not under the control of
> CSS.
>
> According to this rule in CSS2.1, I believe all counter style names, instead
> of only the predefineds, should be case-insensitive and ASCII lower-cased on
> parse.

No, all other names are author-defined, and thus case-sensitive.

> Maybe there is no need to lower-case them. Just making all names
> case-insensitive is sufficient.

No, we *never* make author-defined names case-insensitive, because
"case-insensitive" gets complicated once Unicode comes into play (and
drags along "normalized" and other notions of equivalency).  To avoid
all of that, we just mandate case-sensitivity, which means literal
codepoint comparisons.

~TJ

Received on Thursday, 27 March 2014 18:19:34 UTC