Re: pseudo-attributes

On Wed, Oct 29, 2008 at 11:57 AM, Boris Zbarsky <bzbarsky@mit.edu> wrote:

> Tab Atkins Jr. wrote:
>
>> Really?  At least in terms of scripting, value *does* update
>> interactively.  I can ask for the value of an input initially and after
>> typing things in, and they're different.
>>
>
> The DOM value property updates.  The value attribute does not.  Except in
> IE, they're not the same thing.


Ah, indeed.  I see that now.  I usually use jQuery, which reported the value
property, and when I dropped into vanilla js to see exactly how it worked, I
was just using elem.value rather than elem.getAttribute("value").

As for breaking sites, do you mean that sites are currently relying on the
> [value] selector only keying off of the written @value attribute in the
> code?
>
> No, there are sites relying on the value attribute not changing when the
> user types.


That's what I suspected you meant, but I wanted to make sure.

Consider my earlier words as imprecise, then.  I am proposing that attribute
selectors use the DOM property values, rather than the written attribute
values, at least in html.  We already have :checked relying on a DOM value
rather than an attribute value, and presumably :valid and :invalid will do
the same.  Making it a general rule would solve the OP's case, and possibly
others.  Frex, you could change styles on a sibling based on a <select>'s
selectedIndex.

Would this be unacceptable?  If so, what about an explicit property-value
syntax for a selector?  David's syntax in the OP could even be used, where
an attribute name starting with a : instead refers to the DOM property of
that name.

~TJ

Received on Wednesday, 29 October 2008 17:18:15 UTC