- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Wed, 29 Oct 2008 12:17:33 -0500
- To: "Boris Zbarsky" <bzbarsky@mit.edu>
- Cc: www-style@w3.org
- Message-ID: <dd0fbad0810291017v5ad2e407p57ac383f5a7610b@mail.gmail.com>
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