Steven Pemberton, CWI and W3C
Chair W3C HTML Working Group, and Forms Working Group
What are the features of websites that you go back to regularly, that differentiate them from websites with the same purpose?
Forrester did some research on this:
(the rest is noise: 14% and lower)
Rather than being designed, HTML just grew, by different people just adding stuff to it.
We now have three versions:
It's worth repeating: Forrester Research demonstrated that usability is the second-most important property of a website after good content.
This means that it is pretty important that the markup language of the web support the usability aim.
To this end, we are designing a new family of HTMLs, in XML.
It gives us the opportunity to try and clear up the mess.
There is an amusing platitude that goes "A camel is a horse designed by committee".
This is of course an insult to camels, which are perfectly designed for their environment. You just trying putting a horse in a desert and see what happens.
Something that wasn't designed by a committee as it happens is the <img> tag in HTML. This element specifies an image for inclusion in a page, and has the form
<img src="pic.gif" alt="Me, en route for France">
This was badly designed in three ways:
If <img> had been designed well, firstly it would be called <image> (contractions are OK, but there's no need to overdo it: why <img> when you have <blockquote>?), and secondly it would have a fall-back possibility like this:
<image source="pic.png"> <image source="pic.gif"> Me, <em>en route</em> for France </image> </image>
This would display a PNG graphic if the browser knew about them, otherwise a GIF graphic, and if all else failed (or images were turned off) the marked-up text. Browsers which have never heard of the <image> tag would still display something sensible.
This is why the <object> element was later added to HTML (by a committee), with exactly these properties (and handling other types of things than images into the bargain, such as MPEG movies), and why you should be thinking about moving from <img> to <object>.
Another thing not designed by a committee, but just added to a product without consultation, was Frames.
These are widely infamous in the interaction community for their lack of user-friendliness, initially and principally for the way that they broke the use of the [back] button.
But I have tried to identify all the problems with frames, and this is what I have come up with:
In fact I can only find two compelling uses for frames:
All in all a pretty damning charge sheet, and therefore surprising that Frames are so widely used.
What is also surprising is that if Frames had been designed in a slightly different way, most of the problems would disappear. If they had been designed not as a variation of HTML, but as a separate sort of document with the content HTML documents as parameters, such as
http://www.example.com/home.frm?nav.html; main.html;banner.html
many of the usability problems mentioned above would never have arisen (back, bookmark, page up/down, reload, security, trapped, search results, no frames).
My conclusion? Firstly that "Many eyes make all bugs shallow" also applies to user-interface design bugs, and that user interface people should be involved in the design of notations.
HTML was designed as a structure language, not a presentation language.
Now that we have CSS (96+% of people use a browser that supports CSS), you shouldn't use <font> etc.
So we can remove loads of presentation-oriented elements from XHTML.
But:
Many blind people complain about <hr> being used for 'pseudo-structure'.
The headings like <h1>, <h2> etc should be used in a structured way (h3's should come after h2's etc).
Particularly sight-impaired people have the greatest difficulty understanding pages that use the different heading mixed up, or even worse, use <b> and <font> for headings.
One solution would be to abolish h1, h2, etc, and replace them with <section> and <h>:
<section> <h>Chapter 1</h> <p>Bla bla bla</p> <section> <h>This is an h2</h> <p>Bla bla bla</p> </section> </section>
The 'class' attribute allows you to add extra information about an element, but there are no standards for what the values of 'class' should be.
<p class="warning">
Should there be new markup for making it clear what the semantics of a piece of markup is? (A name, an address, a date, etc, etc.). Where should we stop?
Design of notations needs HCI people to be involved.
XHTML 1.1, which has just come out, is the first time HTML has got smaller in going to a new version
Currently we are designing the next, the 'real', version of XHTML.