This document provides guidelines for Web authoring tool manufacturers and
developers. The purpose of this document is two-fold: to assist developers in
designing authoring tools that generate accessible Web content and to assist
developers in creating an accessible authoring tool user interface.

Accessible Web content is achieved by encouraging authoring tool users
("authors") to create accessible Web content (through mechanisms such as
prompts, alerts, checking and repair functions, help files and automated
tools), and by ensuring that the automatic processes of the authoring tool
generate accessible content. This will result in the proliferation of Web
pages that can be read by a broader range of readers and in authoring tools
which can be used by a broader range of users.

This is a Working Draft of the Authoring Tool Accessibility Guidelines. It
is a draft document and may be updated, replaced or rendered obsolete 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". This is
work in progress and does not imply endorsement by either W3C or members of
the WAI Authoring Tool (AU) Working Group.

The Techniques listed in this document are intended to be informative only,
and although a final form of the document will make them available, they will
not be present in the final "normative" version.

The goals of the WAI AU Working
Group are discussed in the WAI AU charter.

Please send comments about this document to the public mailing list: w3c-wai-au@w3.org.

The guidelines in this document are meant to help authoring tool developers
and vendors design products that encourage authors to adopt accessible
authoring practices. For the purposes of this document the term "authoring
tool" will refer to authoring tools, generation tools, and conversion tools. These guidelines emphasize
the role of the user interface in informing, supporting, correcting, and
motivating authors during the editing process. For a more detailed discussion
of accessible Web authoring practices, see the Web
Content Accessibility Guidelines ( [WAI-WEBCONTENT] ).

The guidelines documents have been organized to address readers seeking
abstract principles of accessible authoring tool design and readers seeking
concrete solutions. The guidelines documents define three terms for
different levels of abstraction:

Guideline

A guideline is a general principle of accessible authoring tool design. A
guideline addresses the question "What accessibility issues should I be aware
of?"

Checkpoint

A checkpoint is a specific way of satisfying one or more guidelines. While
checkpoints describe verifiable actions that may be carried out by the
authoring tool developer, implementation details are described elsewhere. A
checkpoint answers the question "What must/should/may I do to make an
authoring tool (and the content it produces) accessible?"

Technique

A technique is an implementation of one or more checkpoints in a given
language (e.g., HTML, XML, CSS, DOM, ...). A technique answers the question
"How do I implement that in an authoring tool?"

Each checkpoint in this document is assigned a priority that indicates its
importance for users.

[Editors' note: Checkpoint priorities are under review by the Working
Group.]

[Priority 1]

This checkpoint must be implemented by authoring tools, otherwise one or more
groups of users with disabilities will find it impossible to access some
function of the tool, or some content produced by it. Satisfying this
checkpoint is a basic requirement for some individuals to be able to use the
authoring tool or its output.

[Priority 2]

This checkpoint should be implemented by authoring tools, otherwise one or
more groups of users will find it difficult to use the tool or content
produced by it. Satisfying this checkpoint will remove significant barriers to
using the authoring tool or its output for some individuals.

[Priority 3]

This checkpoint may be implemented by authoring tools, to make it easier for
one or more groups of users to author or access content. Satisfying this
checkpoint will improve the accessibility of the authoring tool or its output
for some individuals.

[Priority X]

The working group has not yet assigned priorities to all checkpoints. It is
expected that in the next working draft all checkpoints will have priorities
assigned.

This document also refers to the Web Content
Accessibility Guidelines and to the User
Agent Accessibility Guidelines. To conform to (or comply to) the Web
Content Accessibility Guidelines or the User Agent Accessibility
Guidelines, as used in this document, means that the priority for
implementing each checkpoint has the same level as it does in the relevant
Accessibility Guidelines.

The authoring tools used to generate Web content play a critical role in
determining the form and accessibility of Web markup. It is imperative that
authoring tools generate content that is accessible, and that they handle the
accessible authoring practices applicable to the language/format being edited.
This section contains guidelines and checkpoints to ensure that the authoring
tool generates accessible content.

Accessible markup differs between languages and versions, but some general
principles of accessible markup are:

Separate structure and content from presentation.

Ensure that accessible equivalents are available for all objects which may not
otherwise be accessible (e.g. text, audio descriptions for video).

Provide consistent structure and navigation.

Authoring tools are used to automate the mechanical tasks that are part of
producing Web pages. The power of this automation can enhance the
accessibility of the Web if it is used to ensure that the code produced
promotes accessibility, and frees the author to concentrate on the higher
level problems of overall design, content, description, etc. Authoring tools
can provide this support for authors in several ways:

Producing and handling accessible content;

Encouraging the author to adopt accessible authoring practices;

Prompting the author for necessary information;

Checking, validating and where necessary repairing markup;

Providing documentation regarding accessible authoring practices;

Integrating accessibility into the general look and feel of the tool, rather
than separating it as an "optional extra".

Depending upon the design of the authoring tool, the process of creating
accessible Web content can be either frustrating and onerous or easy and
intuitive. It is up to the authoring tool to make accessible authoring
practices an integral and efficient part of creating Web content.

New document types are constantly being developed, and in many cases offer
improvements to the structure and utility of Web content. In implementing a
new or extended document type it is important to ensure that a tool does not
remove access to information that had been inherent in the base document type.

An HTML example of a document type that contravenes this checkpoint is a
FRAMESET used without NOFRAMES - it precludes access to the underlying
information, whereas NOFRAMES provides a means to access the information
contained within the FRAMESET.

The same can apply to a reduced DTD. For example, producing a DTD which did
not include the "alt" attribute for IMG, or effectively working to such a DTD
by not implementing a means to include the attribute, compromises the
accessibility of any included IMG elements.

Methods for ensuring accessible markup vary with different markup
languages. If markup is automatically generated, many authors will be unaware
of the accessibility status of the final product unless they expend extra
effort to make appropriate corrections by hand. Since many authors are
unfamiliar with accessibility, these problems are likely to remain.

Textual equivalents, including "alt"-text, long descriptions, video
captions, and transcripts are absolutely necessary for the accessibility of
all images, applets, video, and audio files. However, the task of producing
these equivalents is probably the most time-consuming accessibility
recommendation made to the author.

The authoring tool can provide various mechanisms to assist the author in
generating textual equivalents while ensuring that the author can determine
whether the textual equivalent accurately reflects the information conveyed by
the multimedia object.

Including professionally written descriptions for all multimedia files
(e.g. clip-art) packaged with the tool will:

save users time and effort;

cause a significant number of professionally written descriptions to circulate
on the Web;

provide users with convenient models to emulate when they write their own
descriptions;

show authors the importance of description writing;

This will lead to an increase in the average quality of descriptions
used.

Do not insert automatically generated (e.g. the filename) or place-holder
(e.g. "image") equivalent text, except in cases where human-authored text has
been written for a object whose function is known with certainty.

Techniques

When a new feature is added to an existing software tool without proper
integration, the result is often an obvious discontinuity. Differing color
schemes, fonts, interaction styles and even application stability can be
factors affecting user acceptance of the new feature.

If there is more than one option for the author, and one option is more
accessible than another, place the more accessible option first and make it
the default. For example, when requesting alternative content for an image,
offer an unchecked option for empty alternative (i.e., alt="", implying the
image has no real function) with the cursor positioned in the text entry for
an "alt" value, rather than offering the filename as a default suggestion,
with the null "alt" value selected.

Ensure that accessible authoring practices can be easily accessed by the
author in a natural, intuitive fashion

Include considerations for accessibility - such as the "alt" and "longdesc"
attributes of the IMG element - right below the "src" attribute in a dialogue
box, not buried behind an "Advanced..." button.

Allow efficient and fast access to accessibility-related settings with as few
steps as possible needed to make any changes that will generate accessible
content.

Do not set accessibility features off to the side as some optional "module";
rather, make them a part of the core operation of the authoring tool.

The "factory settings" default configuration for the authoring tool should
favor accessible solutions "out of the box", for the benefit of newer users.

A help page that describes how to make an image map should include adding
alternative content for each AREA in the MAP as part of the process. Any
examples of code should give either block content with text links, or AREA
elements that all have relevant ALT attribute values.

When a user creates a frameset, suggest the main content page and a navigation
bar as the content for NOFRAMES. .

Many applications feature the ability to convert documents from other
formats (e.g., Rich Text Format) into a markup format, such as HTML. Markup
changes may also be made to facilitate efficient editing and manipulation.
These processes are usually hidden from the user's view and may create
inaccessible content or cause inaccessible content to be produced.

Many authoring tools allow authors to create documents with little or no
knowledge about the underlying markup. To ensure accessibility, authoring
tools must be designed so that they may automatically identify inaccessible
content, and enable its correction even when the markup itself is hidden from
the author.

In supporting the creation of accessible Web content, authoring tools must
take into account the differing authoring styles of their users. Some users
may prefer to be alerted to problems when they occur, whereas others may
prefer to perform a check after the document is completed. This is analogous
to programming environments that allow users to decide whether to check for
correct code during editing or at compile time.

Software can be made accessible by building in a range of options for
displaying information and controlling the application, and by making the tool
compatible with third party assistive technology (e.g., text to speech devices
or alternative keyboards). Although implementation requirements and techniques
vary from platform to platform, the following general principles should be
applied:

The author may need a different presentation to edit the Web content than
the one they wish ultimately to be displayed. This implies display preferences
that do not manifest themselves in the ultimate markup or style
declarations.

[Editors' note: The name of this guideline will be revised to reflect
dealing with the structure of a document]

Authoring Web content requires editing a potentially large and complex
document. In order to edit a document the author must be able to locate and
select specific blocks of text, efficiently traverse the document and quickly
find and mark insertion points. Authors who use screen readers, refreshable
braille displays, or screen magnifiers can make limited use (if at all) of
visual artifacts that communicate the structure of the document and act as
sign posts when traversing the document. There are strategies that make it
easier to navigate and manipulate a marked up document . A compressed view of
the document allows the author to both get a good sense of the overall
structure and to navigate that structure more easily.

Graphically represented elements cannot be identified by assistive
technologies that translate text to braille, speech, or large print, unless
there is appropriate information available as text. For example, some HTML
authoring tools display start and end tags as graphics.

The Sample Implementations are not Guidelines, they are
Techniques. The section has been included to illustrate how the design
principles embodied in the guidelines sections can be applied to concrete
issues. The specific ideas discussed in this section are meant to be used only
as clarification.

The A-prompt tool ( [APROMPT] ) is an example tool that allows for checking
of many accessibility features in HTML pages, and incorporates an "alt text
registry" to manage alternative content for known resources. The tool is built
in such a way that the functions can be incorporated into an authoring
tool.

Implementation: In any content produced, the IMG element is always
properly formed as defined in the HTML4 specification. This means that the
element contains both a "src" attribute and an "alt" attribute.

Implementation: Due to the [Web-Content-Priority 1] recommendation
status of "alt"-text in the Web Content Accessibility Guidelines, special
attention will be devoted to prompting and guiding the user toward full "alt"
coverage.

Implementation: The authoring tool is shipped with many ready-to-use
clip art and other images. For each of these images a short "alt"-text string
and a longer description have been pre-written and stored in an "alt"-text
registry.

Implementation: The authoring tool has the capability of opening and
converting word processor documents into HTML. If an image is encountered
during this process, the user will be prompted for "alt"-text. The authoring
tool sometimes makes changes to the HTML it works with to allow more efficient
manipulation. These changes never result in the removal or
modification of "alt"-text entries.

Implementation: If the user opens content or pastes in markup
containing an IMG element that lacks "alt"-text, the author is prompted to add
them (unless they have configured the tool to postpone this task).

Prompts can be used to encourage authors to provide information needed to
make the content accessible (such as alternative textual representations).
Prompts are simple requests for information before a markup structure has been
finalized. For example, an "alt"-text entry field prominently displayed in an
image insertion dialog would constitute a prompt. Prompts are relatively
unintrusive and address a problem before it has been committed. However, once
the user has ignored the prompt, its message is unavailable.

Alerts warn the author that there are problems that need to be addressed.
The art of attracting users' attention is a tricky issue. The way in which
users are alerted, prompted, or warned will influence their view of the tool
as well as their opinion of accessible authoring.

The following are sample alert possibilities with a short definition and a
brief discussion of their advantages and disadvantages.

Interruptive Alerts

Interruptive alerts are informative messages that interrupt the edit process
for the user. For example, interruptive alerts are often presented when a
user's action could cause a loss of data. Interruptive alerts allow problems
to be brought to the user's attention immediately. However, users may resent
the constant delays and forced actions. Many people prefer to finish
expressing an idea before returning to edit its format.

Unintrusive Alerts

Unintrusive alerts are alerts such as icons, underlines, and gentle sounds
that can be presented to the user without necessitating immediate action. for
example, in some word processors misspelled text is highlighted without
forcing the user to make immediate corrections. These alerts allow users to
continue editing with the knowledge that problems will be easy to identify at
a later time. However, users may become annoyed at the extra formatting or may
choose to ignore the alerts altogether.

An Authoring Tool is any application that is specifically designed
to aid users in editing markup and presentation language documents. The
editing processes covered by this definition may range from direct hand coding
(with automated syntax support or other markup specific features) to WYSIWYG
editors that do not present the actual underlying markup to the author for
editing. This definition does not include text editors and word
processors that also allow HTML to be hand produced.

A Conversion Tool is any application or application feature that
allows content in some other format (proprietary or not) to be converted
automatically into a particular markup language. This includes software whose
primary function is to convert documents to a particular markup language as
well as "save as HTML" (or other markup language) features in non-markup
applications.

A tool that provides an overview of an entire Web site indicating hierarchical
structure. It will facilitate management through functions that may include
automatic index creation, automatic link updating, and broken link checking.

A tool that allows content to be uploaded in an integrated fashion. Sometimes
these tools makes changes such as local hyper-reference modifications.
Although these tools sometimes stand alone, they may also be integrated into
site management tools.

Automated markup insertion functions are the features of an authoring tool
that allow the user to produce markup without directly typing it. This
includes a wide range of tools from simple markup insertion aids (such as a
bold button on a toolbar) to markup managers (such as table makers that
include powerful tools such as "split cells" that can make multiple changes)
to high level site building wizards that produce almost complete documents on
the basis of a series of user preferences.

An element is any identifiable object within a document, for example a
character, word, image, paragraph or spreadsheet cell. In HTML and XML an
element refers to a pair of tags and their content, or an "empty" tag - one
which has no closing tag or content.

A property is a piece of information about an element, for example structural
information (e.g. it is item number 7 in a list, or plain text) or
presentation information (e.g. that it is marked as bold, its font size is
14). In XML and HTML properties of an element include the name of the element
(e.g. IMG or DL), the values of its attributes, and information associated by
means of a stylesheet. In a database, properties of a particular element may
include values of the entry, and acceptable data types for that element.

in XML and HTML, an element may have any number of attributes. In the
following example, the attributes of the beer element are flavor, which has
the value "lots", and color, which has the value "red": <beer flavor="lots"
color="red">my favorite</beer> Some attributes are integral to document
accessibility (e.g., the "alt", "title", and "longdesc" attributes in HTML

The rendered content is that which an element actually causes to be
rendered by the user agent. This may differ from the element's structural
content. For example, some elements cause external data to be rendered (e.g.,
the IMG element in HTML), and in some cases, browsers may render the value of
an attribute (e.g., "alt", "title") in place of the element's content.

The term accessibility awareness is used to describe an application that has
been designed to maximize the ease of use of the interface and its products
for people with differing needs, abilities and technologies. In the case of
authoring tools, this means that (1) care has been taken to ensure that the
content produced by user-authors is accessible and (2) that the user interface
has been designed to be usable with a variety of display and control
technologies.

Certain types of content may not be accessible to all users (e.g., images), so
authoring tools must ensure that alternative
textual representations ("Alt-text") of information is available to
the user. Alternative text can come from element content (e.g., the OBJECT
element) or attributes (e.g., "alt" or "title").

Inserting an element involves placing that element's markup within
the markup of the file. This applies to all insertions, including, but not
limited to, direct coding in a text editing mode, choosing an automated
insertion from a pull-down menu or tool bar button, "drag-and-drop" style
insertions, or "paste" operations.

Editing an element involves making changes to one or more of an
element's attributes or properties. This applies to all editing, including,
but not limited to, direct coding in a text editing mode, making changes to a
property dialog or direct UI manipulation.

An authoring tool may offer several views of the same document. For
instance, one view may show raw markup, a second may show a structured tree
view, a third may show markup with rendered objects while a final view shows
an example of how the document may appear if it were to be rendered by a
particular browser.

A selection is a set of elements identified for a particular
operation. The user selection identifies a set of elements for certain types
of user interaction (e.g., cut, copy, and paste operations). The user
selection may be established by the user (e.g., by a pointing device or the
keyboard) or via an accessibility API. A view may have several selections, but
only one user selection.

A-prompt tool is a freely available example tool developed by the Adaptive
Technology Resource Center at the University of Toronto, and the TRACE center
at the University of Wisconsin. The source code for the tool is also
available: http://aprompt.snow.utoronto.ca