- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Mon, 26 Aug 2013 19:48:43 -0700
- To: Cameron McCormack <cam@mcc.id.au>
- Cc: www-style list <www-style@w3.org>
On Mon, Aug 26, 2013 at 7:04 PM, Cameron McCormack <cam@mcc.id.au> wrote:
> The definition of the two argument version of CSS.supports() says:
>
> When the supports() method is invoked with two arguments property and
> value, it must return true if property is a literal match for the
> name of a CSS property that the UA supports, and value would be
> successfully parsed as a supported value for that property. (Literal
> match means that no CSS escape processing is performed, and leading
> and trailing whitespace are not stripped, so any leading whitespace,
> trailing whitespace, or CSS escapes equivalent to the name of a
> property would cause the method to return false.)
>
> What is the set of custom property names that the UA supports? Is it all
> property names that begin with "var-" and are at least 5 characters long?
> And are these Unicode characters, or UTF-16 code units?
>
> I am wondering about:
>
> CSS.supports("var-\ud800", "a")
>
> If we are thinking of property names as being sequences of UTF-16 code
> units, then there is no way of writing that property name, since `var-\d800`
> will be interpreted the same as `var-\fffd`. And if that's the case, should
> "var-\ud800" be considered to be the name of a supported (custom) property?
Given Javascript string escaping rules, the literal string you're
testing for is "var-" followed by u+d800, right?
In that case, yeah, you can't actually write that property name in CSS. But...
> If we are thinking of property names as being sequences of Unicode
> characters, then we need to specify how the first argument string is
> interpreted. If we used
> http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode then that string
> would get converted to the sequence of characters <'v', 'a', 'r', '-',
> U+FFFD>, and then we do have the name of a supported (custom) property.
Yes, I think we should do this.
> A related case is:
>
> CSS.supports("var-\0", "a")
>
> Again, in CSS syntax `var-\0` would be treated the same as `var-\fffd`, but
> if we're doing a literal match of the property name, then there is no way we
> could ever have a custom property named with a NUL in its name.
This successfully returns a U+0000 as the fifth character using
WebIDL's algo, right? In that case, yeah, I guess this shouldn't be a
supported property name.
~TJ
Received on Tuesday, 27 August 2013 02:49:30 UTC