XForms
Improving the Web Forms Experience
Steven Pemberton
CWI and W3C
Kruislaan 413
1098 SJ Amsterdam
The Netherlands
Steven.Pemberton@cwi.nl
www.cwi.nl/~steven
About the Instructor
Steven Pemberton is a researcher at the CWI, The Centre for Mathematics
and Computer Science, a nationally-funded research centre in Amsterdam, The
Netherlands, the first non-military Internet site in Europe.
Steven's research is in interaction, and how the underlying software
architecture can support the user. At the end of the 80's he built a
style-sheet based hypertext system called Views.
Steven has been involved with the World Wide Web since the beginning. He
organised two workshops at the first World Wide Web Conference in 1994,
chaired the first W3C Style Sheets workshop, and the first W3C
Internationalisation workshop. He was a member of the CSS Working Group from
its start, and is a long-time member (now chair) of the HTML Working Group,
and co-chair of the XForms Working Group. He is co-author of (amongst other
things) HTML 4, CSS, XHTML and XForms.
Steven is also Editor-in-Chief of ACM/interactions.
Objectives
HTML Forms, introduced in 1993, were the basis of the e-commerce
revolution. After 10 years experience, it has become clear how to improve on
them, for the end user, the author, and the owners of the services that the
forms are addressing. XForms is a new technology, announced in October 2003,
intended to replace HTML Forms.
The advantages of XForms include:
- It improves the user experience: XForms has been designed to allow much
to be checked by the browser, such as types of fields being filled in, or
that one date is later than another. This reduces the need for round
trips to the server or for extensive script-based solutions, and improves
the user experience by giving immediate feedback to what is being filled
in.
- It is XML, and it can submit XML.
- It combines existing XML technologies: Rather than reinventing the
wheel, XForms uses a number of existing XML technologies, such as XPath
for addressing and calculating values, and XML Schemas for defining data
types. This has a dual benefit: ease of learning for people who already
know these technologies, and implementors can use off-the-shelf
components to build their systems.
- It is internationalized.
- It is accessible: XForms has been designed so that it will work equally
well with accessible technologies (for instance for blind users) and with
traditional visual browsers.
- It is device independent: The same form can be delivered without change
to a traditional browser, a PDA, a mobile phone, a voice browser, and
even some more exotic emerging clients such as an Instant Messenger. This
greatly eases providing forms to a wide audience, since forms only need
to be authored once.
- It is easier to author complicated forms.
The presenter is one of the authors of the XForms specifications, and is
chair of the Forms Working Group that produced the technology.
This tutorial works from a basis of HTML Forms, and introduces XForms
step-by-step. It covers essentially all of XForms except some technical
details about events, and no more than a passing reference to the use of
Schemas.
Emphasis is on how to improve the user experience, and how XForms improves
accessibility and device independence, and makes the author’s life easy in
producing a better experience.
HTML Forms: a great success!
- Forms have been the basis of the e-commerce revolution
- You find them everywhere on the web
Searching
Buying
Logging in
Configuring hardware
Reading mail
Composing email
Etc etc
- Tracking packages
- calculating currencies
- submitting taxes
- banking
- expenses
- calendars
- blogging
- wiki
- ...
Problems with HTML Forms
- Presentation oriented, mixing data and presentation
- No types, thus ping-ponging to the server
- Reliance on scripting
- Problems with non-Western characters
- Accessibility problems
- Hard to make cross-device for single authoring
- Impoverished data-model, no integration with existing streams
- Hard to manage, hard to see what is returned
- No support for wizards and shopping carts etc.
Soundbite: "Javascript accounts for 90% of our headaches in complex
forms, and is extremely brittle and unmaintainable."
XForms
- XForms has been designed based on an analysis of HTML Forms, what they
can do, and what they can't.
The Approach
The essence is to separate what is being returned from how the values are
filled in.
- The model specifies the values
being collected (the instance), and their related logic:
- Types, restrictions
- Initial values, Relations between values
- The body of the document then binds forms controls to
values in the instance
Controls
An essential difference with HTML is that XForms controls are
intent-based rather than presentation oriented.
Rather than specifying that a control consists of radio buttons, or a
menu, XForms specifies for instance that a control selects one item from a
list of items. CSS or similar can be used to provide the necessary
presentation.
This way the same XForm can be used across different devices without
change.
XForms improves the user experience
XForms has been designed to allow much to be checked by the browser, such
as
- types of fields being filled in
- that a particular field is required
- or that one date is later than another.
This reduces the need for round trips to the server or for extensive
script-based solutions, and improves the user experience by giving immediate
feedback on what is being filled in.
It is easier to author and maintain complicated forms
Because XForms uses declarative markup to declare properties of values,
and to build relationships between values, it is much easier for the author
to create complicated, adaptive forms, and doesn't rely on scripting.
An HTML Form converted to XForms looks pretty much the same, but when you
start to build forms that HTML wasn't designed for, XForms becomes much
simpler.
It is XML, and it can submit XML
XForms is properly integrated into XML: it is in XML, the data it collects
in the form is XML, it can load external XML documents as initial data, and
can submit the results as XML.
By including the user in the XML pipeline, it at last means you can have
end-to-end XML, right up to the user's desktop.
However, it still supports 'legacy' servers.
XForms is also a part of XHTML2.
It combines existing XML technologies
Rather than reinventing the wheel, XForms uses a number of existing XML
technologies, such as
- XPath for addressing and calculating values
- XML Schema for defining data types.
This has a dual benefit:
- ease of learning for people who already know these technologies
- the ability for implementors to use off-the-shelf components to build
their systems.
It integrates into existing data streams
Data can be pre-loaded into a form from external sources.
Existing Schemas can be used.
It integrates with SOAP and XML RPC.
Doesn't require new server infrastructure.
It is device independent
Thanks to the intent-based controls, the same form can be delivered
without change to a traditional browser, a PDA, a mobile phone, a
voice browser, and even some more exotic emerging clients such as an Instant
Messenger.
This greatly eases providing forms to a wide audience, since forms only
need to be authored once.
It is internationalized
Thanks to using XML, there are no problems with loading and submitting
non-Western data.
It is accessible
XForms has been designed so that it will work equally well with accessible
technologies (for instance for blind users) and with traditional visual
browsers.
It is royalty-free and unencumbered
Open standard
Wide industry support
Widely implemented
No vendor lock-in!
It supports new use cases
Regular HTML forms uses
Wizards
Shopping-basket-style forms
Editing XML
Spreadsheets
Applications
As output transformation
Implementations
- At release XForms had more implementations announced than any other W3C
spec had ever had at that stage
- Different types of implementation:
- plugin
- native
- 'zero install'
- proxy
- editors
- office suites
- Many big players doing implementations, e.g.
Users
As you would expect with a new technology, first adopters are within
companies and vertical industries that have control over the software
environment used.
Major companies and industries that are already using XForms include
Bristol-Myers-Squibb (pharmaceutical), Hewlett-Packard, Remia - a major Dutch
food manufacturer, Frauenhofer (known for MP3), Daiwa - a Japanese Bank,
Verifone - a payment company, for configuring petrol pumps, the entire
British Insurance industry (via Origo and Polaris), the US Navy, UK
Government (Planning Inspectorate), German Shipbuilders ... and several more
that are on the point of being announced.
As more industries adopt XForms, the expectation is that it will then
spread out into horizontal use.
The Future
Experience with XForms 1.0 has revealed a number of things:
- Some ambiguities
- Some missing functionality
- Some 'low hanging fruit': additional features implemented on several
implementations, but in different ways
A future iteration of XForms will address these issues.
More Information
The origin: www.w3.org/Markup/Forms, and www.w3.org/Markup/Forms/Group
XForms: http://www.w3.org/TR/xforms/
XForms for HTML Authors: www.w3.org/MarkUp/Forms/
2003/xforms-for-html-authors.html (Just Google the title)