The Kiss of the Spiderbot

Steven Pemberton, CWI, Amsterdam and W3C
Chair, W3C HTML and Forms Working Groups
Editor in chief, ACM/interactions

User interfaces for all

HTML: a Success!

But what a mess!

Both in design and use ...

XHTML is trying to improve the situation

XHTML

XHTML is a family of XML-based markup languages.

Currently:

And soon: XHTML 2

An XHTML site from 1999 viewed on a mobile phone

XHTML 2

We are currently working on a new member of the XHTML family, in our minds the real XHTML.

Our aims are:

In fact as I will show, many of these things are intertwined.

Aim: Generic XML

By 'generic XML' we mean: if a facility exists in XML technologies, and it is suitable, use it and not a special-purpose XHTML facility. Try to get missing functionality added to XML.

Examples:

Major missing functionality: Linking (XLink insufficient for XHTML's needs).

Advantages: less variability; more interoperability; much of XHTML 2 works already; opportunity to make a cleaner break.

Aim: Less presentation

Remove all presentation-only markup.

Use stylesheets to define presentation.

Advantages: possible to author once, and display on different devices; better presentation possibilities; device presentation not hardwired; CSS has support for devices; more accessibility.

.

Power of CSS currently seriously underappreciated.

(Note: doesn't require CSS to be implemented; just uses its model)

Separating Content and Presentation: Author Advantages

Separating Content and Presentation: Webmaster Advantages

Separating Content and Presentation: Reader Advantages

Separating Content and Presentation: Implementor Advantages

Aim: More structure

Add more semantically-oriented markup to make documents richer.

Examples: <line> element instead of <br>. <section> and <h> elements instead of <h1> <h2> etc

Not

I think that I shall never see<br>
A poem lovely as a tree

but

<line>I think that I shall never see</line>
<line>A poem lovely as a tree</line>

Advantages: more presentational opportunities (folding, marquee, numbering)
[More shortly]

What are the important properties of a website?

Forrester did research among 8000+ users on why they chose one website above another equivalent one. Reasons were:

What are the important properties of a website?

Forrester did research among 8000+ users on why they chose one website above another equivalent one. Reasons were:

What are the important properties of a website?

Forrester did research among 8000+ users on why they chose one website above another equivalent one. Reasons were:

What are the important properties of a website?

Forrester did research among 8000+ users on why they chose one website above another equivalent one. Reasons were:

What are the important properties of a website?

Forrester did research among 8000+ users on why they chose one website above another equivalent one. Reasons were:

What are the important properties of a website?

Forrester did research among 8000+ users on why they chose one website above another equivalent one. Reasons were:

All other reasons were 14% or lower.

Aim: More usability

There are two principal 'users' of XHTML:

Usability and accessibility are often closely related

For instance client-side image maps compared with server-side ones:

Client-side image maps give better usability by allowing feedback to the user about where is clickable, and where a click will lead to.

But they also give more accessibility, by allowing accessible software to create an equivalent navigation control.

A current problem: Frames

As an example of poor usability, current frames are a disaster!

Frames continued

Currently devising XFrames, a replacement for Frames.

Aim: More accessibility

One day we will all be grateful for accessible websites. Maybe even today.

As an example of a current problem: <h1>, <h2> etc are mostly terrible for accessibility, because no one uses them right, and it is hard to work out document structure from so little information.

Structure/Accessibility example

<h2>Chapter 1</h2>
...
<h3>Section 1</h3>
...

is now:

<section>
<h>Chapter 1</h>
....
   <section>
   <h>Section 1</h>
   ...
   </section>
</section>

More structure gives more accessibility.

Aim: Internationalization

Aim: Less scripting

Observe how scripting is currently used.

Identify missing markup/functionality.

Add it where possible; try to cover 80% mark

Examples: menus for navigation; forms data checking; folding presentation.

Advantages: more devices, more presentational variations, better search, better accessibility

Aim: More device independence

Less scripting

No hard-wired presentation

Events

New Forms

Events

Current HTML events are a disaster

Problems include:

XML Events

XML markup binding to DOM2 Events

Extensible for new event types

'Abstract' events can replace the old device-dependent ones (e.g. 'activate' instead of 'click')

Independent of scripting language

Can entwine event markup in document, or can separate it out

Advantages: more types of events, other types of scripting (e.g. declarative), more device independence, more accessibility

<a onClick="...javascript..." ...>

becomes

<a ev:event="activate" ev:handler="#myhandler" ...>

XForms

HTML forms have proven their worth, and are the basis of the ecommerce revolution. XForms improves on them:

Essentially defines two separate parts: the 'real' form (data, datatypes and submission details), and form controls bound to the data.

XForms 'native' form controls are device-independent, and accessible, though a language may define its own.

Advantages: usability, accessibility, device independence

Example Form Control

<input ref="order/shipTo/street">
  <label>Street</label>
  <hint>Please enter the number and
        street name</hint>
</input>

A user agent has a default presentation.

If the user agent supports it, a stylesheet can be used to define other presentations.

Another example control

<select ref="icecream/flavors">
  <label>Flavours</label>
  <item><label>Vanilla</label>
        <value>v</value></item>
  <item><label>Strawberry</label>
        <value>s</value></item>
  <item><label>Chocolate</label>
        <value>c</value></item>
</select>

This example covers both radio-button style selection, and menu selection: not encoded in the control.

Is a good design enough?

We want:

But can we achieve this just through good design?

Well, we've got a friend.

The Kiss of the Spiderbot

"Google is, for all intents, a blind user. A billionaire blind user with tens of millions of friends, all of whom hang on his every word. I suspect Google will have a stronger impact than [laws] in building accessible websites."

...

"In a world where Google likely has a valuation several orders of magnitude higher than any chrome such as flash, graphics, audio, interactivity, or "personalization", I see a heady revision."

Karsten M. Self

Arachnophilia

Things to avoid:

In other words: avoid things that are bad for accessibility!

Conclusions

HTML was originally designed as a structure description language, not a presentational language.

The design of XHTML is truly 'radical': taking HTML back to its roots.

Device independence, accessibility and usability are surprisingly closely related.

Even though website builders may not yet know it, device independence, accessibility and usability have a major economic argument in their favour. Spread the word!

More information: www.w3.org/Markup, www.w3.org/WAI

and soon I hope: UIG