- From: Jonas Sicking <jonas@sicking.cc>
- Date: Fri, 10 Sep 2010 09:28:14 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Anne van Kesteren <annevk@opera.com>, Ojan Vafai <ojan@chromium.org>, Maciej Stachowiak <mjs@apple.com>, Boris Zbarsky <bzbarsky@mit.edu>, "Olli@pettay.fi" <Olli@pettay.fi>, Adrian Bateman <adrianba@microsoft.com>, WebApps WG <public-webapps@w3.org>
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