XML Accessibility Guidelines

W3C Working Draft 29 August 2001

This Version:
Latest Version:
Previous Version:
This is the first public Working Draft
Daniel Dardailler, W3C (dd@w3.org)
Sean B. Palmer (sean@mysterylights.com)


This document explains how to design accessible applications using XML, the Extensible Markup Language. Compared to the HTML or MathML languages, XML is one level up: it is a meta syntax used to describe these languages, as well as new ones. As a meta syntax, XML provides no intrinsic guarantee of device independence or textual alternate support. It is essential, therefore, that XML formats and tools designers are provided with guidelines that explain how to include basic accessibility features - such as those present in HTML, SMIL, and SVG - in all their new developments.

Status of this document

This document is a Working Draft made available by the WAI Protocols and Formats Working Group (PFWG), for review by W3C members and other interested parties. The PF group operates as part of the WAI Technical Activity.

Depending on the feedback received, this document may become a W3C Note, be integrated in the Web Content Accessibility Guidelines suite (e.g as a technique for XML) or enter its own Recommendation track.

Please send comments about the content of this document and how you would like to see it evolving to the publicly archived mailing list: wai-tech-comments@w3.org. Comments on this version can be sent until September 30th, 2001. Send minor editorial comments directly to the editors.

Publication of this document does not imply endorsement by the W3C, its membership or its staff. This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C technical reports and publications, including working drafts and notes, can be found at http://www.w3.org/TR/.

Table Of Contents


XML (Extensible Markup Language) is a meta-syntax, used to create new languages.

It can be seen as a simplification of SGML (Standard Generalized Markup Language), designed to promote a wider acceptance in Web markets, but serving the same functionality of extensibility and new language design.

HTML (HyperText Markup Language), on the other hand, is one particular application of SGML, which covers one set of needs ("simple" hypertext documents) and one set of element and attributes.

For instance, in HTML, authors can write elements like:

 <title>XML and Accessibility</title>
 <address lang=fr>Daniel Dardailler</address>

and they can only use elements (title, h1, etc) defined by the HTML specification (which defines about a hundred), and their attributes.

In SGML and XML, authors can define their own set of elements, and end up with documents like:

 <menu>New England Restaurant</menu>
 <appetizer>Clam Chowder
   <photo url="clam.jpg">A large creamy bowl of clam showder, with
       bread crumbs on top</photo>

which may fit more closely the needs of their information system.

Within W3C, the HTML language is now being recast as XML - this is called XHTML - including a modularization of HTML to suit the needs of a larger community (mobile users, Web TV, etc).

XML is therefore not to be seen as a replacement of HTML, but as a new building layer on top of which HTML is to be placed, next to other languages designed by W3C, such as MathML (for representing mathematical formula), SMIL (for synchronizing multimedia), SVG (for scalable graphics), etc., and other new languages designed by other organizations (such a OpenEBook, XML-EDI, etc.).

Furthermore, it is important to understand that XML is not only a User Interface technology (like HTML), but can and is often used in protocol communication, to serialize and encode data to be sent from one machine to another.

XML Grammars, and The Scope Of XMLGL

The XML grammars (called schemata - but see the caveat about our use of the term "schema" in the definition section) can be classified along two different axes:

Tagsets for: User Interface (UI)--oriented structural textual rendering, such as Docbook, HTML, MenuML, OEB, etc.; specialized rendering - for example MathML, Scalable Vector Graphics (SVG), MusicML, Synchronized Multimedia Integration Language (SMIL); or any generic data storage format. An informal definition is 'anything for which the question "is there a textual equivalent of all rich media data bits?" makes sense'. Data-centric schemata include both the interaction and behavioral aspects of an XML application.
When the content being marked up is metadata. Examples: For expressing data processing (for example XSL - Extensible Style Language), RDF (Resource Description Framework), Schema languages, etc.

According to this taxonomy, these guidelines only address Data-oriented schemata. This does not imply that there are not accessibility issues or features in a Metadata-Oriented schemata - see, for example, how XSLT, a component of XSL, can assist in Braille formatting. Since they do not convey end-user oriented data, however, Metadata-Oriented schemata are out of the scope of these guidelines.

Problem statement

The WAI (Web Accessibility Initiative) has done extensive work in the HTML area, resulting in lots of new functionalities being added to the version 4.0 of the language (see the HTML4 Accessibility Improvements paper).

These features includes:

One area of concern with the advent of XML is that the freedom of design it bringshas and can result in a loss of accessibility features, present today because of HTML's pervasive presence and widely available specification.

For instance, one could design a new XML language that would prevent the creation of accessible documents, by not including in the element or attribute set a way to attach an alternate textual description for a photo:

 <menu>New England Restaurant</menu>
 <appetizer>Clam Chowder
   <photo url="clam.jpg"/> <!-- no alt attribute or 
                                textual content model here -->

In this example, the problem is not that the author of this document didn't put an alt attribute or textual equivalent attached to the photo element, it's that the designer of the language didn't put the attribute or the proper support in the language itself (that is, in the schema or the DTD).

But let's start by defining what we mean by accessible schema and documents (Details on these definitions are provided at the end of this document):

As explained in the introduction, we're only considering Data-oriented languages here, and for them, the message is simple: be device independent and export your semantics as much as you can.

While the priority is stronger on the first aspect (multi-modality), both aspects are important, as without the knowledge of the meaning of the XML elements and attributes, there is little chance that alternative user agents can do something intelligent with just the document bits.

This semantics knowledge can be provided through human readable documentation of course, but having machine readable assertions of semantics that can then be used to present the document in various media is paramount for pervasive access (that is, you don't need a programmer, you just need a program). Enabling others to map from your language to existing ones, or vice versa, is a useful accessibility feature.

ICADD (International Committee on Accessible Document Design) was a pioneer in this topic, for SGML accessibility and ways to convey arbitrary schema semantics (using specific SGML binding mechanisms). A few years later, ICADD has not really been adopted (in fact, the ICADD DTD was replaced by HTML and its well known semantics), and people are still trying to solve the same problem, albeit with more experience in the field of HTML accessibility, and applied to XML this time.

Guidelines for Designers of Data-oriented XML Tagsets

This section provides a list of four guidelines, which are general principles of accessible design. Guidelines include rationale and checkpoints. Each checkpoint expresses a requirement, includes some informative text about the checkpoint and one or several Techniques, where implementations and examples of the checkpoint are discussed. Note that the checkpoints are not prioritized at that point.


Appendix A: Techniques Rationale

In the presentation of guidelines for XML accessibility, we try to separate abstract guidelines from implementation techniques. This allows us to talk about the general guideline principles without spending the time up-front to solve the implementation issues.

In fact, there are several techniques for achieving the same result and people's decision will be a function of time and product available and their own commitment to access.

For instance, if an XML designer want to create some kind of "list" element in a given markup, this can be implemented using various techniques:

Appendix B: XML Accessibility Definitions

Appendix C: Acknowledgments

In addition to the editors, the following WAI Protocols and Formats Working Group (PF) participants have contributed directly to the content of this document:

Kynn Bartlett , Geoff Freed, Al Gilman, Vijay Gummadi, Ian Jacobs, Chris Lilley, William Loughborough, Charles McCathieNevile, Dave Pawson, Gregory J. Rosmaita, Aaron Swartz and Carlos A. Velasco.

Appendix D: References

$Id: gl-20010806.html,v 1.25 2001/08/06 11:37:55 ddardai Exp $