- 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