- From: Tina Holmboe <tina@greytower.net>
- Date: Wed, 23 Feb 2005 13:32:53 +0100 (CET)
- To: w3c-wai-ig@w3.org
On 23 Feb, Jesper Tverskov wrote:
> Like so many others I'm now serving my XHTML webpages as XML using
> mime-type application/xhtml+xml and content negotiation based on the
> http accept header.
I wonder whether more than a handful do this. Most, it seems, send
their XHTML using text/html and doesn't really care more than that.
> "XHTML, http accept-header and mime-type application/xhtml+xml"
> www.smackthemouse.com/xhtmlxml
> Nice if someone could report some problems caused by "XHTML as XML" on
> or off list, so I can start experimenting with ways to solve them.
> Comments and suggestions are also welcome.
There are a number of issues with your article. It might be
instructive to raise them here, so that we can lay a few myths to
rest.
First, with a very few exceptions, XHTML does not provide any
advantages over HTML. You comment, based on WCAG 1.0 11.1:
> Since is has been possible for several years to serve XHTML as XML to
> browsers understanding it, I would say that one can't claim
> Conformance Level "Double-A" if one is just using HTML.
Unless the author has specific XML needs - aka mixing namespaces,
typically using MathML and similar - then HTML is appropriate for the task of
publishing information on the WWW. It is available today (it is
supported by the majority of UAs), and does the job.
XHTML, on the other hand, is only supported by a very few browsers;
among those in the wild I can think of only Opera, and those which are
Gecko- and khtml-based.
Now for the article. The first thing that I notice is your
statement that XHTML has replaced HTML. To my knowledge, this is not
correct. The word "replace" is not used at all in the XHTML 1.0
specification; and it is clear that HTML and XHTML will exist side by
side for different purposes.
The second detail is the algorithm for determining which type of
content to send. It entirely - as far as I can see - ignore the q
parameter. What was your rationale for designing the algorithm this
way?
You then go on to state that all browsers "worth mentioning" support
XHTML today. Frankly, I find that an exaggeration if not outright
offensive. You are judging the worth of an UA based on whether or not
they support one specific markup language - there is nothing at all
here about backwards compatibility.
Following that is the comment:
"Just one violation of the markup rules of well-formedness and
the browsers will only show an error message. That is the recipe of
quality web pages based on modules of xml applications"
This is not only slightly incorrect - there are provisions in the XML
standard for presenting content alongside the error; but the content
should not be processed. This, in my view, is a grave mistake in the
design of XML - unprocessed data (Opera style), or "just" an error
(Gecko style), are inherently inaccessible.
It is the job of the browser to *try*. Keep in mind what the word
"agent" in "user agent" signifies, and the old Internet saying that
one should be liberal in what one accept.
Error-correction-by-stopping might be a good idea in a spacecraft,
but not on the web. Imagine, for a moment, a DVD player which - when
encountering a scratch in a disc - simply stops instead of trying to
correct the error to the best of it's ability. While a slightly flawed
analogy, it's food for thought.
Returning for a moment to your algorithm. You say:
'All we need to do is to test if the accept-header sent by the
browser, etc., contains the string "application/xhtml+xml". If
it does, we send it file A, XHTML 1.1 and mime-type
application/xhtml+xml, if it doesn't we send it file B, XHTML 1.0
Strict and mime-type text/html.'
While ignoring for a moment the q parameter, this sounds to me wrong.
Are you saying that:
IF the accept header indicates that application/xhtml+xml can be parsed THEN
send XHTML 1.1
send application/xhtml+xml
IF the accept header indicate that application/xhtml+xml cannot be parsed THEN
send XHTML 1.0 Strict
tell the UA it's *actually* HTML - even if it isn't.
If so, may I ask what advantage you believe is gained by sending XHTML under the
guise of HTML? If no advantage is gained, why do you not transform the XHTML to
properly structured HTML?
Next we find
"Styling the html element is so contrary to common sense that browsers like
Opera, Safari and Amaya don't support it yet even though they support
XHTML as XML."
This is confusing. As far as I know Opera has done this with HTML for a long time;
and it is easily proven by experimentation. The same go for Konqueror. I have not
tested Amaya. There is no inherent limitation to styling the HTML element - the
CSS specification even does so in the example stylesheet for 4.01. No news for
XHTML this.
Could you expand a little on why document.write() - which is an awfully bad
habit by the way - "can not be used" with XHTML?
> Using well-formed markup, it is much easier for browsers and assistive
> technology to reuse content and to provide better features, including
> accessibility features, for end users.
A well-formed document is easier to parse - yes. Whether that will
help UAs is another matter, since they are already required to handle
badly formed markup.
What will help a UA, in particular assistive technologies, is markup
which structures content using markup with predefined and well-known
semantic interpretation. That, of course, works nicely all the way up
to the XHTML 1.1 if not beyond.
> If markup is not well-formed you need a lot of testing, a lot of
> string manipulation and unreliable Regular Expressions that easily
> breaks.
Unlikely, but even so: unless a browser manufacturer want to take the
suicidal way out and create an UA which don't handle anything but
well-formed code ... well.
Besides, not handling badly formed code is a usability and
accessibility nightmare. Whatever is thrown at a browser, it must do
something to present content. The method used by, for instance,
Firefox when encountering badly formed code is highly unsatisfactory.
Opera does better, but I find the principle poorly thought out.
Remember the words of Jon Postel in RFC 791:
"In general, an implementation must be conservative in its sending
behavior, and liberal in its receiving behavior."
I suggest a rewrite of your article.
--
- Tina Holmboe Greytower Technologies
tina@greytower.net http://www.greytower.net/
[+46] 0708 557 905
Received on Wednesday, 23 February 2005 12:32:56 UTC