Nonvisual Access Guidance: Regulation .04 Software Applications and Operating Systems in General

General Guidance

'CFR' means the Code of Federal Regulations.

Guidance appearing in this section has been excerpted from federal implementation guidelines for Section 508 Standards http://www.access-board.gov/sec508/guide/1194.21.htm. Minor changes to the federal guidelines may have been made in order to comply with Maryland regulations.

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 provisions 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, equivalent facilitation 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.

back to top

(a) Executable Keyboard Functions

Why is keyboard access to software required?
When keyboard access to a program’s controls and features is provided, a person who cannot use a mouse or other pointing device will still be able to run the product. Persons 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.

back to top

(b) Applications Shall Not Disrupt or Disable

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. An example of these features includes reversing the color scheme to assist people with low vision. This requirement prohibits software programs from disabling these features when they have been activated prior to running the application.

back to top

(c) Well-Defined Focus

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.

back to top

(d) Elements Available to Assistive Technologies or 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.

back to top

(e) Bitmap Images

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.

back to top

(f) Textual Information

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.

back to top

(g) 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."

back to top

(h) Animation

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.

back to top

(i) Color Coding

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.

back to top

(j) Contrast Levels

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.

back to top

(k) Flash or Blink Frequencies

Why are flashing or blinking displays limited by this provision?
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.

back to top

(l) Electronic Forms

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 web page, 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.

back to top