W3C home > Mailing lists > Public > www-style@w3.org > February 2014

Re: [selectors-nonelement] ::attr(*|localname), ::attr(ns|*), and ::attr(*)

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Thu, 27 Feb 2014 09:26:23 -0800
Message-ID: <CAAWBYDCQ_iH308nCk_4zxYW1U6PNoUd3ofe5x9LLP2Ca1LgmXA@mail.gmail.com>
To: Jirka Kosek <jirka@kosek.cz>
Cc: Simon Pieters <simonp@opera.com>, Simon Sapin <simon.sapin@exyr.org>, www-style <www-style@w3.org>
On Thu, Feb 27, 2014 at 9:08 AM, Jirka Kosek <jirka@kosek.cz> wrote:
> On 27.2.2014 17:53, Tab Atkins Jr. wrote:
>> Again, the inconsistency is internal.  "*", when used in type
>> selectors, is just a wildcard tagname.  It acts identically wrt
>> namespaces as a real tagname does.  "*", when used in ::attr(), should
>> work the same, and be identical to a real attribute name wrt
>> namespaces.
>>
>> Your suggestion is that "*" act *differently* than a normal attribute
>> name, so that it assumes "all namespaces" while a normal attribute
>> names assumes "the null namespace".
>
> But as there is already inconsistency between type selectors ("E"
> selects E elements in any namespace) and attribute selectors ("[A]"
> matches elements that have A attribute in no namespace)

That's due to default namespaces, not anything fundamental.  It's also
not an *internal* inconcistency - "E" and "*" both select using the
default namespace in type selectors, while attribute selectors don't
have a "*" at all, and so can't be inconsistent internally.

> I don't think
> that special treatment of "*" as wildcard in ::attr(*) will do any harm.
> After all this behaviour can be brought back to attribute selectors --
> "[*]" will match element that has at least one attribute.

If attribute selectors allowed "[*]", it would match an element with
at least one attribute *in the null namespace* (to be consistent with
the behavior of plain attribute names).  You'd have to write [*|*] to
select an element with any attribute whatsoever.

~TJ
Received on Thursday, 27 February 2014 17:27:10 UTC

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:39:19 UTC