- From: Kasimier Buchcik <K.Buchcik@4commerce.de>
- Date: Thu, 01 Dec 2005 15:23:45 +0100
- To: Ray Whitmer <ray@personallegal.net>
- Cc: ML-www-dom <www-dom@w3.org>
Hi, On Thu, 2005-12-01 at 06:20 -0700, Ray Whitmer wrote: > On Dec 1, 2005, at 4:16 AM, Kasimier Buchcik wrote: > > > But maybe the damage is really already done, and DOM implementations > > of browsers will differ from other DOM implementations; not exactly > > the intention of a DOM API, is it? > > I don't think there is sufficient wiggle room to explain it as a > binding difference, but I could be wrong. I don't remember well now. The difference I see in the usage of getAttribute() is that it is not defined not to give information whether an attribute node exists or not; it returns "" in both cases. If it would return NULL then it would indicate that the attribute node is not existent. Isn't this a clear API difference? > I know we revisited it any number of times and if we had had early > consensus to change it, we would have. If anyone was arguing against > this empty string return initially, I would be sure that it was the > Java camp (which I was part of in DOM level 1), who now appear to be > the only ones conforming. Yeah, I guess if would be easier for Java to return NULL in such a case rather than the having the overhead of returning an empty string. > I believe that this is what the DOM test suite is for, and that a > test should be submitted, if one does not exist, to identify this > incompatibility of some browsers with the DOM level 1 standard (which > in many cases their representatives clearly drafted and approved). > > Just because there is a compliance test they fail doesn't mean they > have to care, and some obviously will not, but it clearly identifies > the issue of contention and just go back and look at the names of the > participants on the DOM Level 1 standard, level 2, etc. > > Perceived compliance of browsers is a shallow illusion, and the test > suite will never prove compliance. It should be possible in theory It will surely never prove compliance if one doesn't seek to be compliant. I'm a bit scared of such statements being taken as a justification for not trying it. > to at least convince those who drafted it to comply, which would seem > to be its value, and the issue here is such a simple one, they should > fall in to line and tell people to fix their web pages. If not, well > what did we ever need a W3C DOM WG for if the implementers are just > going to fight it out anyway by their dominance. I agree with you. > We could suggest other simple level 1 tests that Java implementations > would generally pass and recent browser implementations would fail > but few web pages use the functionality precisely because major > browsers fail to implement it and the test suite fails to implement > it, so it is not at issue here, i.e.: > > <p id='foo'>Test</p> > <script> > alert(document.getElementById('foo').getAttributeNode('id').firstChild); > </script> > > Try it on Safari, and returns null. > > Try it on Firefox and it actually works (I don't believe it always > did on Mozilla, good work Johnny) and gives you a text node. Of > course, in Firefox, if I change it to: > > <p id='foo'></p> > <script> > alert(document.getElementById('foo')); > </script> > > it produces a null, which seems wrong, too, because I often want > Javascript to change the text of a paragraph that starts empty, not > that I can't put something there to work around the error (Safari > works correctly in this case). Of course, if I change it to... then > Firefox works and Safari does not... Let me know if you want more > examples... No, I'm not interested in more examples of how browsers fail to implement the DOM API. Regards, Kasimier
Received on Thursday, 1 December 2005 14:24:58 UTC