
- This version:
-
http://www.w3.org/WAI/UA/WD-UAAG10-TECHS-20021003/
- Latest version:
-
http://www.w3.org/WAI/UA/UAAG10-TECHS/
- Previous version:
-
http://www.w3.org/WAI/UA/WD-UAAG10-TECHS-20020807/
- Editors:
- Ian Jacobs, W3C
Jon Gunderson, University of Illinois at
Urbana-Champaign
Eric Hansen, Educational Testing
Service
- Authors and Contributors:
- See acknowledgements.
This document is also available in these non-normative formats:
single HTML, plain
text, gzip
PostScript,
Black/white gzip PostScript,
gzip PDF, gzip
tar file of HTML, and
zip
archive of HTML. Note: Some user agents unzip the gzipped
files on the fly without changing the file suffix. If you encounter problems
reading the gzipped files, remove the .gz suffix and try
again.
Copyright © 1999 - 2002 W3C® (MIT,
INRIA, Keio), All Rights
Reserved. W3C
liability,
trademark, document
use and software
licensing rules apply.
This document provides techniques for satisfying the checkpoints defined in
"User Agent Accessibility Guidelines 1.0" [UAAG10]. These techniques address
key aspects of the accessibility of user interfaces, content rendering,
application programming interfaces (APIs), and languages
such as the Hypertext Markup Language (HTML), Cascading Style Sheets
(CSS) and the Synchronized
Multimedia Integration Language (SMIL).
The techniques listed in this document are not required for conformance to
the Guidelines. These techniques are not necessarily the only way of satisfying
the checkpoint, nor are they a definitive set of requirements for satisfying a
checkpoint.
This section describes the status of this document at the time of its
publication. Other documents may supersede this document. The latest status of
this document series is maintained at the W3C.
This is the 3 October 2002 Working Draft of "Techniques for User Agent
Accessibility Guidelines 1.0". 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 participants in the User Agent Accessibility
Guidelines Working Group (UAWG).
While User Agent Accessibility Guidelines 1.0 strives to be a stable
document (as a W3C Recommendation), the current document is expected to evolve
as technologies change and content developers discover more effective
techniques for designing accessible Web sites and pages.
A list of changes
to this document is available.
The latest information regarding patent
disclosures related to this document is available on the Web. As of this
publication, there are no disclosures.
Please send comments about this document, including suggestions for
additional techniques, to the public mailing list w3c-wai-ua@w3.org; public archives are
available.
This document is part of a series of accessibility documents published by
the Web Accessibility Initiative (WAI) of the World Wide Web
Consortium (W3C). WAI
Accessibility Guidelines are produced as part of the WAI Technical Activity. The
goals of the User Agent Accessibility
Guidelines Working Group are described in the charter.
A list of current W3C Recommendations and
other technical documents can be found at the W3C Web site.
This document discusses implementation details that should be helpful to
understanding how to satisfy the requirements of "User Agent Accessibility
Guidelines 1.0"
[UAAG10]. This document includes:
- This section provides some context for using this document.
- Section 2 lists each checkpoint of "User Agent
Accessibility Guidelines 1.0" along with some possible techniques for
satisfying it.
- Section 3 discusses general topics
related to the implementation of accessibility features in user agents.
In an effort to improve the readability of this document, some information
from User Agent Accessibility Guidelines 1.0 has been copied here:
In an effort to reduce the size of the current document, some information
that is in User Agent Accessibility Guidelines 1.0 has not been copied
here:
- the introduction;
- the descriptions of how the guidelines and checkpoints are structured and
organized;
- the prose of each guideline (i.e., the text after the guideline title and
before the list of checkpoints);
- the conformance section (since one does not conform to the current
document, only to User Agent Accessibility Guidelines 1.0).
The current document includes a list of references
resources that is not part of User Agent Accessibility
Guidelines 1.0.
"Techniques for User Agent Accessibility Guidelines 1.0" and the "User Agent
Accessibility Guidelines 1.0" are part of a series of accessibility guidelines
published by the Web Accessibility
Initiative (WAI).
These documents explain the responsibilities of user agent developers in making
the Web more accessible to users with disabilities. The series also includes
the "Web Content Accessibility Guidelines 1.0" [WCAG10] (and techniques
[WCAG10-TECHS]), which explain the responsibilities of authors, and
the "Authoring Tool Accessibility Guidelines 1.0" [ATAG10] (and techniques
[ATAG10-TECHS]), which explain the responsibilities of authoring
tool developers.
This section lists each checkpoint of "User Agent Accessibility Guidelines
1.0"
[UAAG10] along with some possible techniques for satisfying it. Each
checkpoint definition includes a link to the checkpoint definition in "User
Agent Accessibility Guidelines 1.0". Each checkpoint definition is followed by
one or more of the following:
- Notes and rationale: Additional rationale and explanation
of the checkpoint;
- Who benefits: Which users with disabilities are expected
to benefit from user agents that satisfy the checkpoint;
- Example techniques: Some techniques to illustrate how a
user agent might satisfy the requirements of the checkpoint. Screen shots and
other information about deployed user agents have been included as sample
techniques. References to products are not endorsements of those products by
W3C;
- Doing more: Techniques to achieve more than what is
required by the checkpoint;
- Related techniques: Links to other techniques in section
3. The accessibility topics of section 3 generally apply to more than one
checkpoint.
- References: References to other guidelines,
specifications, or resources.
Note: Most of the techniques in this document are designed
for graphical browsers and multimedia players running on desktop computers.
However, some of them also make sense for assistive technologies and other user
agents. In particular, techniques about communication between user agents will
benefit assistive technologies. Refer, for example, to the appendix on loading assistive technologies for access to
the document object model.
Each checkpoint in this document is assigned a priority that indicates its
importance for users with disabilities.
- Priority 1
(P1)
- If the user agent does not satisfy this checkpoint, one or more groups of
users with disabilities will find it impossible to access the Web. Satisfying
this checkpoint is a basic requirement for enabling some people to access the
Web.
- Priority 2
(P2)
- If the user agent does not satisfy this checkpoint, one or more groups of
users with disabilities will find it difficult to access the Web. Satisfying
this checkpoint will remove significant barriers to Web access for some
people.
- Priority 3
(P3)
- If the user agent satisfies this checkpoint, one or more groups of users
with disabilities will find it easier to access the Web.
Note: This information about checkpoint priorities is
included for convenience only. For detailed information about conformance to
"User Agent Accessibility Guidelines 1.0" [UAAG10], please refer to that
document.
- Ensure that the user can operate
through keyboard input alone any user agent functionality available through the
user interface.
Note: For example, ensure that the user can interact with
enabled elements, select content,
navigate viewports, configure the user agent, access documentation, install the
user agent, and operate user interface
controls, all entirely through keyboard input.
User agents generally support at least three types of keyboard
operation:
- Direct (e.g., keyboard shortcuts such a "F1" to open the help menu; see checkpoint 11.4 for single-key
access requirements),
- Sequential (e.g., navigation
through cascading menus), and
- Spatial (e.g., when the keyboard is used to move the pointing device in two-dimensional visual space to manipulate a
bitmap image).
User agents should support direct or sequential keyboard operation for all
functionalities. Furthermore, the user agent should satisfy this checkpoint by
offering a combination of keyboard-operable user interface controls (e.g.,
keyboard operable print menus and settings) and direct keyboard shortcuts
(e.g., to print the current page).
It is also possible to claim
conformance to User Agent Accessibility Guidelines 1.0 [UAAG10] for
full support through pointing device input and/or voice input. See the section
on
Input modality labels in UAAG 1.0.
Notes and rationale
- It is up to the user agent developer to decide which functionalities are
best served by direct access, sequential access, and access through two-dimensional visual space. The UAAG 1.0 does
not discourage a pointing device interface, but it does require redundancy
through the keyboard. In most cases, developers can allow operation of the user
agent without relying on motion through
two-dimensional visual space; this includes text selection (a text caret
may be used to establish the start and end of the selection), region selection
(allow the user to describe the coordinates or position of the region, e.g.,
relative to the viewport), and drag-and-drop (allow the user to designate start
and end points and then say "go").
- For instance, the user must be able to do the following through the
keyboard alone (or pointing device alone or voice alone):
- Select content and operate on it. For
example, if the user can select rendered text with the mouse and make it the
content of a new link by pushing a button, they also need to be able to do so
through the keyboard and other supported devices. Other operations include cut,
copy, and paste.
- Set the focus on viewports and on enabled
elements.
- Install, configure, uninstall, and update the user agent software.
- Use the graphical user interface menus.
Some users may wish to use the graphical user interface even if they cannot use
or do not wish to use the pointing device.
- Fill out forms.
- Access documentation.
- Suppose a user agent such as a Web browser does not allow complete
operation through the keyboard alone. It is still possible to claim
conformance for the user agent in conjunction with another software
component that "fills in the gap".
Who benefits
- Users with blindness are most likely to benefit from direct access through
the keyboard, including navigation of user interface controls; this
is a logical navigation, not navigation in
two-dimensional visual space.
- Users with physical disabilities are most likely to benefit from a
combination of direct access and spatial access through the keyboard. For some
users with physical disabilities, moving the pointing device using a physical
mouse may be significantly more difficult than moving the pointing device with
arrow keys, for example.
- This checkpoint will also benefit users of many other alternative input
devices (which make use of the keyboard API) and also anyone without a
mouse.
- While keyboard operation is expected to improve access for many users,
operation by keyboard shortcuts alone may reduce accessibility (and usability)
by requiring users to memorize a long list of shortcuts. Developers should
provide mechanisms for contextual access to user agent functionalities
(including, for example, keyboard-operable cascading menus, context-sensitive
help, and keyboard operable configuration tabs) as well as direct access to
those functionalities. See
also checkpoint 11.5.
- Allow the user to activate, through keyboard input alone, all
input device event handlers that are explicitly
associated with the element designated by the
content focus.
- In order to satisfy provision
one of this checkpoint, the user must be able to activate as a group all event
handlers of the same input device event type.
- Provision one of this checkpoint applies to handlers of any input
device event type, including event types for keyboard, pointing device, and
voice input.
- The user agent is not required to allow activation of event handlers
associated with a given device (e.g., the pointing device) in any order other
than what the device itself allows (e.g., a mouse down event followed by a
mouse drag event followed by a mouse up event).
- The requirements for this checkpoint refer to any
explicitly associated input device
event handlers associated with an element, independent of the
input modalities for which the user agent conforms. For example, suppose
that an element has an explicitly associated handler for pointing device
events. Even when the user agent only conforms for keyboard input (and does not
conform for the pointing device, for example), this checkpoint requires the
user agent to allow the user to activate that handler with the keyboard.
- This checkpoint is mutually exclusive of checkpoint 1.1 since it
may be excluded from a
conformance profile, unlike other keyboard operation requirements.
-
Conformance profile labels:
Events.
Note: Refer to the checkpoints of guideline 9 for more information about focus
requirements.
Notes and rationale
- For example, users without a pointing device need to be able to activate form controls and links (including
the links in a client-side image map).
- Events triggered by a particular device generally follow a set pattern, and
often in pairs: start/end, down/up, in/out. One would not expect a "key down"
event for a given key to be followed by another "key down" event without an
intervening "key up" event.
Who benefits
- Users with blindness or some users with a physical disability, and anyone
without a pointing device.
Example techniques
- When using the "Document Object Model (DOM) Level 2 Events Specification"
[DOM2EVENTS], activate an event handler as described in
section 1.5:
- Create an event of the given type by calling
DocumentEvent.createEvent, which takes an event type as parameter,
then
- Dispatch this event using
EventTarget.dispatchEvent.
- To preserve the expected order of events, provide a dynamically changing
menu of available handlers. For example, an initial menu of handlers might only
allow the user to trigger a "mousedown" event. Once triggered, the menu would
not allow "mousedown" but would allow "mouseup" and "mouseover".
- In some markup languages, it is possible (though somewhat nonsensical) for
two actions to be assigned to the same input event type for a given element
(e.g., one through an explicit event handler and one "intrinsic" to the
element). In this case, offer the user a choice of which action to take.
- For example, in HTML 4 [HTML4], input device event handlers
are described in
section 18.2.3. They are:
onclick, ondblclick,
onmousedown, onmouseover, onmouseout,
onfocus, onblur, onkeypress,
onkeydown, and onkeyup.
- In "Document Object Model (DOM) Level 2 Events Specification"
[DOM2EVENTS], focus and activation types are discussed in
section 1.6.1. They are:
DOMFocusIn, DOMFocusOut,
and DOMActivate. These events are specified independent of a
particular input device type.
- In "Document Object Model (DOM) Level 2 Events Specification"
[DOM2EVENTS], mouse event types are discussed in
section 1.6.2. They are:
click, mousedown,
mouseup, mouseover, mousemove and
mouseout.
- The DOM Level 2 Events specification does not provide a key event
module.
- Sequential navigation
technique: Add each input device event handler to the navigation order (refer
to checkpoint 9.3). Alert the
user when the user has navigated to an event handler, and allow activation. For
example, an link that also has onMouseOver and onMouseOut event handlers
defined, might generate three "stops" in the navigation order: one for the link
and two for the event handlers. If this technique is used, allow configuration
so that input device event handlers are not inserted in the navigation
order.
- Query technique: Allow the user to query the element with content focus for
a menu of input device event handlers.
- Descriptive information about handlers can allow assistive technologies to
choose the most important functions for activation. This is possible in the
Java Accessibility API [JAVAAPI], which provides an an
AccessibleAction Java interface. This interface provides a list of actions and
descriptions that enable selective activation. See also checkpoint
6.3.
- Using MSAA
[MSAA] on the Windows platform:
- Retrieve the node in the document object that has current focus.
- Call the
IHTMLDocument4::fireEvent method on that node.
Related techniques
- See image map techniques.
References
- For information on how to register event handlers through the DOM, and
dispatch events properly, refer to
Section 1.3 Event listener registration in "Document Object Model (DOM)
Level 2 Events Specification" [DOM2EVENTS].
- For example,
section 16.5 of the SVG 1.0 Candidate Recommendation [SVG] specifies
processing order for user interface events.
-
Ensure that every message (e.g., prompt, alert, or
notification) that is a non-text element and
is part of the user agent user interface
has a text equivalent.
Note: For example, if the user is alerted of an event by an
audio cue, a visually-rendered text equivalent in the status bar could satisfy
this checkpoint. Per checkpoint
6.5, a text equivalent for each such message must be available through an
API. See also
checkpoint 6.6 for
requirements for programmatic notification of changes to the user
interface.
Notes and rationale
- User agents should use modality-specific messages in the user interface
(e.g., graphical scroll bars, beeps, and flashes) as long as redundant
mechanisms are available or possible. These redundant mechanisms will benefit
all users, not just users with disabilities.
Who benefits
- Users with blindness, deafness, or who are hard of hearing. Mechanisms that
are redundant to audio will benefit individuals who are deaf, hard of hearing,
or operating the user agent in a noisy or silent environment where the use of
sound is not practical.
Example techniques
- Render text messages on the status bar of the graphical user interface.
Allow users to query the viewport for this status information (in addition to
having access through graphical rendering).
- Make available information in a manner that allows other software to
present it according to the user's preferences. For instance, if proportional
scroll bars are used in the graphical interface to indicate the position of the
viewport in content, make available this same information in text form. For
instance, this will allow other software to render the proportion of content
viewed as synthesized speech or as braille.
Doing more
- Allow configuration to render or not render status information (e.g., allow
the user to hide the status bar).
2.1 Render content according to
specification. (P1)
Checkpoint 2.1
- Render content
according to format specification (e.g., for a markup language or style sheet
language).
- Rendering requirements include format-defined interactions between author
preferences and user preferences/capabilities (e.g., when to render the
"
alt" attribute in HTML, the rendering order of
nested OBJECT elements in HTML, test attributes in SMIL, and the
cascade in CSS2).
- When a rendering requirement of another specification contradicts a
requirement of UAAG 1.0, the user agent may disregard the rendering requirement
of the other specification and still satisfy this checkpoint; see the section
on the relation of User Agent Accessibility Guidelines 1.0 to general
software design guidelines and other specifications. for more
information.
- The user agent is not required to satisfy this checkpoint for all
implemented specifications; see the section on
conformance profiles for more information.
- This checkpoint excludes the requirements of checkpoint 2.6.
Note: If a conforming user agent does not render a content
type, it should allow the user to choose a way to handle that content (e.g., by
launching another application or by saving it to disk).
Notes and rationale
- Provision two of the checkpoint only applies when the rendering requirement
of another specification contradicts the requirements of the current document;
no exemption is granted if the other specification is consistent with or silent
about a requirement made by the current document.
Who benefits
- Users with disabilities when specifications include features that promote
accessibility (e.g., scalable graphics benefit users with low vision, style
sheets allow users to override author and user style sheets).
Example techniques
- Provide access to attribute values (one at a time, not as a group). For
instance, allow the user to select an element and read values for all
attributes set for that element. For many attributes, this type of inspection
should be significantly more usable than a view of the text source.
- When content changes dynamically (e.g., due to embedded scripts or
automatic content retrieval), users need to have access to the content before
and after the change.
- Make available information about abbreviation and acronym expansions. For
instance, in HTML, look for abbreviations specified by the ABBR and ACRONYM
elements. The expansion may be given with the "title" attribute (refer to the
Web Content Accessibility Guidelines 1.0 [WCAG10], checkpoint 4.2). To
provide expansion information, user agents may:
- Allow the user to configure that the expansions be used in place of the
abbreviations,
- Provide a list of all abbreviations in the document, with their expansions
(a generated glossary of sorts)
- Generate a link from an abbreviation to its expansion.
- Allow the user to query the expansion of a selected or input
abbreviation.
- If an acronym has no expansion in one location, look for another occurrence
in content that does. User agents may also look for possible expansions (e.g.,
in parentheses) in surrounding context, though that is a less reliable
technique.
Related techniques
- See the sections on access to content, link techniques, table
techniques, frame techniques, and form techniques.
Doing more
- If the requirements of the current document contradict the rendering
requirements of another specification, the user agent may offer a configuration
to allow conformance to one or the other specification.
References
- Sections 10.4 ("Client Error 4xx") and 10.5 ("Server Error 5xx") of the
HTTP/1.1 specification [RFC2616] state that user agents
should have the following behavior in case of these error conditions:
Except when responding to a HEAD request, the server SHOULD include an
entity containing an explanation of the error situation, and whether it is a
temporary or permanent condition. These status codes are applicable to any
request method. User agents SHOULD display any included entity to the user.
- For content
authored in text formats, provide a view of the text source.
- For the purposes of this checkpoint, a text format is:
- any media object given an Internet media type of "text" (e.g.,
"text/plain", "text/html", or "text/*") as defined in RFC 2046
[RFC2046], section 4.1, or
- any media object identified by Internet media type to be an an XML document
(as defined in [XML], section 2) or SGML application.
Refer, for example, to Internet media types defined in "XML Media Types"
[RFC3023].
- The user agent is only required to satisfy this checkpoint for text formats
that are part of a conformance claim; see the section on
conformance profiles for more information. However, user agents should
provide a text view for all implemented text formats.
Notes and rationale
- In general, user agent developers should not rely on a "source view" to
convey information to users, most of whom are not familiar with markup
languages. A source view is still important as a "last resort" to some users as
content might not otherwise be accessible at all.
Who benefits
- Users with blindness, low vision, deafness, hard of hearing, and any user
who requires the text source to understand the content.
Example techniques
- Make the text view useful. For instance, enable links (i.e.,
URIs), allowing searching and other navigation within the view.
- A source view is an easily-implementable view that will help users inspect
some types of content, such as style sheet fragments or scripts. This does not
mean, however, that a source view of style sheets is the best user
interface for reading or changing style sheets.
Doing more
- In the absence of authoritative Internet media type information to the
contrary, provide a text view of any media object identified as XML or SGML by
a DOCTYPE indication conforming to the rules of those formats. User agents
receive media objects in many ways. The HTTP protocol is somewhat reliable as
regards providing Internet media type information for the data so delivered.
The
file: and ftp: URI schemes, on the other hand, do
not provide this metadata. In cases like these, using the built-in markings of
XML and SGML objects is appropriate and should be expected.
- Allow
configuration to provide access to each piece of unrendered conditional content "C".
- When a specification does not explain
how to provide access to this content, do so as follows:
- If C is a summary, title, alternative, description, or expansion of another
piece of content D, provide access through at least one of the following
mechanisms:
- (1a) render C in place of D;
- (2a) render C in addition to D;
- (3a) provide access to C by allowing the user to query D. In this case, the
user agent must also alert the user, on a per-element
basis, to the existence of C (so that the user knows to query D);
- (4a) allow the user to follow a link to C from the context of D.
- Otherwise, provide access to C through at least one of the following
mechanisms:
- (1b) render a placeholder for C, and
allow the user to view the original author-supplied content associated with
each placeholder;
- (2b) provide access to C by query (e.g., allow the user to query an element
for its attributes). In this case, the user agent
must also alert the user, on a per-element basis, to the existence of C;
- (3b) allow the user to follow a link in context to C.
- To satisfy provision one of this checkpoint, the configuration may be a
switch that, for all content, turns on or off the access mechanisms described
in provision two.
- To satisfy provision two of this checkpoint, the user agent may provide
access on a per-element basis (e.g., by allowing the user to query individual
elements) or for all elements (e.g., by offering a configuration to render
conditional content all the time).
Note: For instance, an HTML user agent might allow users to
query each element for access to conditional content supplied for the
"alt", "title", and "longdesc"
attributes. Or, the user agent might allow configuration so that the value of
the "alt" attribute is rendered in place of all IMG
elements (while other conditional content might be made available through
another mechanism).
Notes and rationale
- There may be more than one piece of conditional content associated with
another piece of content (e.g., multiple captions tracks associated with the
visual track of a presentation).
- Note that the alert requirement of this checkpoint is per-element. A single
resource-level alert (e.g., "there is conditional content somewhere here") does
not satisfy the checkpoint, but may be part of a solution for satisfying this
checkpoint. For example, the user agent might indicate the presence of
conditional content "somewhere" with menu in the toolbar. The menu items could
provide both per-element alert and access to the content (e.g., by opening a
viewport with the conditional content rendered).
Who benefits
- Any user for whom the author has provided conditional content for
accessibility purposes. This includes: text equivalents for users with
blindness or low vision, or users who are deaf-blind, and captions, for users
who with deafness or who are hard of hearing.
Example techniques
- Allow users to choose more than one piece of conditional content at a given
time. For instance, users with low vision may want to view images (even
imperfectly) but require a text equivalent for
the image; the text may be rendered with a large font or as
synthesized speech.
- In HTML 4 [HTML4], conditional content
mechanisms include the following:
- Allow the user to
configure how the user agent renders a long description (e.g., "longdesc"
in HTML 4 [HTML4]). Some possibilities
include:
- Render the long description in a separate view.
- Render the long description in place of the associated element.
- Do not render the long description, but allow the user to query whether an
element has an associated long description (e.g., with a context-sensitive
menu) and provide access to it.
- Use an icon (with a text equivalent) to
indicate the presence of a long description.
- Use an audio cue to indicate the presence of a long description when the
user navigates to the element.
- For an object (e.g., an image) with an author-specified geometry that the
user agent does not render, allow the user to configure how the conditional
content should be rendered. For example, within the specified geometry, or by
ignoring the specified geometry altogether.
- For multimedia presentations with several alternative tracks, ensure access
to all tracks and allow the user to select individual tracks. (As an example,
the QuickTime player [QUICKTIME] allows users to turn
on and off any number of tracks separately.) For example, construct a list of
all available tracks from short descriptions provided by the author (e.g.,
through the "title" attribute).
- For multimedia presentations with several alternative tracks, allow users
to choose tracks based on natural language
preferences. SMIL 1.0
[SMIL] allows users to specify captions
in different natural languages. By setting language preferences in the SMIL
player (e.g., the G2 player [G2]), users may access captions (or
audio) in different languages. Allow users to specify different languages for
different content types (e.g., English audio and Spanish captions).
- If a multimedia presentation has several captions
(or subtitles) available, allow the user to choose from among them. Captions
might differ, for example, in level of detail, reading level or natural language. Multilingual
audiences may wish to have captions in different natural languages on the screen at
the same time. Users may wish to use both captions and audio descriptions
concurrently as well.
- Make apparent through the user agent user
interface which audio tracks are meant to
be played separately (e.g., by allowing the user to select each one
independently from a menu).
-
Section 7.8.1 of SMIL 2.0 [SMIL20] defines the 'readIndex'
attribute, which specifies the position of the current element in the order in
which values of the
longdesc, title, and
alt attributes are to be read aloud.
Related techniques
- See the section on access to content.
Doing more
- If the user agent satisfies the checkpoint by implementing 1b
(placeholders), allow the user to toggle back and forth between a placeholder
and the original author-supplied content. Some users with a cognitive
disability may find it difficult to access content after turning on rendering
of too many images (even when those images were turned on one by one). Sample
technique: allow the user to designate a placeholder and request to view the
associated content in a separate viewport (e.g., through a context menu), leaving the placeholder in context.
Allow the user to close the new viewport manually.
- Make information available with different levels of detail. For example,
for a voice browser, offer two options for
HTML
IMG elements:
- Speak only "alt" text by default, but allow the user to hear "longdesc"
text on an image by image basis.
- Speak "alt" text and "longdesc" for all images.
- Allow the user to configure different natural language preferences for
different types of conditional
content (e.g., captions and audio descriptions). Users with disabilities
may need to choose the language they are most familiar with in order to
understand a presentation for which supplementary tracks are not all available
in all desired languages. In addition, some users may prefer to hear the
program audio in its original language while reading captions in another,
fulfilling the function of subtitles or to improve foreign language
comprehension. In classrooms, teachers may wish to configure the language of
various multimedia elements to achieve specific educational goals.
2.4 Allow time-independent interaction.
(P1)
Checkpoint 2.4
- For rendered content where user input is
only possible within a finite time interval controlled by the user agent, allow
configuration to provide a view where user
interaction is time-independent.
- The user agent may satisfy this checkpoint by pausing processing
automatically to allow for user input, and resuming processing on explicit user request. When
this technique is used, pause at the end of each time interval where user input
is possible. In the paused state:
- Alert the user that the rendered content has been paused
(e.g., highlight the pause button in a multimedia player's control panel).
- Highlight which enabled elements are
time-sensitive.
- Allow the user to interact with the enabled elements.
- Allow the user to resume on explicit user request (e.g., by
pressing the play button in a multimedia player's control panel; see also checkpoint 4.5).
- The user agent may satisfy this checkpoint by generating a
time-independent (or, "static") view, based on the original content, that offers the user the same
opportunities for interaction. The static view should reflect the structure and
flow of the original time-sensitive presentation; orientation cues will help
users understand the context for various interaction opportunities.
- When satisfying this checkpoint for a real-time presentation, the user
agent may discard packets that continue to arrive after the construction of the
time-independent view (e.g., when paused or after the construction of a static
view).
- This checkpoint does not apply
when the user agent cannot
recognize the time interval in the presentation format, or when the user
agent cannot control the timing (e.g., because it is controlled by the
server).
Note: If the user agent satisfies this checkpoint by
pausing automatically, it may be necessary to pause more than once when there
are multiple opportunities for time-sensitive user interaction. When pausing,
pause synchronized content as well (whether rendered in the same or different
viewports) per checkpoint
2.6. In SMIL 1.0
[SMIL], for example, the "begin", "end",
and "dur" attributes synchronize
presentation components. See also checkpoint 3.5, which involves client-driven content
retrieval.
Notes and rationale
- The user agent could satisfy this checkpoint by allowing the user to step
through an entire presentation manually (as one might advance frame by frame
through a movie). However, this is likely to be tedious and lead to information
loss, so the user agent should preserve as much of the flow and order of the
original presentation as possible.
- The requirement to pause at the end (rather than at the beginning)
of a time-interval is to allow the user to review content that may change
during the elapse of this time.
- The configuration option is important because techniques used to satisfy
this checkpoint may lead to information loss for some types of content (e.g.,
highly interactive real-time presentations).
- When different streams of time-sensitive content are not synchronized (and
rendered in the same or different viewports), the user agent is not required to
pause the pieces all at once. The assumption is that both streams of content
will be available at another time.
Who benefits
- Some users with a physical disability who may not have the time to interact
with the content, and users with
serial access to content or who navigate sequentially.
Example techniques
- Some HTML user agents recognize time intervals specified through the
META element, although this usage is not defined in HTML 4 [HTML4].
- Render time-dependent links as a static list that occupies the same screen
real estate; authors may create such documents in SMIL 1.0 [SMIL]. Include
temporal context in the list of links. For example, provide the time at which
the link appeared along with a way to easily jump to that portion of the
presentation.
- For a presentation that is not "live", allow the user to choose from a menu
of available time-sensitive links (essentially making them
time-independent).
Doing more
- Provide a view where time intervals are lengthened, but not infinitely
(e.g., allow the user to multiple time intervals by 3, 5, and 10). Or, allow
the user to add extra time (e.g., 10 seconds) to each time interval.
- Allow the user to view a list of all media elements or links of the
presentations sorted by start or end time or alphabetically.
- Alert the user whenever pausing the user agent may lead to packet
loss.
References
- Refer to section
4.2.4 of SMIL 1.0
[SMIL] for information about the SMIL time model.
2.5 Make captions, transcripts, audio descriptions available. (P1)
Checkpoint 2.5
- Allow
configuration or control to render text transcripts, collated text transcripts,
captions, and audio descriptions in content at the same time as the associated audio tracks and
visual tracks.
Notes and rationale
- Users may wish to a read a transcript at the same time as a related visual
or audio track and pause the visual or audio track while reading; see checkpoint 4.5.
Who benefits
- Users with blindness or low vision (audio descriptions and text captions)
and users with deafness or who are hard of hearing.
Example techniques
- Allow users to turn on and off audio descriptions and captions.
- For the purpose of applying this clause, SMIL 1.0 [SMIL] user agents should recognize
as captions any media object whose reference from SMIL is guarded by the
'
system-captions' test attribute.
- SMIL user agents should allow users to configure whether they want to view
captions, and this user interface switch should be bound to the
'
system-captions' test attribute. Users should be able to indicate
a preference for receiving available audio descriptions. Note:
SMIL 1.0
[SMIL] does not include a mechanism analogous to 'system-captions'
for audio descriptions, though [SMIL20] does, called
'systemAudioDesc'.
- Another SMIL 1.0 test attribute, '
system-overdub-or-captions',
allows users to choose between subtitles and overdubs in multilingual
presentations. User agents should not interpret a value of
'caption' for this test attribute as meaning that the user prefers
accessibility captions; that is the purpose of the
'system-captions' test attribute. When subtitles and accessibility
captions are both available, users who are deaf may prefer to view captions, as
they generally contain information not in subtitles, including information on
music, sound effects, and who is speaking.
- User agents that play QuickTime movies should allow the user to turn on and
off the different tracks embedded in the movie. Authors may use these
alternative tracks to provide content for accessibility purposes. The Apple
QuickTime player provides this feature through the menu item "Enable
Tracks."
- User agents that play Microsoft Windows Media Object presentations should
provide support for Synchronized Accessible Media Interchange (SAMI [SAMI]), a protocol
for creating and displaying captions) and should allow users to configure how
captions are viewed. In addition, user agents that play Microsoft Windows Media
Object presentations should allow users to turn on and off other conditional content, including
audio description and alternative
visual tracks.
References
- Developers implementing SMIL 1.0 [SMIL] should consult "Accessibility
Features of SMIL" [SMIL-ACCESS].
2.6 Respect synchronization cues.
(P1)
Checkpoint 2.6
- Respect
synchronization cues (e.g., in markup) during rendering.
Notes and rationale
- The term "synchronization cues" refers to pieces of information that may
affect synchronization, such as the size and expected duration of tracks and
their segments, the type of element and how much those elements can be sped up
or slowed down (both from technological and intelligibility standpoints).
- Captions and audio descriptions may not make
sense unless rendered synchronously with related video or audio content. For
instance, if someone with a hearing disability is watching a video presentation
and reading associated captions, the captions should be
synchronized with the audio so that the individual can use any residual
hearing. For audio descriptions, it is crucial that an audio
track and an audio description track be synchronized to avoid having them
both play at once, which would reduce the clarity of the presentation.
Who benefits
- Users with deafness or who are hard of hearing (e.g., for audio
descriptions and audio tracks), and some users with a cognitive
disability.
Example techniques
- For synchronization in SMIL 2.0 [SMIL20], refer to section
10, the timing and synchronization module.
- The idea of "sensible time-coordination" of components in the definition of
synchronize centers on the idea of
simultaneity of presentation, but also encompasses strategies for handling
deviations from simultaneity resulting from a variety of causes. Consider how
deviations might be handled for captions for a multimedia
presentation such as a movie clip. Captions consist of a text equivalent of the
audio track that is synchronized with the
visual track. Typically, a segment of the captions appears visually near
the video for several seconds while the person reads the text. As the visual
track continues, a new segment of the captions is presented. However, a problem
arises if the captions are longer than can fit in the display space. This can
be particularly difficult if due to a visual disability, the font size has been
enlarged, thus reducing the amount of rendered caption text that can be
presented. The user agent needs to respond sensibly to such problems, for
example by ensuring that the user has the opportunity to navigate (e.g., scroll
down or page down) through the caption segment before proceeding with the next
segment of the visual track.
- Developers of user agents need to determine how they will handle other
synchronization challenges, such as:
- Under what circumstances will the presentation automatically pause? Some
circumstances where this might occur include:
- the segment of rendered caption text is more than can fit on the visual
display
- the user wishes more time to read captions or the collated text
transcript
- the audio description is of longer duration than the natural pause in the
audio.
- Once the presentation has paused, then under what circumstances will it
resume (e.g., only when the user signals it to resume, or based on a predefined
pause length)?
- If the user agent allows the user to jump to a location in a presentation
by activating a link, then how will related tracks behave? Will they jump as
well? Will the user be able to return to a previous location or undo the
action?
-
Allow configuration to generate repair text when the user agent recognizes that the author has failed to
provide conditional content that was
required by the format specification.
- The user agent may satisfy this checkpoint by basing the repair text on any
of the following available sources of information: URI reference, content type,
or element type. Note, however, that additional information that would enable
more helpful repair might be available but not "near" the missing conditional
content. For instance, instead of generating repair text on a simple URI
reference, the user agent might look for helpful information near a different
instance of the URI reference in the same document object, or might retrieve
useful information (e.g., a title) from the resource designated by the URI
reference.
Note: Some markup languages (such as HTML 4 [HTML4] and SMIL
1.0 [SMIL]
require the author to provide conditional content for some elements (e.g., the
"alt" attribute on the IMG
element).
Notes and rationale
- Following are some examples of conditional content that is required by
format specification:
- In HTML 4
[HTML4], "
alt" is required for the IMG and
AREA elements (for validation). (In SMIL 1.0 [SMIL], on the other
hand, "alt" is not required on media objects.)
- Whatever the format, text equivalents for non-text content are required by
the Web Content Accessibility Guidelines 1.0 [WCAG10].
- Conditional content may come from markup, or even inside images (e.g.,
refer to "Describing and retrieving photos using RDF and HTTP"
[PHOTO-RDF]).
Who benefits
- Users with blindness or low vision.
Example techniques
- When HTTP is used, HTTP headers provide information about the URI of the Web resource ("Content-Location") and
its type ("Content-Type"). Refer to the HTTP/1.1 specification [RFC2616],
sections 14.14 and 14.17, respectively. Refer to "Uniform Resource Identifiers
(URI): Generic Syntax" ([RFC2396], section 4) for
information about URI references, as well as the HTTP/1.1 specification
[RFC2616],
section 3.2.1.
- An image or another piece of content may appear several times in content.
If one instance has associated conditional content but others do not, reuse
what the author did provide.
- Repair content may be part of another piece of content. For instance, some
image formats allow authors to store metadata there; refer to "Describing and
retrieving photos using RDF and HTTP" [PHOTO-RDF].
Related techniques
- See content repair techniques, and cell header repair strategies.
Doing more
- When configured per provision one of this checkpoint, inform the user
(e.g., in the generated text itself) that this content was not provided by the
author.
- Use heuristics based on the specification format. For instance, if the
alt attribute is missing on the IMG element in HTML,
but the title attribute is present, base the repair content on the
title.
References
- The "Altifier Tool" [ALTIFIER] illustrates smart
techniques for generating text equivalents
(e.g., for images) when the author has not specified any.
- Additional repair techniques may be available from W3C's Evaluation and Repair Tools Working
Group.
- Allow at
least two configurations for when the user agent recognizes that conditional content required by
the format specification is present but
empty content:
Note: In some authoring scenarios,
empty content (e.g., alt="" in HTML) may make an appropriate
text equivalent, such as when non-text content has no other
function than pure decoration, or when an image is part of a "mosaic" of
several images and does not make sense out of the mosaic. Refer to the Web
Content Accessibility Guidelines 1.0 [WCAG10] for more information about
text equivalents.
Notes and rationale
- User agents should render nothing in this case because the author may
specify an empty text equivalent for content that
has no function in the page other than as decoration.
Who benefits
- Users with blindness or low vision.
Example techniques
- The user agent should not render generic labels such as "[INLINE]" or
"[GRAPHIC]" for empty conditional
content (unless configured to do so).
- If no captioning information is available and captioning is turned on,
render "No captioning information available" in the captioning region of the
viewport (unless configured not to generate repair content).
Doing more
- Labels (e.g., "[INLINE]" or "[GRAPHIC]") may be useful in some situations,
so the user agent may allow configuration to render "No author text" (or
similar) instead of empty conditional content.
2.9 Render conditional
content automatically. (P3)
Checkpoint 2.9
- Allow
configuration to render all conditional content
automatically.
- As part of satisfying
provision one of this checkpoint, provide access according to specification, or
where unspecified, by applying one of the techniques 1a, 2a, or 1b defined in
checkpoint 2.3.
- The user agent is not required to render all conditional content at the
same time in a single viewport.
- Conformance detail: For all
content.
Note: For instance, an HTML user agent might allow
configuration so that the value of the "alt" attribute is rendered in place of all
IMG elements (while other conditional content might be made
available through another mechanism). The user agent may offer multiple
configurations (e.g., a first configuration to render one type of conditional
content automatically and a second to render another type).
Who benefits
- Users who have difficulties with navigation and manual access to content,
including some users with a physical disability and users with blindness or low
vision.
Example techniques
- Provide a "conditional content view", where all content that is not
rendered by default is rendered in place of associated content. For example,
Amaya
[AMAYA] offers a "Show alternate" view that accomplishes this. Note,
however, cases where an element has more than one piece of associated
conditional content. For long conditional content, instead of rendering in
place, link to the content.
2.10 Don't render text in unsupported writing systems. (P3)
Checkpoint 2.10
- For graphical user agents, allow
configuration not to render text in
unsupported scripts (i.e., writing systems) when that text
would otherwise be rendered.
- When configured per provision one
of this checkpoint, indicate to the user in context that author-supplied
content has not been rendered due to lack of support for a writing system.
- This checkpoint does not require the user agent to allow different
configurations for different writing systems.
Note: This checkpoint is designed primarily to benefit
users with serial access to content or who navigate sequentially, allowing
them to skip portions of content that would be unusable if rendered graphically
as "garbage".
Notes and rationale
- A script is a means of supporting the visual rendering of content in a
particular natural language. So, for user agents that render content visually,
a user agent might not recognize "the Cyrillic script", which would mean that
it would not support the visual rendering of Russian, Ukrainian, and other
languages that employ Cyrillic when written.
- There may be cases when a conforming user agent supports a natural language
but a speech synthesizer does not, or vice versa.
Who benefits
- Users with serial access to content or who navigate sequentially.
Example techniques
- Use a text substitute or accessible graphical icon to indicate that content
in a particular language has not been rendered. For instance, a user agent that
does not support Korean (e.g., does not have the appropriate fonts or voice
set) should allow configuration to announce the language change with the
message "Unsupported language – unable to render" (e.g., when the
language itself is not recognized) or "Korean not supported – unable to
render" (e.g., when the language is recognized by the user agent does not have
resources to render it). The user should also be able to choose no alert of
language changes. Rendering could involve speaking in the designated natural
language in the case of a voice browser or screen reader. If the natural
language is not supported, the language change alert could be spoken in the
default language by a screen reader or
voice browser.
- A user agent may not be able to render all characters in a document
meaningfully, for instance, because the user agent lacks a suitable font. For
instance,
section 5.4 of HTML 4 [HTML4] recommends the following for
undisplayable characters:
- Adopt a clearly visible (or audible), but unobtrusive mechanism to alert
the user of missing resources.
- If missing characters are presented using their numeric representation, use
the hexadecimal (not decimal) form since this is the form used in character set
standards.
- When HTTP is used, HTTP headers provide information about content encoding
content language ("Content-Language"). Refer to the HTTP/1.1 specification
[RFC2616], section 14.12.
- CSS2's attribute selector may be used with the HTML "lang" or XML
"xml:lang" attributes to control rendering based on
recognized natural language information. Refer also to the ':lang'
pseudo-class ([CSS2], section 5.11.4).
Related techniques
- See techniques for generated content,
which may be used to insert text to indicate a language
change.
- See content repair techniques and accessibility and internationalization
techniques.
- See techniques for synthesized
speech.
Doing more
- The UAWG recognizes that the intent of this checkpoint
-- to reduce confusion and save time for the user -- applies to text rendered
as speech or braille as well, but those requirements are not part of UAAG 1.0,
in part due to lack of implementation experience.
References
- For information on language codes, refer to "Codes for the representation
of names of languages" [ISO639].
- Refer to "Character Model for the World Wide Web" [CHARMOD]. It
contains basic definitions and models, specifications to be used by other
specifications or directly by implementations, and explanatory material. In
particular, this document addresses early uniform normalization, string
identity matching, string indexing, and conventions for URIs.
In addition to the techniques below, refer also to the section on user control of style.
- Allow
configuration not to render background image
content.
- The user agent may satisfy this checkpoint with a configuration to not
render any images, including background images. However, user agents
should satisfy this checkpoint by allowing users to turn off background images
alone, independent of other types of images in
content.
- This checkpoint must be satisfied for all
implemented image specifications; see the section on
conformance profiles.
- When configured not to render background images, the user agent is not
required to retrieve them until the user requests them explicitly. When
background images are not rendered, user agents should render a solid
background color instead; see checkpoint 4.3 for information about text colors.
- This checkpoint only requires control of background images for "two-layered
renderings", i.e., one rendered background image with all other content
rendered "above it".
-
Conformance profile labels:
Image.
Note: When background images are not rendered, they are
considered conditional
content. See checkpoint
2.3 for information about providing access to conditional content.
Notes and rationale
- This checkpoint does not address issues of multi-layered renderings and
does not require the user agent to change background rendering for multi-layer
renderings (refer, for example, to the 'z-index' property in Cascading Style
Sheets, level 2 ([CSS2], section 9.9.1).
Who benefits
- Some users with a cognitive disability or color deficiencies who may find
it difficult or impossible to read superimposed text or understand other
superimposed content.
Example techniques
- If background images are turned off, make available to the user associated
conditional content.
- In CSS, background images may be turned on/off with the
'background' and 'background-image' properties ([CSS2], section 14.2.1).
Doing more
- Allow control of image depth in multi-layer presentations.
3.2
Toggle audio, video, animated images. (P1)
Checkpoint 3.2
- Allow
configuration not to render audio, video, or animated image content, except on explicit user request.
- The user agent may satisfy this checkpoint by making video and animated
images invisible and audio silent, but this technique is not
recommended.
- This configuration is required for content rendered without any user
interaction (including content rendered on load or as the result of a script),
as well as content rendered as the result of user interaction that is not an explicit user request (e.g.,
when the user activates a link).
- This checkpoint must be satisfied for all
implemented audio, video, and animated image specifications; see the
section on
conformance profiles.
- When configured not to render audio, video, or animated images except on
explicit user request, the user agent is not required to retrieve them until
the user requests them explicitly.
-
Conformance profile labels:
Animation,
Video,
Audio.
Note: See
guideline 4 for additional requirements related to the control of rendered
audio, video, and animated images. When these content types are not rendered,
they are considered conditional
content. See checkpoint
2.3 for information about providing access to conditional content.
Who benefits
- Some users with a cognitive disability, for whom an excess of visual
information (and in particular animated information) might make it impossible
to understand parts of content. Also, audio rendered automatically on load may
interfere with speech synthesizers.
Example techniques:
- For user agents that hand off content to different rendering engines, the
configuration should cause the content not to be handed off, and instead a
placeholder rendered.
- The "silent" or "invisible" solution for satisfying this checkpoint (e.g.,
by implementing the
'visibility' property defined in section 11.2 of CSS 2 [CSS2]) is not
recommended. This solution means that the content is processed, though not
rendered, and processing may cause undesirable side effects such as firing
events. Or, processing may interfere with the processing of other content
(e.g., silent audio may interfere with other sources of sound such as the
output of a speech synthesizer). This technique should be deployed with
caution.
- As a placeholder for an animated image, render a motionless image built
from the first frame of the animated image.
3.3
Toggle animated or blinking text. (P1)
Checkpoint 3.3
- Allow
configuration to render animated or blinking text content as motionless, unblinking text.
Blinking text is text whose visual rendering alternates between visible and
invisible, at any rate of change.
- In this configuration, the user must still have access to the same text
content, but the user agent may render it in a separate viewport (e.g., for
large amounts of streaming text).
- The user agent may satisfy this checkpoint by always
rendering animated or blinking text as motionless, unblinking text.
Note: Animation (a rendering effect) differs from streaming
(a delivery mechanism). Streaming content might be rendered as an animation
(e.g., an animated stock ticker or vertically scrolling text) or as static text
(e.g., movie subtitles, which are rendered for a limited time, but do not give
the impression of movement).
Notes and rationale
- The definition of blinking text is based on the CSS2 definition of the
'blink' value; refer to [CSS2], section 16.3.1.
Who benefits
- Users with photosensitive epilepsy (for whom flashing content may trigger
seizures) and users with some cognitive disorders (for whom the distraction may
make the content unusable). Blinking text can also affect screen reader users,
since screen readers (in conjunction with speech synthesizers or braille
displays) may re-render the text every time it blinks.
- Configuration is preferred as some users may benefit from blinking effects
(e.g., users who are deaf or hard of hearing). However, the priority of this
checkpoint was assigned on the basis of requirements unrelated to this
benefit.
Example techniques
- The user agent may render the motionless text in a number of ways. Inline
is preferred, but for extremely long text, it may be better to render the text
in another viewport, easily reachable from the user's browsing context.
- Allow the user to turn off animated or blinking text through the user agent user interface
(e.g., by pressing the Escape key to stop animations).
- Some sources of blinking and moving text are:
- The BLINK element in HTML. The BLINK element is not defined by a W3C
specification.
- The MARQUEE element in HTML. The MARQUEE element is not defined by a W3C
specification.
- The 'blink' value of the
'text-decoration' property in CSS ([CSS2], section 16.3.1).
- In JavaScript, to control the start and speed of scrolling for a
MARQUEE element:
document.all.myBanner.start();
document.all.myBanner.scrollDelay = 100
-
Allow configuration not to execute any executable
content (e.g., scripts and
applets).
Note: Scripts and applets may provide very useful
functionality, not all of which causes accessibility problems. Developers
should not consider that the user's ability to turn off scripts is an effective
way to improve content accessibility; turning off scripts means losing the
benefits they offer. Instead, developers should provide users with finer
control over user agent or content behavior known to raise accessibility
barriers. The user should only have to turn off scripts as a last resort.
Notes and rationale
- Executable content includes scripts, applets, and
ActiveX controls. This checkpoint does not apply to plug-ins;
they are not part of content.
- Executable content includes those that run "on load" (e.g., when a document
loads into a viewport) and when other events occur (e.g., user interface
events).
- Where possible, authors should encode knowledge in a declarative manner
(i.e., through static definitions and expressions) rather than in scripts.
Knowledge and behaviors embedded in scripts can be difficult or impossible to
extract, which means that user agents are less likely to be able to offer
control by the user over the script's effect. For instance, with SVG animation
(see chapter
19 of SVG 1.0
[SVG]), one can create animation effects in a declarative manner,
using recognizable elements and attributes.
Who benefits
- Some users with photosensitive epilepsy; flickering or flashing,
particularly in the 4 to 59 flashes per second (hertz) range, may trigger
seizures. Peak sensitivity to flickering or flashing occurs at 20 hertz. Some
executable content can cause the screen to flicker.
Example techniques
- Some user agents allow users to turn off scripts in the "Security" part of
the user interface. Since some users seeking accessibility features may not
think to look there, include the on/off switch in an accessibility part of the
user interface as well. Also, include a "How to turn off scripts" entry in the
documentation index.
- Allow users to turn on and off, independently, support for different
scripting languages. Note, however, that global configuration for all
executable content is likely to be more convenient for some users.
- Configuration of support for executable content should be decoupled from
other user agent features. For instance, the user should not lose style sheet
capabilities when executable content is turned off, or the inverse.
Related techniques
- See the section on script techniques.
Doing more
- When support for scripts is turned on, and when the user agent recognizes
that the