This document provides guidelines for Web authoring tool developers. Its
purpose is two-fold: to assist developers in designing authoring tools that
generate accessible Web content and to assist developers in creating an
accessible authoring 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. It is equally important that all people can be the authors of Web
content, rather than merely recipients. It is therefore of critical importance
that the tools used to create this content are themselves accessible. Adoption
of these guidelines will result in the proliferation of Web pages that can be
read by a broader range of readers and in authoring tools that can be used by
a broader range of authors.

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.

This draft follows the Working Group's telephone meeting on 26 May
1999.

The Techniques given in the linked "Techniques" document are intended to be
informative only. They will not be present in the "normative" version,
although there will still be a link to the Techniques document. This will
enable them to be updated more easily than the Guidelines themselves.

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

The various authoring tools used to generate Web content play a critical
role in determining the form and accessibility of the Web. 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. It is imperative that authoring tools
generate content that is accessible, and that they are accessible themselves,
to allow people to be consumers and producers of Web content on an equal
footing, regardless of disability.

The accessibility of authoring tools encompasses some general principles of
software accessibility, and some features which are specific requirements for
authoring. The accessibility of the content produced depends on the ability of
the tool to be used in producing accessible markup, and on the user interface
of the tool enabling, informing, and encouraging the use of accessible markup
authoring practices. These Guidelines refer extensively to the Web Content
Accessibility Guidelines, which details accessibility requirements for markup
itself, and include checkpoints which are basic requirements for the
accessibility of the tool and its output. In addition, there are guidelines
and checkpoints which are uniquely relevant to the role authoring tools play
in guiding the author to produce accessible content.

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, ...). A technique answers the question "How
do I implement that in an authoring tool?"

Form 2: Include, on each statement of conformance, one of three icons
provided by W3C and link the icon to the appropriate W3C explanation of the
claim.

[Editors' note: In the event this document becomes a Recommendation, by
that date WAI will provide a set of three icons, for "A", "Double-A", or
"Triple-A" conformance levels of "Authoring Tool Accessibility Guidelines 1.0
(working draft)", together with a stable URI to the W3C Web site for linking
the icons to the W3C explanation of conformance claims.]

The authoring tool is a software program with standard user interface
elements and as such should follow relevant user interface accessibility
guidelines.

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.

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.

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.

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.

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 an object whose function is known with certainty.

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.

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.

Note that validity is an accessibility requirement, particularly for
assistive technologies.

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.

User Configurable Schedule

A user configurable schedule allows the user to determine the type of prompts
and alerts which are used, including when they are presented. For example, a
user may wish to include multiple images without being prompted for
alternative content, and then provide the alternative content in a batch
process, or may wish to be reminded each time they add an image. If the
prompting is done on a user configurable schedule they will be able to make
that decision themselves. This technique allows a tool to suit the needs a
wide range of authors.

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 beverage element are flavour, which
has the value "lots", and colour, which has the value "red": <beverage
flavour="lots" colour="red">my favorite</beverage> 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 User Interface 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 Application Programmatic Interface (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