- From: Philip Taylor <pjt47@cam.ac.uk>
- Date: Mon, 19 Oct 2009 14:28:27 +0100
- To: Shelley Powers <shelley.just@gmail.com>
- CC: Adrian Bateman <adrianba@microsoft.com>, Tony Ross <tross@microsoft.com>, "public-html@w3.org" <public-html@w3.org>
Shelley Powers wrote:
> On Mon, Oct 19, 2009 at 7:18 AM, Anne van Kesteren <annevk@opera.com> wrote:
>> Designing for the unknown future sounds like a waste of time and effort to
>> me. I forward compatibility is important, but adding a ton of complexity for
>> a need that may emerge in the future seems unsound.
>>
>
> I read Tony's proposal. I didn't see a ton of complexity, especially
> considering that namespaces are already supported in the XHTML
> serialization of HTML5.
A lot of hidden complexity is in the parser processing rules, which
Microsoft's high-level proposal doesn't go into.
For example, the spec would need to define the conformance requirements
and expected namespaceURI/localName values in the following examples:
<html xmlns:foo="test"> <foo:bar>
<html xmlns:foo> <foo:bar>
<html xmlns:0="test"> <0:foo>
<html xmlns:="test"> <:foo>
<html xmlns:foo="test"> <div xmlns:foo=""> <foo:bar>
<html> <script>document.documentElement.setAttribute('xmlns:foo',
'test')</script> <foo:bar>
<html>
<script>document.documentElement.setAttributeNS('http://www.w3.org/2000/xmlns/',
'foo', 'test')</script> <foo:bar>
<html> <foo:bar> <html xmlns:foo="test"> <foo:bar>
<html xmlns:foo="http://www.w3.org/2000/xmlns/" foo:bar="test">
<bar:baz>
<html xmlns:foo="test1"> <table xmlns:foo="test2"> <foo:bar>
<html xmlns:xml="test"> <xml:foo>
<html xmlns:xmlns="test"> <xmlns:foo>
<html xmlns:xml="http://www.w3.org/XML/1998/namespace"> <xml:foo>
<html xmlns:xmlns="http://www.w3.org/2000/xmlns/"> <xmlns:foo>
<html> <xml:foo>
<html> <xmlns:foo>
Implementors (of HTML5 parsers, and of other tools like RDFa processors
that try to extract namespace prefix information) would have to deal
with all these cases and match the spec's requirements, and authors
would be exposed to some of the complexities when they write slightly
unusual markup like this.
They're not insurmountable problems, but they are problems that wouldn't
exist if a simpler syntax with fewer special cases and/or without prefix
indirection was used.
Authors would also be faced with the complexity that "Namespaces" in
text/html will have easily-encountered differences to how they work in
XML - e.g. in Microsoft's proposal, default namespace declarations are
either not supported or are not supported on <html> elements. Anyone who
reads documentation or tutorials on Namespaces in XML will be misled as
to how they work in HTML; they will instead have to learn the new
HTML-compatible subset.
(Experience with XHTML suggests people aren't good at sticking to
compatible subsets - e.g. they write <script src="..." /> in text/html
and expect it to be parsed as an empty element, because that's how they
were taught XML works, and they don't recognise the problems it causes
in HTML.)
Developers of script libraries will also have to deal with three very
different ways that element names with colons are parsed (the new
behaviour, legacy Firefox/Safari/Opera/etc behaviour, legacy IE
behaviour (presumably preserved indefinitely in compatibility modes)).
I think any proposal that encourages the use of colons in names
introduces a significant amount of complexity along these lines.
(Complexity might be worthwhile if the benefits are sufficient, and if
the benefits can't be achieved with less complexity through other
solutions; but I don't believe that is the case here.)
--
Philip Taylor
pjt47@cam.ac.uk
Received on Monday, 19 October 2009 13:29:02 UTC