Sun Web Application Guidelines - Version 4.0
Search Guidelines    |    Send Feedback   |    Developers.sun.com

How To Use These Guidelines - An Introduction
 

Appendices > Appendix D

Appendix D - Accessibility Requirements

D-1 Considerations for Users With Disabilities

Accessible design allows users with disabilities to use your product. In general, people with visual and motor limitations experience significant barriers with graphical user interfaces (GUIs) because they cannot see the content on the screen, or they cannot manipulate the mouse. Products collectively known as assistive technologies provide alternative control or presentation of the information (or both) with which users interact. For example, a screen reader presents the content of the user interface (UI) to blind users through speech synthesis, a refreshable Braille display, or both.

Broadly speaking, an application is accessible if its UI allows users to customize fonts and colors, and the UI can be controlled or presented (or both) by assistive technologies and a keyboard. For example, applications written with the Swing UI Toolkit are highly accessible because support for the JavaTM Accessibility API (JAAPI) is built into its user interface elements. Swing's UI elements have built-in hooks that allow a screen reader to query them through the JAAPI, and then "read" each element's attributes to the blind user. For example, the hooks make it possible for the user to determine what the name and state of the element with focus is. Similarly to Swing, Web-based applications can utilize HTML's programmatic support for accessibility to enable their content to be accessibly presented through use of the user's browser and assistive technology.

Many users, both with and without disabilities, benefit from accessible design even in the absence of assistive technology. For example, applications that can be operated efficiently from the keyboard (using mnemonics, accelerators, and a logical tab sequence) benefit users who cannot manipulate a mouse. However, they also benefit any users who prefer to use the keyboard for speed. Furthermore, "having a disability" versus "not having a disability" is not a clear distinction. Many people have some temporary or permanent disability, such as repetitive stress injuries, suboptimal near vision, color blindness, and hearing deficits. All of these conditions are present in Sun's user population.

Additional information can be found in 1.4 Resources for Application Designers.

D-1.1 Government Requirements for Accessibility

Section 508 of the Federal Rehabilitation Act mandates that all products used by U.S. government agencies must provide "comparable access" for people with disabilities. Virtually all Sun products are sold to the government, so all Sun products must meet Section 508 requirements to maintain and expand sales to this market. In addition to federal agencies, which are required to comply with Section 508 requirements, many state governments and large educational systems are complying voluntarily.

Because Section 508 requirements were designed to allow for progress in technology, the Final Rule listing of the requirements is not an unequivocal functional specification. There is no clear, complete, a priori definition of a GUI that meets the Section 508 standard. In addition to "comparable access," the Final Rule listing includes phrases such as "equivalent facilitation," "fundamental alteration," and "a range of contrast levels," all of which are subject to interpretation. Challenges to particular products, raised by affected individuals, will lead to clarification of the requirements, but only through the lengthy process of addressing such challenges and, potentially, through litigation.

D-1.2 The Three Levels of Product Accessibility

The level of accessibility provided by a product is determined by its development team, as long as the final product meets the requirements of Section 508. In most cases, product support for accessibility can be fit into one of three levels.

D-1.3 How These Guidelines Relate to W3C's Web Accessibility Initiative Guidelines

The World Wide Web Consortium (W3C) has spent many years devising a set of web content accessibility guidelines (WCAG) as part of its Web Accessibility Initiative (WAI). They are available at http://www.w3.org/TR/WCAG10/full-checklist.html.

The WCAG provides guidelines that are separated into three different priority levels. For the most part, Section 508 is a subset of WCAG's set of Priority 1 accessibility guidelines. The WCAG is generally useful to turn to when the application provides a design challenge that isn't covered by this appendix or the User Friendlier 508 web site. Both the WAI guidelines and the guidelines presented here are compatible with Section 508 requirements.

Here are some accessibility tips provided by the World Wide Web Consortium:

D-2 Page Elements

D-2.1 Use the Most Appropriate HTML Structure

It is important to use the HTML tags that most closely represent the desired structure of the page and that the tag structure be consistently used throughout the application. Assistive technologies use this information to determine how the web page should be presented to users. For example:

These are just two possible examples highlighting the importance of using the proper HTML elements when presenting structured content.

D-2.2 Provide an Alternate Description for All Nontext Elements

Examples of nontext elements include graphics, glyphs, illustrations, and pictures. Regardless of the type of nontext element, always assign an alternate description to it (HTML "ALT" text). Every nontext element needs some sort of alternate description so that the vision-impaired user is able to tell if the information it conveys is important to understanding. Image elements that don't have an alternative description are particularly problematic for vision-impaired users. Their assistive technology, a screen reader, sees the image but can only announce that an unknown image exists. This does not help the user understand the content of the document.

Other guidance to follow for nontext elements is:

D-2.3 Associate Labels With the Page Elements They Name

When a nonsighted or low vision user encounters a form element, he or she must be able to determine the purpose of the element. Form elements that don't include their own visual label attribute should provide a label by adding an HTML <LABEL> element. This visually ties the form element to its label but doesn't do the same programmatically. The result is that the sight-impaired user's assistive technology is unable to accurately determine which label is associated with a specific element. The following guidelines demonstrate how to programmatically associate a label with a form element.

Content developers frequently group similar page elements together in visual groups. HTML 4.0 provides the elements that allow developers to do so in a programmatically accessible way. Follow these guidelines for grouping these elements together:

D-2.4 How to Encode Data Tables

Tables can perform two functions in an HTML document: presenting data and specifying page layout. Both are encoded using the same HTML tags, but they have different purposes. Data tables (discussed here) define relationships between the elements they contain. In contrast, layout tables are used solely to arrange items on the screen. For information on layout tables, see D-3.2 Make it Easy to Discern Layout Tables From Data Tables.

Follow these guidelines:

D-3 Page Layout

D-3.1 General Layout Requirements

The layout in a web application must be as consistent as possible from page to page. All users have a much easier time learning and using an application that has a consistent presentation, regardless of their experience or disability.

D-3.2 Make it Easy to Discern Layout Tables From Data Tables

For information on the differences between data tables and layout tables, see D-2.4 How to Encode Data Tables. Follow these guidelines when layout tables are used in an application.

To see the effects of layout tables, set their borders to 10 pixels. This useful test makes the layout tables visible, which simulates how they might appear to users of screen readers.

D-3.3 Make the Function of a Frame's Content Clear

Application views with multiple frames are defined using <FRAMESET> and related tags. Frames can successfully be used in a manner that meets the requirements of Section 508, but some guidelines must be followed:

D-3.4 How to Use Pop-Up Windows

Pop-up windows contain dialog pages and alert messages that appear in addition to the main browser window. In several places in these guidelines, pop-up windows are specified as part of a correct interface. The most notable example is application help.

D-4 Page Appearance

D-4.1 Respect the User's Preference Settings

All accessibility guidelines, including Section 508, require that web applications respect or inherit the font and color selection that users have set in both their browser and desktop.

D-4.2 Use Color to Complement Other Ways of Conveying Meaning

Color is a powerful tool, but it must never be used as the sole indicator of the meaning or status of any element. For example, a red bar indicating an error can be used if it is accompanied by additional information, such as an icon with a unique shape or static text.

D-4.3 Accommodate the Use of Larger Font Sizes

As web applications become more complex, designing to allow for an enlarged font size becomes more difficult.

D-5 Style Sheets

Style sheets provide the developer and user alike with greater flexibility in the visual presentation of the application. When properly utilized in the application, they allow the developer to define the default look of the application. They also provide the user with a method of changing and fine tuning many more property settings than are available in the browser's property page. This allows a user with a visual impairment to set values that make the application usable for him or her.

D-6 Dynamic HTML

Dynamic HTML (DHTML) is a generic term that encompasses any markup that modifies the contents of a browser without contacting the server. The term is not rigorously defined and, in practice, relates only to scripting and layers.

Content generated dynamically in the web page versus being generated by the server is a problem because the new content is transparent to screen readers and smart screen magnifiers. No events are sent out to notify the assistive technology that a change in the page's appearance has occurred.

D-6.1 Using JavaScript More Accessibly

Web applications are heavily dependent upon scripting, and the only language recommended for use in Sun's products is the JavaScriptTM language. The W3C suggests that scripting be avoided. However, doing so is impossible when you are developing a web-based application. Given the need for such applications, these guidelines help explain how to utilize the JavaScript language in an accessible manner.

More information on developing accessible scripts is provided by the Access Board, the authors of the Section 508 rule, at http://www.access-board.gov/sec508/guide/1194.22.htm#(l).

JavaScript and the Java TM programming language are completely separate entities. Java applets are not covered by these JavaScript requirements.

The use of layers in HTML is becoming more common, but very few accessibility guidelines exist regarding their use.

D-6.2 Servlets and JSPs

Technically speaking, servlets and JSPs (Java Server Pages) are not dynamic content. However, they run on the server and send HTML to the browser for display. JSPs and Servlets must be constructed such that the HTML generated by them meets all the requirements specified in Section 508 and this appendix.

D-7 Keyboard Navigation

D-7.1 Application Content Must Be Fully Keyboard Navigable

Many users cannot use the mouse, so all web applications must be usable solely by using the keyboard.

Important differences exist in how effectively web browsers support keyboard navigation. For example, some versions of Netscape don't allow navigation of all links in a page, even if the page is defined using proper HTML markup. Other browsers do not support keyboard navigation of frames very well. If the web application works well with the keyboard in at least one browser, then the application is meeting the keyboard navigation requirements.

D-7.2 Provide a Method for Skipping Repetitive Navigation Links

Web content frequently includes regions on web pages devoted solely to site navigation, and these regions are frequently called navigation bars. These regions are typically located at the edges of the main content. The methods typically provided for skipping over these regions are to 1) place the navigation links in a separate frame (for example, a table of contents frame) or 2) to provide a link at the beginning of the navigation bar that, when activated, moves the input focus to the first element after the navigation region. Either method is acceptable, as long as it meets the following guidelines.

In general, always identify the location the skip link will jump to after the colon (for example, "to navigation tree", "to form", "to main content").

D-8 Product Documentation

D-8.1 Product Documentation Must Be Accessible

The product might be unusable by users with disabilities if the documentation isn't accessible. If the documentation isn't accessible, then the application as a whole does not meet the Section 508 requirements.

D-8.2 Include Accessibility Information in Application Documentation

An application becomes easy to learn for users with disabilities when it includes information such as how to use the application with the keyboard, how to change the colors used by the application, and how to change the font sizes used by the application. Documentation should, at a minimum:

D-9 Web Page Accessibility Checkers

Web page accessibility checkers are designed to test pages from a variety of different accessibility perspectives, such as Section 508, color blindness, and macular degeneration. The checkers of most general usefulness to web content developers are those that evaluate content against Section 508's web requirements and the W3C's accessibility guidelines.

For web page accessibility checking, the tool InFocus is very useful. This tool was chosen over others because it did a better job of evaluating tables and nontext elements than other similar tools. However, as with all accessibility checkers, it has its weaknesses. For example, analysis of JavaScript code is still rudimentary and a certain amount of human follow-up is often necessary to verify a potential problem. It cannot "certify" that a web application meets Section 508 requirements. These weaknesses exist in all web page accessibility checkers because accessibility, like usability, cannot be verified through a fully automated process.

 

Privacy Policy  |  Terms of Use  |  Trademarks  |  Copyright 2007 Sun Microsystems, Inc.