- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 11 Apr 2012 12:42:11 -0700
- To: "Kang-Hao (Kenny) Lu" <kennyluck@csail.mit.edu>
- Cc: WWW Style <www-style@w3.org>
On Wed, Apr 11, 2012 at 11:23 AM, Kang-Hao (Kenny) Lu
<kennyluck@csail.mit.edu> wrote:
> (12/04/12 1:36), Tab Atkins Jr. wrote:
>> On Wed, Apr 11, 2012 at 5:36 AM, Kang-Hao (Kenny) Lu
>> <kennyluck@csail.mit.edu> wrote:
>>> The attr() section says
>>>
>>> # If the type is not valid for where the ‘attr()’ expression is
>>> # placed, the whole ‘attr()’ expression is invalid.
>>>
>>> , and my interpretation of this sentence is that 'attr(<wqname>
>>> integer)' cannot be used where <number> is expected. (This
>>> interpretation might not match the intention of the person who wrote
>>> this prose, but if that's the case I request this vagueness be
>>> clarified. )
>>
>> This is already handled - the definition of the <number> type says
>> "either an integer, or ...". So an <integer> is a <number>.
>
> Then, as I said, I would like to request this be clarified. I swear I
> didn't intend to come up with an interpretation that's just wrong (or
> why did I write this long?). This is how I interpret the above sentence,
> and of course, I did read the "either an integer, or ..." part.
I can try to put a note somewhere or something, but I'm not sure how
much clearer I can make it than "a number is an integer or this other
thing".
>>> The section of 'calc()' says
>>>
>>> # It can be used wherever <length>, <frequency>, <angle>, <time>, or
>>> # <number> values are allowed.
>>>
>>> It seems that <integer> is intentionally left out. Why? If the reason is
>>> "lack of use cases" then that applies to <number> too, I think.
>>
>> Same as above - integer is defined as a subtype of number.
>
> No, this is different. If 'calc()' can used at where <integer> is
> expected, does
>
> # The value resulting from an expression must be clamped to the range
> # allowed in the target context.
>
> mean the value is truncated? Specifically, what is the result of
>
> data:text/html,<style>:root::before { counter-reset: x calc(0.5);
> content: counter(x);}</style> (unprefixed)
>
> ? I should note that both Firefox14a and IE9 drop these at the moment.
Oh! I understand now. Yes, this is a problem. Hm. Logged.
(Luckily, the calculation necessary to tell if a calc() returns an
integer is basically the same as determining if a divide-by-0 happens,
or what the resolved type is.)
>> attr() can't be used in url() - "url(attr(foo))" parses as
>> "baduri1:url(attr LEFT-PAREN IDENT RIGHT-PAREN RIGH-PAREN". We can't
>> ever use *anything* in url() because of the parsing rules. url() is
>> *fucked up*.
>
> This is relavant to [1] so I'll prefer we follow up there.
>
> [1] http://lists.w3.org/Archives/Public/www-style/2012Apr/0152
Ah, indeed. Of course, saying "you can only use attr() in url() if
you escape at least one of the letter in 'url'" is pretty confusing.
^_^
Let's follow up in that other thread.
~TJ
Received on Wednesday, 11 April 2012 19:43:04 UTC