W3C home > Mailing lists > Public > public-css-bugzilla@w3.org > November 2012

[Bug 19882] New: @charset rule logic is not case insensitive & should state ASCII interpretation for clarity

From: <bugzilla@jessica.w3.org>
Date: Tue, 06 Nov 2012 16:01:28 +0000
To: public-css-bugzilla@w3.org
Message-ID: <bug-19882-5148@http.www.w3.org/Bugs/Public/>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882

          Priority: P2
            Bug ID: 19882
          Assignee: jackalmage@gmail.com
           Summary: @charset rule logic is not case insensitive & should
                    state ASCII interpretation for clarity
        QA Contact: public-css-bugzilla@w3.org
          Severity: normal
    Classification: Unclassified
                OS: All
          Reporter: zackw@panix.com
          Hardware: All
            Status: NEW
           Version: unspecified
         Component: Syntax
           Product: CSS

http://dev.w3.org/csswg/css3-syntax/#the-input-byte-stream step 3 currently
reads

> Check the byte stream. If the first several bytes match the hex sequence
>
>     40 63 68 61 72 73 65 74 20 22 (XX)* 22 3B
>
> then ...

This has two problems, one semantic and one cosmetic.

1) It does not allow for ASCII case insensitivity and is therefore inconsistent
with the rest of CSS.  It also doesn't allow use of a single-quoted string
(this latter omission is actually _more_ likely to cause problems IMO).

2) For clarity, the interpretation of this hex sequence as ASCII characters
should be shown.

Suggested edit: replace the quote above with 

> Check the byte stream. If the first several bytes match the hex sequence
>
>   40 (43|63) (48|68) (41|61) (52|72) (53|73) (55|65) (54|74) 20 (22|27) (XX)* QQ 3B
>
> where QQ must be the same as the earlier 22 or 27 byte, (these bytes encode
> the text '@charset "...";', matched _ASCII case-insensitively_ and
> allowing both single and double-quoted string literals) then ...

For even greater consistency with normal CSS parsing, it might also be nice to
allow arbitrary whitespace before and after the string (not just a single space
before and none after), and leading whitespace before the initial @-sign.  To
do that, change the 20 to WW*, add another WW* at the beginning and a third
before the final 3B, and refer to the encoding standard for the definition of
ASCII whitespace.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Tuesday, 6 November 2012 16:01:30 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 6 November 2012 16:01:30 GMT