Techniques for User Agent Accessibility Guidelines 1.0
12 September 2001
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)
- This checkpoint must be satisfied by user agents,
otherwise 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)
- This checkpoint should be satisfied by user agents,
otherwise 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)
- This checkpoint may be satisfied by user agents to make it
easier for one or more groups of users with disabilities to access information.
Satisfying this checkpoint will improve access to the Web for some people.
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.
Checkpoints
1.1 Full keyboard access. (P1)
- Ensure that the user can operate through keyboard input alone any user
agent functionality available through the user
interface.
For both content and user agent.
Checkpoint 1.1
Note: User agents may support at least two types of
keyboard access to functionalities: direct access (where user awareness of a
location "in space" is not required, as is the case with keyboard shortcuts and
navigation of user agent menus) and spatial access (where the user moves the
pointing device "in space" via the keyboard). To satisfy this checkpoint, user
agents are expected to provide a mix of both types of keyboard access. User
agents should allow direct keyboard access where possible, and this may be
redundant with spatial input techniques. Furthermore, the user agent should
satisfy this requirement by offering a combination of keyboard-operable user
interface controls (e.g., keyboard operable print menus and settings) and
direct keyboard operation of user agent functionalities (e.g., a short cut to
print the current page). As examples of functionalities, ensure that the user
can interact with enabled
elements, select content, navigate viewports, configure the user
agent, access documentation, install the user agent, operate controls of the
user interface, etc., all entirely through keyboard input. It is also possible
to claim
conformance to User Agent Accessibility Guidelines 1.0
[UAAG10] for full support through pointing device input and 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 keyboard access and which are best served by spatial
access through the keyboard (or pointing device). 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 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), drag-and-drop (allow the user to
designate start and end points and then say "go"), etc.
- 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 user 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 does not allow complete operation through the
keyboard alone. It is still possible to claim conformance
for the user agent in conjunction with a special module designed to "fill 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 a spatial navigation.
- 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 through 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 keyboard-operable cascading mechanisms, context-sensitive help,
keyboard operable configuration tabs, etc.) as well as direct access to those
functionalities. See also
checkpoint 11.5.
1.2 Activate event handlers.
(P1)
- For the element with
content focus, allow the user to activate
any explicitly associated input device event
handlers through keyboard input alone.
- 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.
Checkpoint 1.2
Note: 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
an important special case of checkpoint 1.1. Please 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:
- 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", etc.
- 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 Event specification does not provide a key event
module.
- Sequential technique: Add each input device event handler to the serial
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 a 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 example,
section 16.5 of the SVG 1.0 Candidate Recommendation [SVG]
specifies processing order for user interface events.
1.3 Provide text messages. (P1)
- Ensure that every message (e.g.,
prompt, alert,
notification, etc.) that is a non-text element and is part of the user
agent user interface has a text equivalent.
Checkpoint
1.3
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.4, a text equivalent for each such message must be available through an
API. See also checkpoint 6.5 for requirements for programmatic alert 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 the graphical
user agent uses proportional scroll bars 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).
Checkpoints
2.1 Render content according to
specification. (P1)
- Render content
according to format specification (e.g., for a markup language or style
sheet).
- When a rendering requirement of another specification contradicts a
requirement of the current document, the user agent may disregard the rendering
requirement of the other specification and still satisfy this checkpoint.
- 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).
Checkpoint 2.1
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, by saving it to disk, etc.). The user agent is
not required to satisfy this checkpoint for all implemented specifications; see
the section on
conformance and implementing specifications for more information.
Notes and rationale:
- The right to disregard 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 content
refresh), 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.
2.2 Provide text view. (P1)
- For content
authored in text formats, provide a
view of the text
source. For the purposes of this document, text formats are defined
to be:
- all media objects given an Internet media type of "text" (e.g., text/plain,
text/HTML, or text/*) as defined in RFC 2046
[RFC2046], section 4.1.
- all SGML and XML applications, regardless of Internet media type (e.g.,
HTML 4.01, XHTML 1.1, SMIL, SVG, etc.).
Checkpoint 2.2
Note: A user agent would also satisfy this checkpoint by
providing a source view for any text format, not just implemented text formats.
The user agent is not required to satisfy this checkpoint for all implemented
specifications; see the section on
conformance and implementing specifications for more information.
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:
- Provide a source view for any text format, not just implemented text
formats.
2.3
Render conditional content. (P1)
- Allow
configuration to provide access to each piece of unrendered
conditional content "C".
- The configuration may be a switch that, for all content, turns on or off
the access mechanisms described in the next provision.
- 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 querying 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 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).
For all content.
Checkpoint 2.3
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). See
checkpoint 2.10 for additional placeholder requirements.
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).
- Please 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, by
ignoring the specified geometry altogether, etc.
- For multimedia presentations with several alternative tracks, ensure access
to all tracks and allow the user to select individual tracks. 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 in level of detail, reading levels, natural
language, etc. 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 auditory descriptions concurrently as well.
- Make apparent through the user
agent user interface which
audio tracks are meant to be played separately.
Related techniques:
- See the section on access to
content.
Doing more:
- 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 auditory 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)
- 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
("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).
Checkpoint 2.4
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. 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).
See also checkpoint 3.5, which involves client-driven content
refresh.
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. Also, users who may be accessing the content serially (e.g,.
users with blindness or some users with a physical disability) and require more
time to reach the timed content
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 available.
(P1)
- Allow
configuration or control to
render text
transcripts, collated text transcripts, captions,
and auditory
descriptions at the same time as the associated audio
tracks and visual
tracks.
For all content.
Checkpoint 2.5
Note: This checkpoint is an important special case of checkpoint 2.1.
Notes and rationale:
- Users may wish to a read 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 (auditory descriptions and text
captions, etc.) and users with deafness or who are hard of hearing.
Example techniques:
- Allow users to turn on and off auditory 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 auditory descriptions, but SMIL 1.0
[SMIL] does not include a mechanism analogous to 'system-captions'
for auditory descriptions, though [SMIL20] is expected to.
- 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: information on music,
sound effects, who is speaking, etc.
- 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 auditory description and alternative
visual
tracks.
References:
- User agents that implement SMIL 1.0
[SMIL] should implement the "Accessibility Features of SMIL"
[SMIL-ACCESS].
2.6 Respect synchronization cues.
(P1)
- Respect synchronization cues (e.g., in markup) during rendering.
Checkpoint 2.6
Note: This checkpoint is an important special case of checkpoint 2.1.
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 auditory
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 auditory descriptions, it is crucial that an audio
track and an auditory 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 auditory
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
visual presentation and presenting the next segment.
- 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 auditory 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?
2.7 Repair missing content. (P2)
- 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.
For all content. Checkpoint
2.7
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). Repair text based on URI reference, content
type, or element type is sufficient to satisfy the checkpoint, but may not
result in the most effective repair. Information that may be
recognized as relevant to repair might not be "near" the missing
conditional content in the document object. 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.
Notes and rationale:
- Some examples of missing 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, inside images (e.g., refer to
"Describing and retrieving photos using RDF and HTTP"
[PHOTO-RDF]), etc.
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.
Related techniques:
- See content repair techniques,
and cell header repair strategies.
Doing more:
- When configured to generate text, also inform the user (e.g., in the
generated text itself) that this content was not provided by the author as a
text equivalent.
References:
- The "Altifier Tool" [ALTIFIER] illustrates smart
techniques for generating text
equivalents (for images, etc.) when the author has not specified
any.
2.8 No repair text.
(P3)
- Allow at least two
configurations for when the user agent
recognizes that conditional content required by the format
specification is present but
empty:
For all content. Checkpoint
2.8
Note: In some authoring scenarios, empty content (e.g., a
string of zero characters) 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 doesn't make sense out of the
mosaic. Please 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]" in the face of
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)
- Allow
configuration to render all
conditional content automatically. The user agent is not required to
render all conditional content at the same time in a single viewport.
- Provide access to this content according to format specifications or where
unspecified, by applying one of the techniques described in checkpoint 2.3: 1a, 2a, or
1b.
For all content.
Checkpoint 2.9
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, a second to render another type,
etc.).
Who benefits:
- Any user who may 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 (e.g., render them all as a list, or as a list of links,
etc.). For long conditional content, instead of rendering in place, link to the
content.
2.10
Toggle placeholders. (P3)
- Once the user has viewed the original author-supplied content associated
with a
placeholder, allow the user to turn off the rendering of the
author-supplied content.
Checkpoint 2.10
Note: For example, if the user agent substitutes the
author-supplied content for the placeholder in context, allow the user to
"toggle" between placeholder and the associated content. Or, if the user agent
renders the author-supplied content in a separate viewport, allow the user to
close that viewport. Note: See checkpoint 2.3, provision
(1b) for placeholder requirements.
Who benefits:
- Some users with a cognitive disability may find it difficult to access
content once too many images (for example) have been rendered one by one.
Example techniques:
- Allow the user to designate a placeholder and request to view the
associated content in a separate viewport (e.g., through the context menu),
leaving the placeholder in context. Per checkpoint 5.3, users are able to close the new
viewport.
2.11 Alert unsupported language.
(P3)
- Allow
configuration not to render content in unsupported natural
languages, when that content would otherwise be rendered. Content
"in a natural language" includes pre-recorded spoken language and text in a given
script, i.e., writing system.
- Indicate to the user in context that author-supplied content has not been
rendered.
- This checkpoint does not require the user agent to allow different
configurations for different natural languages.
Checkpoint 2.11
Note: For example, use a text substitute or accessible
graphical icon to indicate that content in a particular language has not been
rendered.
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.
- Rendering content in an unsupported language (e.g., as "garbage"
characters) may confuse all users. However, this checkpoint is designed
primarily to benefit users who access content serially as it allows them to
skip portions of content that would be unusable as rendered.
- 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 who access content serially, including users with blindness and some
users with a physical disability.
Example techniques:
- For instance, a user agent that doesn't support Korean (e.g., doesn't 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 doesn't 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, a
character has a value that may not be expressed in the user agent's internal
character encoding, etc. In this case,
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-Encoding") and content language ("Content-Language"). Refer to the
HTTP/1.1 specification [RFC2616], sections 14.11 and
14.12, respectively.
- 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.
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.
Checkpoints
3.1 Toggle background images.
(P1)
- Allow
configuration not to render background image
content.
- In this configuration, the user agent is not required to retrieve
background images from the Web.
- 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".
Checkpoint 3.1
Note: See checkpoint 2.3 for information about how to provide access
to unrendered background images. When background images are not rendered, user
agents should render a solid background color instead (see checkpoint 4.3).
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 image 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)
- Allow
configuration not to render audio, video, or animated image
content, except on explicit
user request. 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 (e.g., when the user activates a link).
- The user agent may satisfy this checkpoint by making video and animated
images
invisible and audio
silent, but this technique is not recommended.
- When configured not to render content except on explicit user request, the
user agent is not required to retrieve the audio, video, or animated image from
the Web until requested by the user.
Checkpoint 3.2
Note: See checkpoint 2.3 for information about how to provide access
to unrendered audio, video, and animated images. See also checkpoint 4.5, checkpoint 4.9, and checkpoint 4.10.
Who benefits:
- Some users with a cognitive disability, for whom an excess of visual
information (and in particular animated information) might 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/blinking text. (P1)
- 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, 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 also satisfies this checkpoint by always rendering animated
or blinking text as motionless, unblinking text.
Checkpoint 3.3
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). See also checkpoint 3.5. This checkpoint does not apply for
blinking and animation
effects that are caused by mechanisms that the user agent cannot
recognize.
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:
- Flashing content may trigger seizures in people with photosensitive
epilepsy, or may make a Web page too distracting to be usable by someone with a
cognitive disability. Blinking text can 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. Note: The BLINK element is not
defined by a W3C specification.
- The MARQUEE element in HTML. Note: 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
3.4 Toggle scripts. (P1)
- Allow
configuration not to execute any executable
content (e.g.,
scripts and
applets).
- In this configuration, provide an option to alert the user when executable
content is available (but has not been executed).
- The user agent is only required to alert the user to the presence of more
than zero scripts or applets (i.e., per-element alerts are not required).
Checkpoint 3.4
Note: This checkpoint does not refer to
plug-ins and other programs that are not
part of content.
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, ActiveX controls, etc. 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).
- The alert that scripts are available but not executed is important, for
instance, for helping users understand why some poorly authored pages without
script alternatives produce no content when scripts are turned off.
- Where possible, authors should encode knowledge in declarative formats
rather than in scripts. Knowledge and behaviors embedded in scripts is
difficult to extract, which means that user agents are less likely to be able
to offer control by the user over the script's effect.
Who benefits:
- Control of executable content is particularly important as it can cause the
screen to flicker, since people with photosensitive epilepsy can have seizures
triggered by flickering or flashing, particularly in the 4 to 59 flashes per
second (Hertz) range. Peak sensitivity to flickering or flashing occurs at 20
Hertz.
Example techniques:
- Do not make available the switch to turn scripts off only in the "Security"
part of the user interface as people may not think to look there. For instance,
include a "Scripts" entry in the index that allows people to find the switch
more easily.
Related techniques:
- See the section on script
techniques.
Doing more:
- While this checkpoint only requires an on/off configuration switch, user
agents should allow finer control over executable content. For instance, in
addition to the switch, allow users to turn off just input device event
handlers, or to turn on and off scripts in a given scripting language
only.
3.5 Toggle content refresh. (P1)
- Allow
configuration so that the user agent only refreshes
content on explicit
user request.
- In this configuration, alert the user of the refresh rate specified in
content, and allow the user to request fresh content manually (e.g., by
following a link or confirming a prompt).
- When the user chooses not to refresh content, the user agent may ignore
that content; buffering is not required.
- This checkpoint only applies when the user agent (not the server)
automatically initiates the request for fresh content.
Checkpoint 3.5
Note: For example, allow configuration to prompt the user
to confirm content refresh, at the rate specified by the author.
Notes and rationale:
- Some HTML authors create a refresh effect by using a
META element with http-equiv="refresh" and the refresh rate specified in
seconds by the "content" attribute.
Who benefits:
- Automatically changing content can disorient some users with a cognitive
disability, users with blindness or low vision, and most users.
Example techniques:
- Alert the user that suppressing refresh may lead to loss of information
(i.e., packet loss).
Doing more:
- Allow users to specify their own refresh rate.
- Allow configuration for at least one very slow refresh rate (e.g., every 10
minutes).
- Retrieve new content without displaying it automatically. Allow the user to
view the differences (e.g., by highlighting or filtering) between the currently
rendered content and the new content (including no differences).
3.6 Toggle redirects. (P2)
- Allow
configuration so that a "client-side redirect" (i.e., one initiated
by the user agent, not the server) only changes
content on explicit
user request.
- Allow the user to access the new content on demand (e.g., by following a
link or confirming a prompt).
- The user agent is not required to provide these functionalities for
client-side redirects specified to occur instantaneously (i.e., after no
delay).
Checkpoint 3.6
Note: Some HTML user agents support
client-side redirects authored using a META element with
http-equiv="refresh". Authors (and Web masters) should use the redirect
mechanisms of HTTP instead.
Notes and rationale:
- This checkpoint is a Priority 2 checkpoint in part because the author's
redirect implies that users aren't expected to use the content prior to the
redirect.
Who benefits:
- Automatically changing content can disorient some users with a cognitive
disability, users with blindness or low vision, and most users.
Example techniques:
- Provide a configuration so that when the user navigates "back" through the
user agent history to a page with a client-side redirect, the user agent does
not re-execute the client-side redirect.
Doing more:
- Allow configuration to allow access on demand to new content even when the
client-side redirect has been specified by the author to be instantaneous.
References:
- For Web content authors: refer to the HTTP/1.1 specification
[RFC2616] for information about using server-side redirect
mechanisms (instead of client-side redirects).
3.7 Toggle images. (P2)
- Allow
configuration not to render image
content.
- The user agent may satisfy this checkpoint by making images
invisible, but this technique is not recommended.
Checkpoint 3.7
Note: See checkpoint 2.3 for information about how to provide access
to unrendered images.
Notes and rationale:
- This priority of
checkpoint 3.2 is higher than the priority of this checkpoint because an
excess of moving visual information is likely to be more distracting to some
users than an excess of still visual information.
Who benefits:
- Some users with a cognitive disability, for whom an excess of visual
information might it difficult to understand parts of content.
Related techniques:
- See techniques for checkpoint 3.1.
In addition to the techniques below, refer also to the section on user control of style.
Checkpoints for visually rendered text
4.1
Configure text size. (P1)
- Allow global
configuration of the reference size of visually rendered
text, with an option to
override reference sizes specified by the author or user agent
defaults.
- Offer a range of text sizes to the user that includes at least:
- the range offered by the conventional utility available in the
operating environment that allows users to choose the text size
(e.g., the font size),
- or, if no such utility is available, the range of text sizes supported by
the conventional APIs of the operating environment for drawing
text.
Checkpoint 4.1
Note: The reference size of rendered text corresponds to
the default value of the CSS2 'font-size' property, which is 'medium' (refer to
CSS2
[CSS2], section 15.2.4). For example, in HTML, this might be
paragraph text. The default reference size of rendered text may vary among user
agents. User agents may offer different mechanisms to allow control of the size
of rendered text (e.g., font size control, zoom, magnification, etc.). Refer,
for example to the Scalable Vector Graphics specification [SVG]
for information about scalable rendering.
Notes and rationale:
- For example, allow the user to configure the user agent to apply the same
font family across Web resources, so that all
text is displayed by default using that font family. Or, allow the
user to control the text size dynamically for a given element, e.g., by
navigating to the element and zooming in on it.
- The choice of optimal techniques depends in part on which markup language
is being used. For instance, HTML user agents may allow the user to change the
font size of a particular piece of
text (e.g., by using CSS user style sheets) independent of other
content (e.g., images). Since the user agent can reflow the text after resizing
the font, the rendered text will become more legible without, for example,
distorting bitmap images. On the other hand, some languages, such as SVG, do
not allow text reflow, which means that changes to font size may cause rendered
text to overlap with other content, reducing accessibility. SVG is designed to
scale, making a zoom functionality the more natural technique for SVG user
agents satisfying this checkpoint.
- The primary intention of this checkpoint is to allow users with low vision
to increase the size of text. Full configurability includes the choice of
(very) small text sizes that may be available, though this is not considered by
the User Agent Accessibility Guidelines Working Group to be part of the
priority 1 requirement. This checkpoint does not include a "lower bound" (above
which text sizes would be required) because of how users' needs may vary across
writing systems and hardware.
Who benefits:
- Users with low vision benefit from the ability to increase the text size.
Note that some users may also benefit from the ability to choose small font
sizes (e.g., users of screen readers who wish to have more content per screen
so they have to scroll less frequently).
Example techniques:
- Inherit text size information from user preferences specified for the
operating environment.
- Use
operating environment magnification features.
- When scaling text, maintain size relationships among text of different
sizes.
- Implement the
'font-size' property in CSS ([CSS2], section 15.2.4).
- For example, in Windows, the
ChooseFont function in the
Comdlg32 library will create the conventional utility of that operating system
that allows users to choose text (font) size. The DrawText API is
the lower-level API for drawing text.
Doing more:
- Allow the user to configure the text size on an element level (i.e., more
precisely than globally). User style sheets allow such detailed
configurations.
- Allow the user to configure the text size differently for different
scripts (i.e., writing systems).
4.2 Configure font family. (P1)
- Allow global
configuration of the font family of all visually rendered
text, with an option to
override font families specified by the author or by user agent
defaults.
- Offer a range of font families to the user that includes at least:
- the range offered by the conventional utility available in the
operating environment that allows users to choose the font
family,
- or, if no such utility is available, the range of font families supported
by the conventional APIs of the operating environment for drawing
text.
- For text that
cannot be rendered properly using the user's preferred font family, the user
agent may substitute an alternative font family.
Checkpoint 4.2
Note: For example, allow the user to specify that all text is to be rendered in a particular
sans-serif font family.
Who benefits:
- Users with low vision or some users with a cognitive disability or reading
disorder require the ability to change the font family of text in order to read
it.
Example techniques:
- Inherit font family information from user preferences specified for the
operating environment.
- Implement the
'font-family' property in CSS ([CSS2], section 15.2.2).
- Allow the user to override author-specified font families with differing
levels of detail. For instance, use font A in place of any sans-serif font and
font B in place of any serif font.
- For example, in Windows, the
ChooseFont function in the
Comdlg32 library will create the conventional utility of that operating system
that allows users to choose font families. The DrawText API is the
lower-level API for drawing text.
Doing more:
- Allow the user to configure font families on an element level (i.e., more
precisely than globally). User style sheets allow such detailed
configurations.
4.3
Configure text colors. (P1)
- Allow global
configuration of the foreground and background color of all visually
rendered
text, with an option to
override foreground and background colors specified by the author or
user agent defaults.
- Offer a range of colors to the user that includes at least:
- the range offered by the conventional utility available in the
operating environment that allows users to choose colors,
- or, if no such utility is available, the range of colors supported by the
conventional APIs of the operating environment for
specifying colors.
Checkpoint 4.3
Note: User configuration of foreground and background
colors may inadvertently lead to the inability to distinguish ordinary text
from selected text, focused text, etc. See checkpoint 10.3 for more information about highlight
styles.
Who benefits:
- Users with color deficiencies and some users with a cognitive
disability.
Example techniques:
- Inherit foreground and background color information from user preferences
specified for the operating environment.
- Implement the
'color' and
'border-color' properties in CSS 2 ([CSS2], sections 14.1 and 8.5.2,
respectively).
- Implement the
'background-color' property (and other background properties) in CSS 2
([CSS2], section 14.2.1).
- SMIL does not have a global property for "background color", but allows
specification of background color by region (refer, for example, to the
definition of the '
background-color' attribute defined in section 3.3.1 of
SMIL 1.0 [SMIL]). In the case of SMIL, the
user agent would satisfy this checkpoint by applying the users preferred
background color to all regions (and to all root-layout elements
as well). SMIL 1.0 does not have a way to specify the foreground color of text,
so that portion of the checkpoint would not apply.
- In SVG 1.0 [SVG], the 'fill' and 'stroke'
properties are used to paint foreground colors.
- For example, in Windows, the
ChooseColor function in the
Comdlg32 library will create the conventional utility of that operating system
that allows users to choose colors. The DrawText API is the
lower-level API for drawing text.
Doing more:
- Allow the user to specify minimal contrast between foreground and
background colors, adjusting colors dynamically to meet those
requirements.
Checkpoints for multimedia presentations and other
presentations that change continuously over time
4.4 Slow multimedia. (P1)
- Allow the user to slow the presentation rate of rendered audio and
animations (including video and animated images).
- For a visual
track, provide at least one setting between 40% and 60% of the
original speed.
- For a prerecorded audio
track including audio-only presentations, provide at least one
setting between 75% and 80% of the original speed.
- When the user agent allows the user to slow the visual track of a
synchronized multimedia presentation to between 100% and 80% of its original
speed, synchronize the visual and audio tracks. Below 80%, the user agent is
not required to render the
audio track.
- The user agent is not required to satisfy this checkpoint for audio and
animations whose
recognized role is to create a purely stylistic effect.
Checkpoint 4.4
Note: Purely stylistic effects include background sounds,
decorative animated images, and effects caused by style sheets. The style
exception of this checkpoint is based on the assumption that authors have
satisfied the requirements of the "Web Content Accessibility Guidelines 1.0"
[WCAG10] not to convey information through style alone (e.g.,
through color alone or style sheets alone). See checkpoint 2.6 and checkpoint 4.7.
Notes and rationale:
- Slowing one track (e.g., video) may make it harder for a user to understand
another synchronized track (e.g., audio), but if the user can understand
content after two passes, this is better than not being able to understand it
at all.
- Some formats (e.g., streaming formats), might not enable the user agent to
slow down playback and would thus be subject to applicability.
Who benefits:
- Some users with a learning or cognitive disability, or some users with
newly acquired sensory limitations (such as a person who is newly blind and
learning to use a screen reader). Users who have beginning familiarity with a
natural
language may also benefit.
Example techniques:
- When changing the rate of audio, avoid pitch distortion.
- HTML 4 [HTML4], background animations may
be specified with the deprecated
background attribute.
- The
SMIL 2.0 Time Manipulations Module ([SMIL20], chapter 11) defines the
speed attribute, which can be used to change the playback rate (as
well as forward or reverse direction) of any animation.
- Authors sometimes specify background sounds with the "bgsound" attribute.
Note: This attribute is not part of
HTML 4 [HTML4].
Doing more:
- Allowing the user to speed up audio is also useful. For example, some users
who access content serially benefit from the ability to speed up audio.
References:
- Refer to variable playback speed techniques used for Digital Talking Books
[TALKINGBOOKS].
4.5 Start, stop, pause, and navigate
multimedia. (P1)
- Allow the user to stop, pause, and resume rendered audio and
animations (including video and animated images) that last three or
more seconds at their default playback rate.
- Allow the user to navigate efficiently within audio and
animations (including video and animated images) that last three or
more seconds at their default playback rate. The user agent may satisfy this
requirement through forward and backward sequential access techniques (e.g.,
advance three seconds), or direct access techniques (e.g., play starting at the
10-minute mark), or some combination.
- When serial techniques are used to satisfy the previous requirement, the
user agent is not required to play back content during serial advance or rewind
(though doing so may help orient the user).
- The user agent is not required to satisfy this checkpoint for audio and
animations whose
recognized role is to create a purely stylistic effect.
- When the user pauses a real-time audio or animation, the user agent may
discard packets that continue to arrive during the pause.
Checkpoint 4.5
Note: See
checkpoint 4.4 for more information about the exception for purely
stylistic effects. This checkpoint applies to content that is either rendered
automatically or on request from the user. Respect synchronization cues per checkpoint 2.6.
Notes and rationale:
- Some formats (e.g., streaming formats), might not enable the user agent to
fast forward or rewind content and would thus be subject to applicability.
- For some streaming media formats, the user agent might not be able to offer
some functionalities (e.g,. fast forward) when the content is being delivered
over th