- From: Sam Ruby <rubys@intertwingly.net>
- Date: Fri, 17 Jul 2009 15:13:44 -0400
- To: Henri Sivonen <hsivonen@iki.fi>
- CC: Shane McCarron <shane@aptest.com>, public-rdf-in-xhtml-tf@w3.org
Henri Sivonen wrote: > On Jul 17, 2009, at 17:13, Shane McCarron wrote: > >> Henri Sivonen wrote: >>> What you say is true for all practical purposes when talking about >>> "the DOM" in browsers. It's not necessarily true in practice and per >>> spec for all kinds of things called "the DOM". >> Okay. How about per the HTML5 spec? If it is not, then we would like >> it to be. To whom do we send that comment? > > Per spec, what Sam said holds when the section > http://www.whatwg.org/specs/web-apps/current-work/#coercing-an-html-dom-into-an-infoset is > not invoked. When that section is invoked, then what Sam said doesn't > always hold. You may safely assume that browsers won't invoke the > section but other classes of products may. > > You can send comments to public-html-comments or to public-html if you > are a participant in the HTML WG or to the WHATWG list if you are > subscribed to that list or you can file a bug in the W3C Bugzilla. > > I don't expect > http://www.whatwg.org/specs/web-apps/current-work/#coercing-an-html-dom-into-an-infoset to > change substantially, because the rules recounted there are necessary > when you have an XML API that throws on certain things and you can't > change the API. (For example, if people want to use the JDK DOM, the JDK > DOM is what it is.) I have tried the following with Firefox, Opera, IE, Safari, and Chrome. Given that each show the attribute, that is the one thing I don't expect to change. As to the spec, perhaps you are right and it may permit others to not interoperate with browsers and still claim to be conformant. <html> <head> <title>test colon in attributes name</title> </head> <body> <ul id='list'></ul> <script> var list = document.getElementById('list'); list.setAttribute('xmlns:dc', 'http://dublincore.org/documents/dcmi-namespace/'); var attrs = list.attributes; var length = attrs.length; for (var i=0; i<length; i++) { var value = attrs[i].nodeValue; if (!value) continue; value = value.replace(/&/, '&').replace(/</, '<'). replace(/>/, '>').replace(/"/, '"'); var li = document.createElement('li'); var text = document.createTextNode(attrs[i].nodeName+'="'+value + '"'); li.appendChild(text); list.appendChild(li); } </script> </body> </html> - Sam Ruby
Received on Friday, 17 July 2009 19:14:24 UTC