- From: Ian Hickson <ian@hixie.ch>
- Date: Tue, 17 Feb 2009 03:35:12 +0000 (UTC)
- To: Larry Masinter <masinter@adobe.com>
- Cc: HTML WG <public-html@w3.org>
Given the following function in a script: function test(imp) { // imp is a DOMImplementation object var doc = imp.createDocument(null, null, null); var e = doc.createElementNS('http://www.w3.org/1999/xhtml', 'img'); return e; } ...browsers are required, for compatibility with legacy content, XHTML1, DOM2 HTML, and DOM2 Core, to return an element that, when inserted into a document, displays either an image as indicated by its "src" attribute, or text as indicated by its "alt" attribute. This is the case regardless of HTML5 or XHTML5 -- this has absolutely nothing to do with this working group, it is based purely on specs that were created in the late 90s, around a decade ago, years before HTML5 started. This is the world in which we find ourselves, writing HTML5. A spec that changes the requirements around this script in a way that is incompatible with existing browsers, content, and specs is going to have a great deal of trouble getting implemented by Web browsers. Thus, we really have very little room to manoeuver here -- HTML5 is constrained here, like in so many other places. Assuming that XHTML2 uses the same namespace as XHTML1, as has been suggested though not specified, XHTML2 requires behaviour of the <img> element created by the script above that is not compatible with existing browsers, content, and specs (sections 18.1 and 20.1). XHTML claims (section 1.1.2) that "strict element-wise backwards compatibility is no longer necessary", and thus it exempts itself from the aforementioned constraints. That isn't a problem, except insofar as it means that no user agent can implement both XHTML2 and XHTML1 at the same time. In conclusion: XHTML5 does not have a new conflict with XHTML2 even if both use the same namespace. The conflict, insofar as there is one that matters, already exists between XHTML1 and XHTML2, and exists irrespective of XHTML5. I believe this issue to therefore be out of scope for the HTML5 specification, and do not propose to do anything about it (except for changing the "relationship to XHTML2" section if they do indeed publish a version of XHTML2 that reuses the same namespace). I would like to recommend that future discussion on the subject of versioning focus on versioning in the face of DOM Core implementations and the script given above, as that will help prevent discussion that could not solve the problem (e.g. anything to do with DOCTYPEs, version="" attributes, or MIME types, none of which are present in the above snippet, despite that snippet creating an XHTML1/5 element). I would also like to recommend that any discussion for new features continue to consider the need for graceful degradation, which requires us to continue to use the same namespaces and tag names as is supported by legacy browsers, at the very least for existing features, and ideally wherever possible. HTH, -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Tuesday, 17 February 2009 03:35:51 UTC