- From: Thomas Fétiveau <tfetiveau@tokom.fr>
- Date: Fri, 10 May 2013 07:10:38 +0200
- To: whatwg@lists.whatwg.org
Hi, There is something unclear to me in the current HTML spec: - The "initial" insertion mode of the tree construction stage specifies to add a doctype to the associated document when a doctype token shows up: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#the-initial-insertion-mode - However the document object has already been built at this stage and is an HTML document, thus created by DOMImplementation.createHTMLDocument(). But the specification of this methods says : > The |createHTMLDocument(title)| method must run these steps: > > 1. > > Let doc be a new document > <http://dom.spec.whatwg.org/#concept-document> that is an HTML > document <http://dom.spec.whatwg.org/#html-document>. > > 2. > > Set doc's content type > <http://dom.spec.whatwg.org/#concept-document-content-type> to > "|text/html|". > > 3. > > Create a doctype <http://dom.spec.whatwg.org/#concept-doctype>, > with "|html|" as its name > <http://dom.spec.whatwg.org/#concept-doctype-name> and with its > node document <http://dom.spec.whatwg.org/#concept-node-document> > set to doc. Append > <http://dom.spec.whatwg.org/#concept-node-append> the newly > created node to doc. > > 4. > > Create an |html| element in the HTML namespace > <http://dom.spec.whatwg.org/#html-namespace>, and append > <http://dom.spec.whatwg.org/#concept-node-append> it to doc. > > 5. > > Create a |head| element in the HTML namespace > <http://dom.spec.whatwg.org/#html-namespace>, and append > <http://dom.spec.whatwg.org/#concept-node-append> it to the |html| > element created in the previous step. > > 6. > > If the title argument is not omitted: > > 1. > > Create a |title| element in the HTML namespace > <http://dom.spec.whatwg.org/#html-namespace>, and append > <http://dom.spec.whatwg.org/#concept-node-append> it to the > |head| element created in the previous step. > > 2. > > Create a |Text <http://dom.spec.whatwg.org/#text>| node > <http://dom.spec.whatwg.org/#concept-node>, set its data > <http://dom.spec.whatwg.org/#concept-cd-data> to title (which > could be the empty string), and append > <http://dom.spec.whatwg.org/#concept-node-append> it to the > |title| element created in the previous step. > > 7. > > Create a |body| element in the HTML namespace > <http://dom.spec.whatwg.org/#html-namespace>, and append > <http://dom.spec.whatwg.org/#concept-node-append> it to the |html| > element created in the earlier step. > > 8. > > doc's origin > <http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#origin> > is an alias > <http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#concept-origin-alias> > to the origin > <http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#origin> > of the context object > <http://dom.spec.whatwg.org/#context-object>'s associated document > <http://dom.spec.whatwg.org/#concept-document>, and doc's > effective script origin > <http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#effective-script-origin> > is an alias > <http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#concept-origin-alias> > to the effective script origin > <http://www.whatwg.org/specs/web-apps/current-work/multipage/origin-0.html#effective-script-origin> > of the context object > <http://dom.spec.whatwg.org/#context-object>'s associated document > <http://dom.spec.whatwg.org/#concept-document>. [HTML] > <http://dom.spec.whatwg.org/#refsHTML> > > 9. > > Return doc. > There is a problem here IMO because if we've already created our HTML document object before the initial stage of the tree contruction stage, it means it already has a doctype, a HTMLHtmlElement, a HTMLHeadElement, ... How should we manage that in the "initial", "before html", "after HTML", ... insertion modes when are asked to append/associate doctypes, html element, head element (...) to our assiocated document object which already has all that ? My point is : Shouldn't the DOMImplementation.createHTMLDocument() just create a Document object with content type set to "text/html" and nothing else ? Thanks and regards, -- Thomas Fétiveau +33 (0) 623 110 922 www.tokom.fr
Received on Friday, 10 May 2013 05:10:43 UTC