- From: David Flanagan <dflanagan@mozilla.com>
- Date: Tue, 04 Oct 2011 10:29:50 -0700
- To: "www-dom@w3.org" <www-dom@w3.org>
On 10/3/11 5:31 PM, Ian Hickson wrote: > On Mon, 3 Oct 2011, David Flanagan wrote: >> I propose, therefore, that DOM4 add a 4th argument to >> createDocumentType(). >> If true, then the document associated with that document type would >> be in >> quirks mode. > What's the use case? > > "Implementing an HTML parser in JavaScript in a browser" isn't a valid > use > case since browsers already expose HTML parsers, just like they expose > DOMs. If you want to reimplement one of these, you need to reimplement > the > other, because it's all part of implementing a browser. First, I have to retract my specific proposal. Documents can be in quirks mode without having a doctype node, so adding a new argument to createDocumentType() wouldn't be sufficient. There would have to be some sort of attribute or method on the Document itself. Presumably making compatMode read/write is not the right thing to do. Maybe a method that allows the quirks mode to be set once, but never changed? My argument for fixing this is mainly an esthetic one. This is the only place in the HTML parsing algorithm that I am aware of where the parser manipulates the document in some way that cannot be done with the public API. If this is indeed the only such place, then that strikes me as lack of coordination between the HTML and DOM specs, and that some minor tweaks should be made to the two specs so that the parser can be specified purely in terms of the public document API. (Perhaps as I work my way through the algorithm in more detail I'll find a number of other such private document manipulations and that will ruin this argument.) One use case allowing HTML parsers in JS would be creating parser shims for old browsers that do not parse HTML correctly. Or perhaps for writing utilities like http://software.hixie.ch/utilities/js/live-dom-viewer/ that compare a browser's parse tree with the parse tree generated by a compliant parser. David
Received on Tuesday, 4 October 2011 17:30:20 UTC