W3C home > Mailing lists > Public > public-webapps@w3.org > July to September 2012

Re: Proposal for "Cascading Attribute Sheets" - like CSS, but for attributes!

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Tue, 21 Aug 2012 16:13:37 -0700
Message-ID: <CAAWBYDAChNQc-4TQ4WWcm+Upy5JhoJBrF4CapFkA5LwwEVE72w@mail.gmail.com>
To: Glenn Maynard <glenn@zewt.org>
Cc: Brian Kardell <bkardell@gmail.com>, public-webapps <public-webapps@w3.org>, Ojan Vafai <ojan@chromium.org>
On Tue, Aug 21, 2012 at 4:07 PM, Glenn Maynard <glenn@zewt.org> wrote:
> FWIW, while I don't find the idea of attaching event listeners this way too
> interesting (maybe I could be convinced, but event capturing is already
> convenient for most of these examples), being able to say "#myform input {
> autocomplete: off; autocorrect: off; autocapitalize: off; }" or "a { rel:
> noreferrer; }" would be great.
>
> Having it not apply changes dynamically seems weird, since it looks and
> feels like CSS.  It'd mean these two things--which look intuitively the
> same, and behave the same with CSS--would be very different when parentNode
> is in the document:
>
> var div = createMyDiv();
> parentNode.appendChild(div); // our attributes are applied
> div.className = "foo"; // and we override them
>
> var div = createMyDiv();
> div.className = "foo"; // we set an attribute
> parentNode.appendChild(div); // and it gets overwritten
>
> Also, the behavior of the latter is different depending on whether
> parentNode is within a document or not, so it's now also dependent on
> whether, for example, "document.documentElement.appendChild(parentNode)"
> happens before or after.

Actually, the two should be identical, because CAS is applied as a
mutation observer, rather than synchronously.  As long as those
statements appear in the same microtask, they'll have the same
behavior regardless of order (CAS will always get to override them).

~TJ
Received on Tuesday, 21 August 2012 23:14:25 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:54 GMT