[Bug 17514] URI token should be agnostic to escaping the characters 'u', 'r', 'l' (reopening of Issue 23)

https://www.w3.org/Bugs/Public/show_bug.cgi?id=17514

Anton P <antonsforums@yahoo.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|URI token should be         |URI token should be
                   |agnostic to escaping the    |agnostic to escaping the
                   |characters u, r, l          |characters 'u', 'r', 'l'
                   |                            |(reopening of Issue 23)

--- Comment #1 from Anton P <antonsforums@yahoo.co.uk> 2012-06-16 15:15:32 UTC ---
This issue has an interesting history.


It began life as Issue 23 [http://wiki.csswg.org/spec/css2.1#issue-23]:

URL
    http://lists.w3.org/Archives/Public/www-style/2007Dec/0215.html
Summary
    “url(” needs to be {u}{r}{l}”(” in grammar
Resolution
    Assumed editorial.
Status
    Closed.
Testcases
    uri-015


It was implemented in the 2009-04-23 CR as Change 5.89
[http://www.w3.org/TR/CSS21/changes.html#q376]:

C.5.89 Section G.2 Lexical scanner

[2008-03-05] Change the tokenizer rules

from

"url("{w}{string}{w}")" {return URI;}
"url("{w}{url}{w}")"    {return URI;}

to

{U}{R}{L}"("{w}{string}{w}")"    {return URI;}
{U}{R}{L}"("{w}{url}{w}")"    {return URI;}


Unfortunately, this change only happened in G.2, rather than uniformly across
both G.2 and 4.1.1, as observed by Bjoern Hoehrman in
http://lists.w3.org/Archives/Public/www-style/2010Jul/0499 .  This led to the
change being reversed in the 2011-04-12 PR as Change 8.52
[http://www.w3.org/TR/CSS21/changes.html#q546]:

C.8.52 G.2 Lexical scanner

The tokenizer in the appendix allowed backslashes in the URI token, in
contradiction with the same token in the core grammar and the error recovery
token {baduri}:

Change from

    {U}{R}{L}"("{w}{string}{w}")"      {return URI;}
    {U}{R}{L}"("{w}{url}{w}")"         {return URI;}

to

    "url("{w}{string}{w}")"            {return URI;}
    "url("{w}{url}{w}")"               {return URI;}

(Note that the Change description mentions an incompatiblity with the BAD_URI
token, which is rather disingenuous given that this token was first introduced
at the same time as the Change.)


This led to a discussion (starting at
http://lists.w3.org/Archives/Public/www-style/2011Apr/0680.html ) concerning
the validity of a particular test case in the test suite.


The issue was noted in
http://lists.w3.org/Archives/Public/www-style/2012Apr/0152 to have an impact on
the attr() function from css3-values.

-- 
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Saturday, 16 June 2012 15:15:35 UTC