- From: Maciej Stachowiak <mjs@apple.com>
- Date: Tue, 25 Aug 2009 22:41:17 -0700
- To: "Roy T. Fielding" <fielding@gbiv.com>
- Cc: Ian Hickson <ian@hixie.ch>, "public-html@w3.org WG" <public-html@w3.org>
On Aug 25, 2009, at 8:11 PM, Roy T. Fielding wrote: > On Aug 25, 2009, at 7:28 PM, Ian Hickson wrote: > >> On Tue, 25 Aug 2009, Roy T. Fielding wrote: >>>> >>>> No, by definition, every HTML5 implementation has, or must act >>>> like it >>>> has, a DOM. The DOM is used in HTML5 as a model used to describe >>>> what >>>> implementations must do even if they don't actually expose the >>>> DOM in >>>> any black-box testable way. >>> >>> Hence my objection to how HTML5 has been defined in terms of DOM >>> operations, which are neither present in nor understood by the vast >>> majority of implementors of HTML. >> >> The overwhelming majority of implementors of HTML are very familiar >> with >> the DOM concept. It's fundamental to CSS, scripting, and many >> aspects of >> HTML itself. It's more or less equivalent to the concept of an >> Infoset, >> which is similarly used as the basis of many XML specifications. > > The DOM state as an infoset, yes. HTML5 is not defined in terms of > the DOM state. It is defined in terms of operations on that state > (i.e., behavior), including attributes of the DOM that are a side- > effect > of processing operations. The difference is quite huge. As far as I know, the only times HTML5 performs an observable side effect on the DOM is when doing fixup for certain unusual syntax error conditions, and when performing operations that are in fact intended to mutate the document. The parse-time fixup - the adoption agency algorithm - is needed to get compatible behavior for some cases of misnested tags, but HTML processors have license to give a fatal error on encountering a syntax error if they do not wish to do the prescribed fixup. The other cases are, I believe, fully intended as part of mutating operations, and shouldn't occur in read-only operations. If you know of any cases where an HTML5 algorithm expressed in terms of the DOM modifies the DOM, and the operation is needed for purely read-only processing, please report it, because I think that would be a serious bug. Regards, Maciej
Received on Wednesday, 26 August 2009 05:42:06 UTC