- From: Martin Honnen <Martin.Honnen@gmx.de>
- Date: Sat, 20 Nov 2004 18:30:57 +0100
- To: w3c-wai-gl@w3.org
I am trying to understand what section 2.2 of http://www.w3.org/TR/2004/WD-WCAG20-SCRIPT-TECHS-20041119/ is about, so far I think there are errors in it which make it difficult to grasp the accessibility issues it wants to raise. I don't understand why the task says "Avoid ... innerHTML()" and the text "... the document.write() and innerHTML() methods " as in my view innerHTML is not a method so those brackets "()" after "innerHTML" have no place there at all. I strongly suggest to remove those brackets after innerHTML and to not call innerHTML a method, it is a property. That section might raise valid issues about accessibility problems with innerHTML but if you use the wrong terminology you are more likely going to confuse the average scripter than convince him. Furthermore, the section shows the following JavaScript code as a deprecated example: function fillContent() { document.write("<h1>Welcome to my site</h1>"); document.write("<p>Lorem ipsum dolor sit amet"); document.menu.innerHTML = "<ul><li><a href="foo.html">foo</a>"; } and says about it: "This deprecated example shows a script that inserts a header, a paragraph (which is unterminated, and thus invalid), and a list (again, invalid) into a given document." Now in my understanding talking about validity of markup or a document only makes sense if you name a particular DTD against which you want to validate. The section doesn't name one so I can only assume that it has a HTML 4.01 DTD in mind when speaking about valididity. The HTML 4.01 specification at http://www.w3.org/TR/html4/struct/text.html#h-9.3.1 clearly marks the end tag of the P element as being optional so I fail to see why the unterminated P in document.write("<p>Lorem ipsum dolor sit amet"); is invalid, whether you write static HTML or document.write dynamic HTML it is parsed by the same rules and therefore I don't think that example line shows anything done with document.write which is invalidating the document. Further on that example, while the line document.menu.innerHTML = "<ul><li><a href="foo.html">foo</a>"; with a closing mandatory </ul> missing might make for an example illustrating invalid markup the line will raise a syntax error before it comes to that, the inner quotes in the JavaScript string need to be escaped so you need to make that line document.menu.innerHTML = "<ul><li><a href=\"foo.html\">foo</a>"; to have a syntactically correct example which then causes semantic issues. -- Martin Honnen
Received on Saturday, 20 November 2004 17:31:42 UTC