W3C

User Agent Accessibility Guidelines

W3C Working Draft 31-Mar-1999

This version:
http://www.w3.org/TR/1999/WAI-USERAGENT-19990331
(plain text, postscript, pdf, gzip tar file of HTML, zip archive of HTML)
Latest version:
http://www.w3.org/TR/WAI-USERAGENT
Previous version:
http://www.w3.org/TR/1998/WD-WAI-USERAGENT-19981112
Related documents:
Techniques for User Agent Accessibility Guidelines
Editors:
Jon Gunderson <jongund@uiuc.edu>
Ian Jacobs <ij@w3.org>

Abstract

This document provides guidelines to user agent manufacturers for making their products more accessible to people with disabilities and for increasing usability for all users. This document emphasizes the accessibility of interoperability between two important classes of user agents - graphical desktop browsers and dependent assistive technologies (screen readers, screen magnifiers, and voice input software). However, it is meant to be applicable to user agents in general, including text and voice browsers, multimedia players, and plug-ins.

This document is part of a series of accessibility documents published by the W3C Web Accessibility Initiative.

Status of this document

This is a W3C Working Draft for review by W3C Members and other interested parties. It 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". This is work in progress and does not imply endorsement by, or the consensus of, either W3C or Members of the WAI User Agent (UA) Working Group.

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

This document has been produced as part of the Web Accessibility Initiative, and is intended as a draft of a Proposed Recommendation for how to improve user agent accessibility. The goals of the WAI UA Working Group are discussed in the WAI UA charter. A list of the current Working Group members is available.

A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR.

Table of Contents


1 Introduction

For those unfamiliar with accessibility issues pertaining to user agent design, consider that many users may be using documents in contexts very different from your own:

The guidelines in this document are designed to help developers understand and thereby reduce accessibility barriers that impede access to the Web. The associated Techniques Document provides practical solutions based on existing and upcoming technologies. Though developers may believe that implementing accessibility features in their products is difficult or of limited use, considering accessibility during the design phase of a product leads to more flexible, manageable, and extensible software.

These guidelines include information relevant to a wide class of user agents: graphical desktop browsers, screen readers, speech synthesizers, multimedia players, text browsers, voice browsers, plug-ins, etc., with a particular focus on two classes of user agents:

  1. Graphical desktop browsers
  2. Dependent user agents, which rely on of other user agents for input and/or output. Dependent user agents include:

The guidelines emphasize interoperability between these two classes of user agents.

1.1 Principles of Accessible Design

This document is organized according to several principles that will improve the design of any type of user agent:

Ensure that the user interface is accessible.

This document addresses some aspects of user interface that directly impact accessibility, including device-independence, accessible product documentation, and configurability. However, the more general topic of accessible user interfaces for computer software exceeds the scope of this document. User interfaces must be intuitive, simple, and tested. Features that are known to promote accessibility should be made obvious to users and easy to find.

Ensure that content is accessible.

The user agent must allow users to control the style (colors, fonts, speech rate, speech volume, etc.) and format of a document. Users must also be able to access both primary and alternative representations of content.

The user agent must enable navigation among different parts of the document: links, form controls, tables, etc., in an input device-independent manner. Navigation should follow any tabbing order that has been specified by the author. How tabbing order is defined typically depends on markup language (e.g., the "tabindex" attribute in HTML).

Help the user remain oriented

The user agent should provide users with information about views of a document, document structure, document summary information, and events to help the user remain oriented. Perhaps more importantly, the user agent should minimize the chances the user will become disoriented by allowing the user to control when windows are spawned, warning the user when events occur, avoiding sudden movements of the viewport, etc.

Use standard interfaces and operating system conventions.

Not all user agents satisfy the above principles natively, so they must make information available to assistive technologies. Even when a user agent implements a feature natively, it should make information available to other software. Information must be made available through interoperable and standard interfaces and generally according to operating system conventions (except where those conventions hinder accessibility).

Note. In general, software should be designed, installed, configured, and documented according to operating environment conventions.

2 Guidelines, Checkpoints, and Techniques

This document refers to three concepts:

Guideline
A guideline is a general principle of accessible 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 user agent developer, implementation details are described elsewhere. A checkpoint answers the question "Where specifically can I improve accessibility?"
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 do that in HTML or SMIL or CSS...?"

This document lists guidelines and the checkpoints that satisfy them.

The associated Techniques Document provides in-depth descriptions of the same checkpoints and examples of how to implement the checkpoints using HTML, CSS, and more. Please note that the Techniques Document will be updated more regularly than the current document in order to keep up with changes in technology.

2.1 Checkpoint priorities

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

[Priority 1]
This checkpoint must be implemented by user agents as a native feature or through compatibility with assistive technology, otherwise one or more groups of users with disabilities will find it impossible to access information. Satisfying this checkpoint is a basic requirement for some individuals to be able to use the Web.
[Priority 2]
This checkpoint should be implemented by user agents as a native feature or through compatibility with assistive technology, otherwise one or more groups of users will find it difficult to access information. Satisfying this checkpoint will remove significant barriers to accessing Web documents.
[Priority 3]
This checkpoint may be implemented by user agents as a native feature or through compatibility with assistive technology, to make it easier for one or more groups of users to access information. Satisfying this checkpoint will improve access to the Web for some individuals.

2.2 Conformance

The terms "must", "should", and "may" (and related terms) are used in this document in accordance with RFC 2119 ([RFC2119]).

This document defines two categories of conformance in order to promote a standard of accessibility within, and interoperability between, two important classes of user agents - graphical desktop browsers and dependent assistive technologies. The two categories of conformance are:

The conformance definitions use the following terms:

native support
A user agent supports a feature natively if it does not require another piece of software (e.g., plug-in or external program) for support.
recognize
A user agent is said to recognize markup, content types, or rendering effects when it can identify (through built-in mechanisms, DTDs, style sheets, headers, etc) the information. For instance, HTML 3.2 user agents may not recognize the new elements or attributes of HTML 4.0. Similarly, a user agent may recognize visually blinking content specified by elements or attributes, but may not recognize that an applet is blinking. The Techniques Document discusses some content that affects accessibility and should be recognized as such.
applicable checkpoint
A checkpoint applies to a user agent unless:

Conformance for desktop graphical user agents

In order to conform as a desktop graphical user agent, the user agent must do all of the following:

  1. Satisfy all the Priority 1 checkpoints listed in this document that apply to that class of user agent, and
  2. Satisfy those checkpoints natively unless the checkpoint explicitly indicates that it may be satisfied through communication with other software.

Even for those checkpoints that must be satisfied natively, desktop graphical user agents should make information available to other software through standard interfaces (e.g., specialized dependent user agents may provide a better solution to a problem than a desktop user agent).

Conformance for dependent user agents

In order to conform as a dependent user agent, the user agent must do all of the following:

  1. Satisfy all the Priority 1 checkpoints listed in this document that apply to that class of user agent.
  2. Satisfy those checkpoints natively unless the checkpoint explicitly indicates that it may be satisfied through communication with other software.

3 Terms and definitions

This section defines terms used in this document.

3.1 Documents, Elements, and Attributes

A document may be seen as a hierarchy of elements. Elements are defined by a language specification (e.g., HTML 4.0 or an XML application). Each element may have content, which generally contributes to the document's content. Elements may also have attributes that take values. Some attributes are integral to document accessibility (e.g., the "alt", "title", and "longdesc" attributes in HTML).

An element's rendered content is that which a user agent renders for the element. Often, this is what lies between the element's start and end tags. However, some elements cause external data to be rendered (e.g., the IMG element in HTML). At times, a browser may render the value of an attribute (e.g., "alt", "title" in HTML) in place of or in addition to the element's content. Rendering is not limited to only visual displays, but can also include audio (speech and sound) and tactile displays (braille and haptic displays).

3.2 Properties, Values, and Defaults

A user agent renders a document by applying formatting algorithms and style information to the document's elements. Formatting depends on a number of factors, including where the document is rendered: on screen, paper, through speakers, a braille device, a mobile device, etc. Style information (e.g., fonts, colors, voice inflection, etc.) may come from the elements themselves (e.g., certain style attributes in HTML), from style sheets, or from user agent settings. For the purposes of these guidelines, each formatting or style option is governed by a property and each property may take one value from a set of legal values. (The term "property" in this document has the meaning ascribed in the CSS2 Recommendation.) A reference to "styles" in this document means a set of style-related properties.

The value given to a property by a user agent when it is started up is called the property's default value. User agents may allow users to change default values through a variety of mechanisms (e.g., the user interface, style sheets, initialization files, etc.).

Once the user agent is running, the value of a property for a given document or part of a document may be changed from the default value. The value of the property at a given moment is called its current value. Note that changes in the current value of a property do not change its default value.

Current values may come from documents, style sheets, scripts, or the user interface. Values that come from documents, their associated style sheets, or via a server are called author styles. Values that come from user interface settings, user style sheets, or other user interactions are called user styles.

3.3 Views, Viewports, and Point of Regard

User agents may handle different types of source information: documents, sound objects, video objects, etc. The user perceives the information through a viewport, which may be a window, frame, a piece of paper, a speaker, a virtual magnifying glass, etc. A viewport may contain another viewport (e.g., nested frames, plug-ins, etc.).

User agents may render the same source information in a variety of ways; each rendering is called a view. For instance, a user agent may allow users to view a document in one window and a generated list of headers for the document in another.

The view is how source information is rendered and the viewport is where it is rendered.

Generally, viewports give users access to all rendered information, though not always at once. For example, a video player shows a certain number of frames per second, but allows the user to rewind and fast forward. A visual browser viewport generally features scrollbars or some other paging mechanism that allows the user to bring the rendered content into the viewport.

The content currently available in the viewport is called the user's point of regard. The point of regard may be a two dimensional area (e.g., for graphical rendering) or a single point (e.g., for aural rendering or voice browsing). User agents should not change the point of regard unexpectedly as this can disorient users.

3.4 Focus, Selection, and Insertion Point

User agents generally offer several mechanisms for referring to parts of content in a view: focus, selection, and insertion point.

The user focus

The user focus designates an active element in a document. Which elements are active depends on the document language. In HTML documents, for example, active elements include links, form controls, elements with a value for the "longdesc" attribute, and elements with associated scripts. An element with the focus may be activated through any number of mechanisms, including the mouse, keyboard, an API, etc.

The effect of activation depends on the element. For instance, when a link is activated, the user agent generally retrieves the linked resource, which may be another Web page, program, etc. When a form control is activated, it may change state (e.g., check boxes) or may take user input (e.g., a text field). Activating an element with a script assigned for that particular activation mechanism (e.g., mouse down event, key press event, etc.) causes the script to be executed.

A view has at most one focus. When several views co-exist, each may have a focus, but only one is active, called the current focus. The current focus is generally presented (e.g., highlighted) in a way that makes it stand out.

The user selection

The user selection generally specifies a range of content (text, images, etc.) in a document. The range may be restricted to the content of a single element or may span several elements. The selection may be used for a variety of purposes: for cut and paste operations, to designate a specific element in a document, to identify what a screen reader should read, etc.

The user selection may be set by the user (e.g., by a pointing device or the keyboard) or through an application programming interface (API). A view has at most one user selection. When several views co-exist, each may have a user selection, but only one is active, called the current user selection.

The user selection is usually presented in a way the stands out (e.g., highlighted). On the screen, the selection may be highlighted using colors, fonts, graphics, or other mechanisms. Highlighted text is often used by dependent user agents to indicate through speech or braille output what the user wants to read. Most screen readers are sensitive to highlight colors. Dependent user agents may provide alternative presentation of the selection through speech, enlargement, or refreshable braille display.

Both the current focus and the current user selection must be in the same view, called the current view. The current view is generally highlighted when several views co-exist.

The insertion point.

The insertion point is the location where document editing takes place. The insertion point may be set by the user (e.g., by a pointing device or the keyboard editing keys) or through an application programming interface (API). A view has at most one insertion point. When several views co-exist, each may have an insertion point, but only one is active, called the current insertion point

The insertion point is generally rendered specially (e.g., on the screen, by a vertical bar or similar cursor).

3.5 Events and scripting

When certain events occur (document loading or unloading events, mouse press or hover events, keyboard events, etc.), user agents often perform some task (e.g., execute a script). For instance, in most user agents, when a mouse button is released over a link, the link is activated and the linked resource retrieved. User agents may also execute author-defined scripts when certain events occur. The script bound to a particular event is called an event handler. Note. The interaction of HTML, style sheets, the Document Object Model [DOM1] and scripting is commonly referred to as "Dynamic HTML" or DHTML. However, as there is no W3C specification that formally defines DHTML, this document will only refer to event handlers and scripts.

3.6 Alternative representations of content

Certain types of content (e.g., images, audio, video, applets, etc.) may not be accessible to all users, so user agents must ensure that users have access to author-supplied alternative representations of content. The Techniques Document describes the different mechanisms authors may use to supply alternative representations of content. Please also consult the Web Content Accessibility Guidelines ([WAI-PAGEAUTH]).


4 Ensure that the user interface is accessible

Guideline 4.1 Ensure accessible product installation, documentation, and configuration

User agent accessibility requires that the user be able to install the software, learn about its features, configure it, and find help when necessary.

Documentation must be accessible so that users may learn about software features, notably those that relate to accessibility. Users who may not be able to access print material, including individuals with visual impairments, learning disabilities, or movement impairments, may be able to use accessible electronic documentation or documents in alternative hardcopy formats.

Documentation includes all product documentation, notably installation instructions, the help system, and all product manuals.

4.1.1 [Priority 1]
Ensure that the software may be installed in a device-independent manner using any supported input and output devices.
4.1.2 [Priority 1]
Ensure that all product documentation conforms to the Web Content Accessibility Guidelines ([WAI-PAGEAUTH]).
4.1.3 [Priority 2]
Describe product features known to promote accessibility in a section of the product documentation.
4.1.4 [Priority 2]
Allow the user to configure the user agent in named profiles that may be shared (by other users or software).

See also checkpoint 7.2.4.

Guideline 4.2 Support input and output device-independence

One of the keys to an accessible user interface is device-independence. Users must be able to interact with a user agent (and the document it renders) using the supported input and output devices of their choice. Input devices may include pointing devices, keyboards, braille devices, head wands, microphones, and others. Output devices may include monitors, speech synthesizers, braille devices, and printers.

Please note that "device-independent support" does not mean that user agents must support every input or output device. User agents should offer redundant input and output mechanisms for those devices that are supported. For example, if a user agent supports keyboard and mouse input, users should be able to interact with all features using either the keyboard or the mouse.

4.2.1 [Priority 1]
Ensure that all functionalities offered by the user agent interface are available through all supported input devices. These include the installation procedure, access to documentation, and software configuration.
4.2.2 [Priority 1]
Ensure that all messages to the user (e.g., warnings, errors, etc.) are available in an output device-independent manner using any supported output devices.
4.2.3 [Priority 1]
Ensure that the user can activate the links and form controls in a document in an input device-independent manner.

Guideline 4.3 Support accessible keyboard input

For those user agents that support keyboard input, the input methods must be accessible. Some users require single-key access, others require that keys activated in combination be physically close together, while others require that they be spaced physically far apart. Configurability is vital to accessible keyboard input.

The more apparent the keyboard commands are to all users, the more likely it is that new users with disabilities will find them and use them.

4.3.1 [Priority 2]
Allow the user to configure keyboard access to user agent functionalities. Configuration includes the ability to specify single keystroke commands as well as commands that require keystroke combinations.
4.3.2 [Priority 2]
Ensure that user can find out about all keyboard bindings (e.g., through menus).
4.3.3 [Priority 2]
Provide a mechanism to render the presence of a keyboard binding for an active element.

Guideline 4.4 Ensure that users can disable features that might interfere with accessibility

Users must be able to turn on and off support for features that may interfere with accessibility. User agents are only expected to provide this control for content that it recognizes. See also guideline 5.1.

4.4.1 [Priority 1]
Allow the user to turn on and off rendering of images.
4.4.2 [Priority 1]
Allow the user to turn on and off rendering of background images.
4.4.3 [Priority 1]
Allow the user to turn on and off rendering of video.
4.4.4 [Priority 1]
Allow the user to turn on and off rendering of sound.
4.4.5 [Priority 1]
Allow the user to turn on and off rendering of captions.
4.4.6 [Priority 1]
Allow the user to turn on and off animated or blinking text.
4.4.7 [Priority 1]
Allow the user to turn on and off animations and blinking images.
4.4.8 [Priority 1]
Allow the user to turn on and off support for scripts and applets.
4.4.9 [Priority 1]
Allow the user to turn on and off support for user style sheets.
4.4.10 [Priority 1]
Allow the user to turn on and off support for author style sheets.
4.4.11 [Priority 2]
Allow the user to turn on and off rendering of frames.
4.4.12 [Priority 1]
Allow the user to turn on and off support for spawned windows.
4.4.13 [Priority 3]
Allow the user to turn on and off automatic page forwarding.
4.4.14 [Priority 3]
Allow the user to turn on and off automatic page refresh.

5 Ensure that content is accessible

In order to access a document, some users may require that it be rendered in a manner other than what the author intended. Users who are color-deficient may not be able to perceive certain color combinations. Users with low vision may require large fonts. Users who are blind may require audio or tactile rendering. Users who are deaf may require captions for audio files.

User agents must therefore allow the user to control:

Guideline 5.1 Ensure user control over document styles

The user must be able to control the colors, fonts and other stylistic aspects of a document and to override (have final control over) author styles and user agent default styles. Otherwise, users who are blind, have visual impairments, some types of learning disabilities, or any user who cannot or has chosen not to view the primary representation of information will not know content of the information on the page.

The following checkpoints state which styles the user must be able to control. The checkpoints also require user agents to allow users to override author styles and user agent defaults. The checkpoints apply to alternative representations of content as well as primary content.

Checkpoints for fonts and colors:

5.1.1 [Priority 1]
Allow the user to control font family.
5.1.2 [Priority 1]
Allow the user to control font size.
5.1.3 [Priority 1]
Allow the user to control foreground color.
5.1.4 [Priority 1]
Allow the user to control background color.
5.1.5 [Priority 1]
Allow the user to control selection highlighting (e.g., foreground and background color).
5.1.6 [Priority 1]
Allow the user to control focus highlighting (e.g., foreground and background color).

See also checkpoints 5.3.6 and 5.3.7.

Checkpoints for applets and animations:

5.1.7 [Priority 2]
Allow the user to control animation rate.

Checkpoints for video.

5.1.8 [Priority 1]
Allow the user to control video frame rates.
5.1.9 [Priority 2]
Allow the user to start, stop, pause, and rewind video.
5.1.10 [Priority 1]
Allow the user to control the position of captions.

Checkpoints for audio:

5.1.11 [Priority 1]
Allow the user to control audio playback rate.
5.1.12 [Priority 2]
Allow the user to start, stop, pause, and rewind audio.
5.1.13 [Priority 2]
Allow the user to control audio volume.

Checkpoints for speech:

5.1.14 [Priority 1]
Allow the user to control speech playback rate.
5.1.15 [Priority 2]
Allow the user to control speech volume, pitch, gender and other articulation characteristics.

Checkpoints for changes to the user interface:

5.1.16 [Priority 2]
When new windows or user interface components are spawned, allow the user to control window size and position.

Guideline 5.2 Ensure user control over alternative representations of content

User agents must give users access to author-supplied alternative representations of content (descriptions of images, captions for video or audio, etc.) since some users cannot perceive the primary content due to a disability or a technological limitation (e.g., browser configured not to display images). See also guideline 5.3.

General checkpoints:

5.2.1 [Priority 1]
Ensure that the user has access to alternative representations of content (e.g., the value of "alt" in HTML or SMIL, the resource designated by "longdesc", or the content of OBJECT in HTML 4.0, the "summary" attribute for tables in HTML, etc.).
5.2.2 [Priority 2]
When no alternative text representation has been specified, indicate what type of object is present.
5.2.3 [Priority 3]
When alternative text has been specified explicitly as empty (i.e., an empty string), render nothing.

Checkpoints for audio:

5.2.4 [Priority 1]
If a technology allows for more than one caption or description track for audio, allow the user to choose from among tracks.
5.2.5 [Priority 2]
Allow the user to specify that captions for audio be rendered at the same time as the audio.

Checkpoints for video:

5.2.6 [Priority 1]
If a technology allows for more than one caption or description track (e.g., text, video of sign language, etc.) for video, allow the user to choose from among tracks.
5.2.7 [Priority 1]
If a technology allows for more than one audio track for video, allow the user to choose from among tracks.
5.2.8 [Priority 1]
Allow the user to specify that captions or descriptions for video be rendered at the same time as the video.
5.2.9 [Priority 2]
Allow the user to specify that audio descriptions of video be rendered at the same time as the video.

Guideline 5.3 Ensure that links are accessible

For all link navigation or searching, the focus is moved to the target link. See also guideline 4.3.

5.3.1 [Priority 2]
Allow the user to navigate sequentially among links. See also checkpoint 6.2.1.
5.3.2 [Priority 1]
Allow the user to search for a link in the current document based on its link text.
5.3.3 [Priority 1]
Allow the user to search for a link based on its attribute values.
5.3.4 [Priority 1]
Allow the user to move the focus to a link based on its integer (tabbing-order) position.
5.3.5 [Priority 2]
Provide the user with information about the number of links in a document.
5.3.6 [Priority 3]
Provide a mechanism (e.g., through style sheets) to distinguish visited links from unvisited links.
5.3.7 [Priority 3]
Allow the user to specify (e.g., through style sheets) that images used in links must have borders.

The following checkpoints refer to links to long descriptions of content. See also guideline 5.2.

5.3.8 [Priority 2]
Allow the user to navigate among elements with associated long descriptions. See also checkpoint 6.2.1.
5.3.9 [Priority 2]
Allow the user to search linked long description text (i.e., in another document). In case of a match, the focus should be moved to the link in the current document.

Guideline 5.4 Ensure that tables are accessible

Tables were designed to structure relationships among data. In visual media, tables are often rendered on a two-dimensional grid, but this is just one possible interpretation of the data. On the Web, the HTML TABLE element has been used more often than not to achieve a formatting effect ("layout tables") rather than as a way to structure true tabular data ("data tables")

Layout tables cause problems for some screen readers and when rendered, confuse users. Even data tables can be difficult to understand for users that browse in essentially one dimension, i.e. for whom tables are rendered serially. Large tables pose particular problems since remembering cell position and header information becomes more difficult as the table grows.

User agents facilitate browsing by providing access to specific table cells and their associated header information. How headers are associated with table cells is markup language-dependent.

Tabular navigation is required by people with visual impairments and some types of learning disabilities to determine the content of a particular cell and spatial relationships between cells (which may convey information). If table navigation is not available users with some types of visual impairments and learning disabilities may not be able to understand the purpose of a table or table cell.

5.4.1 [Priority 1]
Provide access to the contents of a specific table cell.
5.4.2 [Priority 1]
Provide access to header information for a specific table cell.
5.4.3 [Priority 2]
Allow the user to navigate among tables in a document. See also checkpoint 6.2.1.
5.4.4 [Priority 1]
Allow the user to navigate among table cells of a table (notably left and right within a row and up and down within a column).
5.4.5 [Priority 2]
Allow the user to search for a table cell based on its contents or header information.
5.4.6 [Priority 2]
Allow the user to select a table cell and find out its row/column coordinates in the table.
5.4.7 [Priority 2]
Allow the user to find out the dimensions of a table.
5.4.8 [Priority 2]
Allow the user to find out the number of tables in a document.

Guideline 5.5 Ensure that forms are accessible

For all form control navigation or searching, the focus is moved to the target form control. See also guideline 4.3.

5.5.1 [Priority 2]
Allow the user to navigate among form controls within a form. See also checkpoint 6.2.1.
5.5.2 [Priority 2]
Allow the user to navigate among forms in a document. See also checkpoint 6.2.1.
5.5.3 [Priority 1]
Allow the user to search for a form control based on its text content.
5.5.4 [Priority 1]
Allow the user to search for a form control based on its attribute values.
5.5.5 [Priority 2]
Provide the user with access to any label explicitly associated with a form control.
5.5.6 [Priority 2]
Provide the user with information about the number of forms in a document.
5.5.7 [Priority 2]
Provide the user with information about the number of controls in a form.
5.5.8 [Priority 3]
Allow the user to request to be prompted before a form is submitted.

6 Help the user remain oriented

Orientation - the sense of where one is within a document or series of documents - is fundamental to a successful Web experience. Visual clues that help orientation often abound:

Not all users can use visual orientation clues, however, so user agents must complement them with other mechanisms, including:

See also guidelines 5.3, 5.4, and 5.5.

Guideline 6.1 Provide information about the document view

Users that are viewing documents through linear channels of perception like speech (since speech is temporal in nature) and tactile displays (current tactile technology is limited in the amount of information that can be displayed) have difficulty maintaining a sense of their relative position in a document. The meaning of "relative position" depends on the situation. It may mean the distance from the beginning of the document to the point of regard (how much of the document has been read), it may mean the cell currently being examined in a table, or the position of the current document in a set of documents.

For people with visual impairments, blindness, or certain types of learning disabilities, it is important that the point of regard remain as stable as possible. The user agent should not disturb the user's point of regard by shifting focus to a different frame or window when an event occurs without notifying the user of the change.

6.1.1 [Priority 1]
Provide a mechanism for highlighting and identifying (through a standard interface where available) the current view.
6.1.2 [Priority 1]
Provide a mechanism for highlighting and identifying (through a standard interface where available) the user selection.
6.1.3 [Priority 1]
Provide a mechanism for highlighting and identifying (through a standard interface where available) the current focus.
6.1.4 [Priority 2]
Ensure that when the selection changes, it is in the viewport after the change.
6.1.5 [Priority 2]
Ensure that when the focus changes, it is in the viewport after the change.
6.1.6 [Priority 1]
Allow the user to navigate views (notably those with frame viewports). Navigating into a view makes it the current view.
6.1.7 [Priority 1]
Keep track of the user's point of regard in each view and restore it when the user returns to the view.
6.1.8 [Priority 2]
Provide the user with information about the number of viewports.
6.1.9 [Priority 2]
When a document is loaded or when requested by the user, make available document summary information.
6.1.10 [Priority 2]
Provide the user with information about how much of the document has been viewed (i.e., where the point of regard is with respect to the beginning of the document).
6.1.11 [Priority 3]
Provide the user with information about document loading status (e.g., whether loading has stalled, whether enough of the page has loaded to begin navigating, whether following a link involves a fee, etc.)

Guideline 6.2 Provide information about document structure

Hierarchical navigation (through the document tree) is useful for efficiently navigating the major topics and sub-topics of a document.

6.2.1 [Priority 1]
Allow the user to navigate sequentially among all active elements in the document. See also checkpoints 5.3.1, 5.3.8, 5.4.3, 5.5.1, and 5.5.2.
6.2.2 [Priority 2]
Allow the user to view a document outline constructed from its structural elements (e.g., from header and list elements).
6.2.3 [Priority 2]
Allow the user to navigate the document tree.
6.2.4 [Priority 2]
Allow the user to navigate sequentially among headers.
6.2.5 [Priority 2]
Allow the user to navigate sequentially among block elements (e.g., paragraphs, lists and list items, etc.)
6.2.6 [Priority 2]
Allow the user to search for content. In case of a match, move the selection to the content.

Guideline 6.3 Provide information about events

It is important to alert users, in an output device-independent fashion, when important events occur during a browsing session. To avoid confusion that the effects of scripts may cause, users should be notified when scripts are executed (or be able to disable scripts entirely). This is also important for security reasons; users should be able to decide whether to allow scripts to execute on their machines.

6.3.1 [Priority 1]
Allow the user to navigate among elements with associated event handlers.
6.3.2 [Priority 2]
Alert the user when scripts or applets are executed.
6.3.3 [Priority 3]
Provide information about document changes resulting from the execution of a script.

7 Follow W3C Recommendations and use standard interfaces

Many types of software: assistive technologies, scripting tools, automated test engines, etc., benefit from having access to user agent information.

Guideline 7.1 Support language accessibility features

A user agent that supports a language should implement the accessibility features for the language. The techniques document lists the accessibility features of the following languages, defined by W3C specifications:

7.1.1 [Priority 1]
Support accessibility features defined by W3C Recommendations for HTML.
7.1.2 [Priority 1]
Support accessibility features defined by W3C Recommendations for CSS.
7.1.3 [Priority 1]
Support accessibility features defined by W3C Recommendations for SMIL.

Guideline 7.2 Use and provide accessible interfaces to other technologies

When a user agent communicates with other software (dependent user agents, the operating system, plug-ins), must do so through applicable interfaces. To promote interoperability, open standards should be used wherever possible.

Some operating systems have operating system-level flags and settings that are pertinent to accessibility, such as high-contrast colors and "show" sounds for people with hearing impairments. User agents should take these global settings into account for their own settings.

7.2.1 [Priority 1]
For desktop graphical browsers. Export programmatic interfaces to ATs and follow operating system conventions to do so (e.g., Microsoft Active Accessibility, Sun Microsystems Java Accessibility).
7.2.2 [Priority 1]
For desktop graphical browsers. Ensure that exported interfaces conform to those specified by a W3C DOM Recommendation.
7.2.3 [Priority 1]
Use standard interfaces defined for the operating system.
7.2.4 [Priority 2]
Follow operating system conventions and accessibility settings in user interface design, configuration (including configuration profiles), product installation, and documentation.

8 Acknowledgments

Many thanks to the following people who have contributed through review and comment: Paul Adelson, James Allan, Denis Anson, Kitch Barnicle, Harvey Bingham, Olivier Borius, Judy Brewer, Bryan Campbell, Kevin Carey, Wendy Chisholm, David Clark, Chetz Colwell, Wilson Craig, Nir Dagan, Daniel Dardailler, B. K. Delong, Neal Ewers, Geoff Freed, John Gardner, Al Gilman, Larry Goldberg, John Grotting, Markku Hakkinen, Earle Harrison, Chris Hasser, Kathy Hewitt, Philipp Hoschka, Masayasu Ishikawa, Phill Jenkins, Leonard Kasday, George Kerscher, Marja-Riitta Koivunen, Josh Krieger, Catherine Laws, Greg Lowney, Scott Luebking, William Loughborough, Napoleon Maou, Charles McCathieNevile, Masafumi Nakane, Mark Novak, Charles Oppermann, Mike Paciello, David Pawson, Michael Pederson, Helen Petrie, David Poehlman, Michael Pieper, Jan Richards, Hans Riesebos, Joe Roeder, Lakespur L. Roca, Greg Rosmaita, Lloyd Rutledge, Liam Quinn, T.V. Raman, Robert Savellis, Rich Schwerdtfeger, Constantine Stephanidis, Jim Thatcher, Jutta Treviranus, Claus Thogersen, Steve Tyler, Gregg Vanderheiden, Jaap van Lelieveld, Jon S. von Tetzchner, Willie Walker, Ben Weiss, Evan Wies, Chris Wilson, Henk Wittingen, and Tom Wlodkowski,

9 References

[CSS1]
"CSS, level 1 Recommendation", B. Bos, H. Wium Lie, eds. The CSS1 Recommendation is:
http://www.w3.org/TR/1999/REC-CSS1-19990111.
[CSS2]
"CSS, level 2 Recommendation", B. Bos, H. Wium Lie, C. Lilley, and I. Jacobs, eds. The CSS2 Recommendation is:
http://www.w3.org/TR/1998/REC-CSS2-19980512.
[DOM1]
"Document Object Model (DOM) Level 1 Specification", V. Apparao, S. Byrne, M. Champion, S. Isaacs, I. Jacobs, A. Le Hors, G. Nicol, J. Robie, R. Sutor, C. Wilson, and L. Wood, eds. The DOM Level 1 Recommendation is:
http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001.
[HTML40]
"HTML 4.0 Recommendation", D. Raggett, A. Le Hors, and I. Jacobs, eds. The HTML 4.0 Recommendation is:
http://www.w3.org/TR/1998/REC-html40-19980424.
[HTML32]
"HTML 3.2 Recommendation", D. Raggett, ed. The HTML 3.2 Recommendation is:
http://www.w3.org/TR/REC-html32.
[MATHML]
"Mathematical Markup Language", P. Ion and R. Miner, eds. The MathML 1.0 Recommendation is:
http://www.w3.org/TR/1998/REC-MathML-19980407.
[RFC2119]
"Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March 1997. Available at http://www.ietf.org/rfc/rfc2119.txt
[SMIL]
"Synchronized Multimedia Integration Language (SMIL) 1.0 Specification", P. Hoschka, editor. The SMIL 1.0 Recommendation is:
http://www.w3.org/TR/1998/REC-smil-19980615
[WAI-AUTOOLS]
"Authoring Tool Accessibility Guidelines", J. Treviranus, J. Richards, I. Jacobs, C. McCathieNevile, eds. The latest Working Draft of these guidelines for designing accessible authoring tools is available at:
http://www.w3.org/TR/WD-WAI-AUTOOLS/
[WAI-PAGEAUTH]
"Web Content Accessibility Guidelines", W. Chisholm, G. Vanderheiden, and I. Jacobs, eds. The latest Working Draft of these guidelines for designing accessible Web pages and sites is available at:
http://www.w3.org/TR/WD-WAI-PAGEAUTH.
[XML]
"Extensible Markup Language (XML) 1.0.", T. Bray, J. Paoli, C.M. Sperberg-McQueen, eds. The XML 1.0 Recommendation is:
http://www.w3.org/TR/1998/REC-xml-19980210