- From: Maciej Stachowiak <mjs@apple.com>
- Date: Tue, 21 Aug 2007 14:12:17 -0700
- To: Simon Pieters <simonp@opera.com>
- Cc: public-html <public-html@w3.org>
On Aug 21, 2007, at 3:27 AM, Simon Pieters wrote: > > (This is part of my detailed review of the Document Object Model > section.) > > The spec says about Documents: > > All Document objects (in user agents implementing this > specification) > must also implement the HTMLDocument interface, available using > binding-specific methods. (This is the case whether or not the > document > in question is an HTML document or indeed whether it contains any > HTML > elements at all.) Document objects must also implement the > document-level interface of any other namespaces found in the > document > that the UA supports. For example, if an HTML implementation also > supports SVG, then the Document object must implement HTMLDocument > and > SVGDocument. > > We're not happy with implementing the HTMLDocument interface on all > Document objects. It will affect all other types of documents and > the naming of their members in the future, and any additions to > HTMLDocument in the future becomes risky because it might break non- > HTML documents. [...] > However, if we don't implement all supported interfaces on all > Documents, the question instead becomes when do you implement a > specific interface? Firefox decides on the MIME type, Opera decides > on the root element's namespace, however I haven't yet checked how > this works when e.g. replacing the root element or when creating new > documents with DOM methods. This would need to be defined. For an XHTML+SVG compound document by inclusion, you really want both the SVGDocument and HTMLDocument interfaces to be available, regardless of the MIME type or root element namespace. Otherwise you can't reuse scripts between an XHTML document that embeds SVG and an SVG document that embeds HTML. Even more significantly, some HTMLDocument/SVGDocument interfaces include important APIs that do things which can't be achieved any other way. For instance, under your proposal document.execCommand and document.selection would be unavailable when SVG is the root, making it impossible to do HTML editing in XHTML embedded in SVG. How would your proposal address this? It also seems to me that the conflicts are few at present, and could be avoided in the relevant working groups in the future, in a way that is lower cost than pushing everything into Document. I do agree that adding some interfaces to Element could be helpful, but having GUI- oriented operations like focus() and click() may be seen as inappropriate in DOM Core. Regards, Maciej
Received on Tuesday, 21 August 2007 21:12:29 UTC