|
Software
Applications and Operating Systems (1194.21)
Updated: June 21, 2001
These provisions are applicable
for both software applications and operating systems. They address
program features that must be contained in software for the product
to meet the standards. Because there are many programming languages
from which a software producer may select, it is impossible to
give specific coding techniques. In some cases it is possible
that a particular programming language may not possess the features
necessary to fulfill these requirements. In those instances, another
language for creating the program would most likely have to be
considered for the product to meet the standards.
All electronic and information technology
contains software of some type. Do these provision apply to
all software with no exceptions?
To meet
the standards, a product can either build all accessibility
features in, or be compatible with assistive technology. Many
of the provisions in this section are required to make software
compatible with assistive technology. For example, how text
is to be written to the display is required so assistive technology
can read the text output of a program. Therefore, if the software
is running on a product, such as a desktop computer, where it
is possible to add assistive technology, that software must
comply with this section.
Are these provisions
the only feasible approach for making software work with assistive
technology?
No. By studying these provisions, a software producer
can gain an understanding of what is to be achieved. However,
as stated in 1194.5, equivalent facilitation, the provisions
are not intended in anyway to discourage producers from developing
their own approach to achieving the end result. Alternative
approaches through equivalent facilitation are allowed as long
as the alternative provides equivalent or greater access than
the approach specified in these provisions.
(a) When
software is designed to run on a system that has a keyboard, product functions
shall be executable from a keyboard where the function itself or the result of
performing a function can be discerned textually.
Why is keyboard access
to software required?
When keyboard access to a programs'
controls and features is provided, a person who cannot use a
mouse or other pointing device will still be able to run the
product. For example, a person with a disability that affects
dexterity may find it impossible to move or hold a pointing
device with enough accuracy to activate desired features. A
person who cannot see the screen, therefore relying on assistive
technology, may have no problems moving the pointer but will
be unable to determine what is being pointed to.
Does this provision prohibit the use of "mouse-only"
functions in any software?
All actions that
can be identified or labeled with text are required to be executable
from a keyboard. For example, most of the menu functions even
in common drawing programs that allow a user to open, save,
size, rotate, and perform other actions on a graphic image can
all be performed from the keyboard. However, providing keyboard
alternatives for creating an image by selecting a "drawing tool",
picking a color, and actually drawing a design would be extremely
difficult. Such procedures require the precise level of control
afforded by a pointing device (e.g., a mouse) and cannot be
given text labels because there is no way to predict what action
the user plans to perform. Therefore, when a programmer is determining
which functions need keyboard access, the best rule of thumb
is to add keyboard shortcuts to any feature where the function
can be identified with a text label.
Many applications utilize toolbars with buttons. Do
these buttons all need keyboard access?
Not necessarily.
Most toolbars give a visual shortcut to functions that also
exist in the menu structure of a program. If the feature activated
by a control on a toolbar is a duplicate of a menu function
that already has a keyboard shortcut then the toolbar control
does not need its own keyboard access. However, if the control
on the toolbar is unique and cannot be accessed in any other
way, the control will be required to have a keyboard shortcut.
Although not in the toolbar, a scroll feature which is not available
in a menu bar must have keyboard alternatives. Typically, the
use of the page up, and page down keys will provide keyboard
access to scroll bars.
top
(b) Applications shall not
disrupt or disable activated features of other products that are identified as
accessibility features, where those features are developed and documented
according to industry standards. Applications also shall not disrupt or disable
activated features of any operating system that are identified as accessibility
features where the application programming interface for those accessibility
features has been documented by the manufacturer of the operating system and is
available to the product developer.
What is the application programming
interface?
The application
programming interface, (API) refers to a standard way for programs
to communicate with each other, including the operating system,
and with input and output devices. For instance, the application
programming interface affects how programs display information
on a monitor or receive keyboard input via the operating system.
What are accessibility
features?
Many commercially
available software applications and operating systems have features
built into the program that are labeled as accessibility features.
These features can typically be turned on or off by a user.
Examples of these features include: reversing the color scheme
(to assist people with low vision), showing a visual prompt
when an error tone is sounded (to assist persons who are deaf
or hard of hearing), or providing "sticky keys" that allow a
user to press key combinations (such as control-C) sequentially
rather than simultaneously (to assist persons with dexterity
disabilities). This requirement prohibits software programs
from disabling these features when they have been activated
prior to running the application.
top
(c) A well-defined on-screen
indication of the current focus shall be provided that moves among interactive
interface elements as the input focus changes. The focus shall be
programmatically exposed so that assistive technology can track focus and focus
changes.
What is the importance of the focus
for assistive technology?
The position
on a screen where an action will take place is referred to as
the "focus". For example, when a menu item in a program is highlighted
- meaning that if the user clicks the mouse or presses the enter
key - the feature will activate and that item has the focus.
Providing a visual indication of the focus allows someone who
is viewing the screen to accurately access the programs' features.
When a computer is being operated by a person who is also running
a screen enlargement program or a speech or Braille output system,
the assistive technology must discern the focus point. This
provision requires that the position of the programs' focus
be made available through its code to assistive technology.
When, for example, a screen enlargement program magnifies a
section of the screen, it must be able to follow the focus as
the focus changes. If the magnified area does not move with
the focus, the user may easily move down through a list of choices
with the arrow keys but the magnified area remains stationary
and very shortly the user has no idea what items will be activated
if an action is taken.
top
(d) Sufficient information
about a user interface element including the identity, operation and state of
the element shall be available to assistive technology. When an image represents
a program element, the information conveyed by the image must also be available
in text.
What is considered a "user
interface element"?
Examples of user
interface elements include button checkboxes, menus, toolbars,
scroll bars, and any other feature of a program that is intended
to allow the user to perform some action.
What does this provision require to be done with
these elements?
This provision
requires that text must be associated with each element. The
text must identify the element and its current state or condition.
For example, a button that shows a hand for getting more help
must have the word "help" associated with the button. If a checkbox
is present, a text label must indicate what is being checked,
and whether the checkbox is checked or unchecked. There are
many ways to accomplish this depending on the program language
being used.
top
(e) When bitmap images are
used to identify controls, status indicators, or other programmatic elements,
the meaning assigned to those images shall be consistent throughout an
application’s performance.
What forms of bitmap images are affected by this
provision?
This provision
applies to those images which are used to indicate an action.
An image used strictly for decoration is not covered by this
provision.
Why is the provision important for
accessibility?
Most screen reading
programs allow users to assign text names to bitmap images.
If the bitmap image changes meaning during a program's execution,
the assigned identifier is no longer valid and is confusing
to the user.
top
(f) Textual information shall be provided through operating system
functions for displaying text. The minimum information that shall be made
available is text content, text input caret location, and text
attributes.
Can an application programmer develop
unique display techniques for writing text on the screen or using
graphics?
The operating
system is the "core" computer software that controls basic functions,
such as receiving information from the keyboard, displaying
information on the computer screen, and storing data on the
hard disk. Other software programs use the standard protocols
dictated by the operating system for displaying their own information
or processing the output of other computer programs. When programs
are written using unique schemes for writing text on the screen
or use graphics, other programs such as software for assistive
technology may not be able to interpret the information. This
provision does not prohibit or limit an application programmer
from developing unique display techniques. It requires that
when a unique method is used, the text should also be written
to the screen through the operating system.
top
(g) Applications shall not
override user selected contrast and color selections and other individual
display attributes.
How does this requirement improve accessibility for
people with disabilities?
Often, persons
with disabilities can increase their efficiency with a system
by selecting colors, contrast, keyboard repeat rate, and keyboard
sensitivity settings provided by an operating system. When an
application disables these system-wide settings, accessibility
is reduced. This provision is aimed at allowing users to select
personalized settings which cannot be disabled by software programs.
Does this provision mean that programs may not use
any custom settings?
This provision
allows programs to have unlimited options for customizing the
display of the programs' content. However, there must be a section
in the software that tells the program not to use its own setting,
but to use whatever settings are already in place before the
program starts. A simple menu selection, for example under a
view, or options menu, might be a checkbox that lets the user
check "use system display setting."
top
(h) When animation is
displayed, the information shall be displayable in at least one non-animated
presentation mode at the option of the user.
How can screen animation affect
accessibility for people with disabilities?
The use of animation on a screen can pose serious access
problems for users of screen readers or other assistive technology
applications. When important elements such as push-buttons or
relevant text are animated, the user of assistive technology
cannot access the application reliably. This provision requires
that in addition to the animation, an application shall provide
an option to turn off animation.
top
(i) Color coding shall not be
used as the only means of conveying information, indicating an action, prompting
a response, or distinguishing a visual element.
How can color coding create accessibility
difficulties?
A software program
that requires a user to distinguish between otherwise identical
red and blue squares for different functions (e.g., printing
a document versus saving a file) would pose problems for anyone
who was color blind and would generally be very difficult to
run with assistive technology. Screen reading software can announce
color changes. However, this is an "on/off" feature. This means
that if a user had to identify a specific color, they would
have to have all colors announce which would greatly reduce
the usability of the software for that person.
Does the provision prohibit the use of
colors?
No. This provision
does not prohibit the use of color to enhance identification
of important features. It does, however, require that some other
method of identification, such as text labels, be combined with
the use of color.
top
(j) When a product permits a
user to adjust color and contrast settings, a variety of color selections
capable of producing a range of contrast levels shall be
provided.
Do all products have to provide color
selections?
No. This provision
is applied to those products that already allow a user to adjust
screen colors.
What is the desired outcome of this
requirement?
This provision
requires more than just providing color choices. The available
choices must also allow for different levels of contrast. Many
people experience a high degree of sensitivity to bright displays.
People with this condition cannot focus on a bright screen for
long because they will soon be unable to distinguish individual
letters. An overly bright background causes a visual "white-out".
To alleviate this problem, the user must be able to select a
softer background and appropriate foreground colors. On the
other hand, many people with low vision can work most efficiently
when the screen is set with very sharp contrast settings. Because
there is such a variance in individual needs it is necessary
for a program to have a variety of color and contrast settings.
top
(k) Software shall not use
flashing or blinking text, objects, or other elements having a flash or blink
frequency greater than 2 Hz and lower than 55 Hz.
Why are flashing or blinking displays
limited by this provision?
This requirement
is necessary because some individuals with photosensitive epilepsy
can have a seizure triggered by displays that flicker or flash,
particularly if the flash has a high intensity and is within
certain frequency ranges. The 2 Hz limit was chosen to be consistent
with proposed revisions to the ADA Accessibility Guidelines
which, in turn, are being harmonized with the International
Code Council (ICC)/ANSI A117 standard, "Accessible and Usable
Buildings and Facilities", ICC/ANSI A117.1-1998 which references
a 2 Hz limit. An upper limit was identified at 55 Hz.
top
(l) When electronic forms are
used, the form shall allow people using assistive technology to access the
information, field elements, and functionality required for completion and
submission of the form, including all directions and cues.
Why are electronic forms so difficult for some
people with disabilities to access?
At present, the
interaction between form controls and screen readers can be
unpredictable, depending upon the design of the page containing
these controls.
How can forms in a software application meet this
provision?
If keyboard alternatives
are provided for navigating through a form, and all elements
of the form are labeled with text located in close proximity
to the field that is to be completed, the form will most likely
meet this provision. Attention must be paid to the placement
of field labels. On a webpage, a label can have a direct association
with a particular field that is indicated in the HTML code.
Assistive technology can interpret the HTML and correctly announce
the appropriate label. There is no similar method for forms
in software programs. Therefore, the label must be in a logical
position relative to the input areas. For example, placing labels
to the immediate left of where the user is to enter information
is by far the most logical position for the label.
top
|