Re: [DOMCore] Attr

On Fri, Sep 10, 2010 at 7:48 AM, Tab Atkins Jr. <jackalmage@gmail.com> wrote:
> On Fri, Sep 10, 2010 at 5:35 AM, Anne van Kesteren <annevk@opera.com> wrote:
>> 3) We can drop the concept of Attr being an object altogether. I do not
>> think this is doable compatibility-wise, but not having Node.attributes,
>> Attr, and just using getAttribute/getAttributeNS/setAttribute/setAttributeNS
>> would be very nice complexity-wise.
>
> I know that I've written code that depends on Node.attributes, when I
> was just looping through all of the attributes for some reason
> (usually because I was transforming the element into something else,
> and just wanted to transfer all the irrelevant attributes over).
>
> This code would happen to break with approach #2 as well, but the
> relevant code I've written was minor and shouldn't be used by anyone
> else, I think.

Indeed, Node.attributes is currently the only way to enumerate all the
attributes of an Element. This makes me think there are probably
people out there doing this, and so I suspect Node.attributes is
needed for web compat. Additionally, it seems bad to remove the
ability to enumerate attributes completely. Lastly, keeping Attrs as a
type of object gives us something to return from DOM-XPath.

What I suggest is #2 in Anne's list. Make Attrs into objects with the
following properties:

* name
* value
* namespaceURI
* localName

'name' would be my guess for most commonly used when iterating all the
atttributes. The others are the minimum set of attributes needed for
proper enumeration

We might also consider these attributes, though if they're not needed
for web compat, then it would be nice to not add them IMHO.

* ownerElement
* prefix
* nodeName
* nodeValue

Also, I wouldn't mind making value/nodeValue readonly, but I don't
feel strongly about that.

/ Jonas

Received on Friday, 10 September 2010 16:29:02 UTC