Web technologies are forever forging ahead. Each day brings new gadgetry and wizardry to the browsing experience, opening up reams of electronic information and entertainment at an accelerating pace for those with the technical where-with-all to access it. Yet, many Web citizens are not in a postion to reap the advantages because of both technical deficiencies and physical disabilities for experiencing the content as originally conceived and presented.
Web accessibility issues pertain to page design for users who
Web developers should consider these situations during page design. Granted, there may be situations where it is impractical or unwise to compromise a design for accessibility purposes. A Web site that features inaccessible technologies need not apologize for lack of presentation alternatives if none are truly available to duplicate the experience in other ways. There are also cost and marketing considerations. It may be resource-prohibitive to create a parallel site for a small population of users and a competitive disadvantage to delay available until it is completed.
Still, the search for presentation alternatives should continue. In some cases there are technical solutions to accessibility problems. In other cases there are page coding remedies.
Assistive Technologies
Assistive technologies provide mechanical and software means to overcome physical or cognitive disabilities. Examples includeMost of these solutions take place on the end-user side. They must be purchased and installed on individual computers. The Web developer has little or no impact on whether Web content may be accessible by these methods. The developer can, however, assist many of these assistive technologies by following compatible site design and coding practices when creating Web pages.
W3C Accessibility Guidelines
The World Wide Web Consortium (W3C) produces a set of Web Content Accessibility Guidelines (http://www.w3.org/TR/WCAG10/) on how to make Web content accessible to people with disabilities. By following these guidelines content developers can create pages that remain accessible despite the constraints of physical, sensory, and cognitive disabilities. Some general keys to designing such pages include:
The W3C provides fourteen guidelines under three priority levels commensurate with their impact on accessibility. Some of these guidelines refer to technologies or techniques that are not covered in this tutorial.
Priority 1 guidelines must be satisfied; otherwise, one or more groups will find it impossible to access information in the document.
Priority 2 guidelines should be satisfied; otherwise, one or more groups will find it difficult to access information in the document.
Priority 3 guidelines may be satisfied; otherwise, one or more groups will find it somewhat difficult to access information in the document.
The following discussion summarizes these guidelines. You should visit the W3C accessibility site for complete details.
Guideline 1. Provide equivalent alternatives to auditory and visual content.
This guideline emphasizes the importance of providing text equivalents of non-text content (images, pre-recorded audio, video). The power of text equivalents lies in their capacity to be rendered in ways that are accessible to people from various disability groups using a variety of technologies. Text can be readily output to speech synthesizers and braille displays, and can be presented visually in a variety of sizes on computer displays and paper.
Coding Practices:Provide a text equivalent for every non-text element. For example, use alt text for the <img> tag. For complex content where alt text does not provide a complete text equivalent, provide a link to a text description. For image maps use the alt attribute with <area> tags. [Priority 1]
Until user agents can automatically read aloud the text equivalent of a visual track, provide an auditory description of the important information of the visual track of a multimedia presentation. [Priority 1]
For any time-based multimedia presentation (e.g., a movie or animation), synchronize equivalent alternatives (e.g., captions or auditory descriptions of the visual track) with the presentation. [Priority 1]
Until user agents render text equivalents for image map links, provide redundant text links for each active region of a client-side image map. [Priority 3]
Guideline 2. Don't rely on color alone.
Ensure that text and graphics are understandable when viewed without color. If color alone is used to convey information, people who cannot differentiate between certain colors and users with devices that have non-color or non-visual displays will not receive the information. When foreground and background colors are too close to the same hue, they may not provide sufficient contrast when viewed using monochrome displays or by people with different types of color deficits.
Coding Practices:Ensure that all information conveyed with color is also available without color, for example from text context or markup. [Priority 1]
Ensure that foreground and background color combinations provide sufficient contrast when viewed by someone having color deficits or when viewed on a black and white screen. [Priority 2].
Guideline 3. Use markup and style sheets properly.
Mark up documents with the proper and intended use of XHTML elements, that is, as information structuring devices rather than styling techniques. Control presentation with style sheets rather than with attributes. Using markup improperly hinders accessibility.
Coding Practices:When an appropriate markup language exists, use markup rather than images to convey information. Avoid using images to represent text -- use text and style sheets instead. [Priority 2]
Create documents that validate to published XHTML standards. [Priority 2]
Use style sheets rather than deprecated attributes to control layout and presentation. [Priority 2]
Use relative measurement units (percentages) rather than absolute units (pixels) in markup attribute values and style sheet property values. [Priority 2]
Use header elements to convey document structure, not for style effects. For example, use H2 to indicate a subsection of H1, not because of size differences in the fonts. [Priority 2]
Nest OL, UL, and DL list items properly. [Priority 2]
Guideline 4. Clarify natural language usage
Use markup that facilitates pronunciation or interpretation of abbreviated or foreign text. When content developers code natural language in a document, speech synthesizers and braille devices can automatically switch to the new language, making the document more accessible to multilingual users. Also, natural language markup allows search engines to find key words and identify documents in a desired language.
Coding Practices:Clearly identify changes in the natural language of a document's text and captions. For example, use "xml:lang" in page prologs. [Priority 1]
Specify the expansion of each abbreviation or acronym in a document where it first occurs. [Priority 3]
Guideline 5. Create tables that transform gracefully.
Ensure that tables have necessary markup to be transformed by accessible browsers and other user agents. Tables should be used to mark up truly tabular information ("data tables") and should be avoided to lay out pages ("layout tables"). Tables for any use present special problems to users of screen readers.
Coding Practices:For data tables, identify row and column headers. Use <td> to identify data cells and <th> to identify headers. [Priority 1]
For data tables that have two or more logical levels of row or column headers, use markup to associate data cells and header cells. Use <thead>, <tbody>, and <tfoot> to group rows and use <col/> and <colgroup> to group columns. [Priority 1]
Do not use tables for layout unless the table makes sense when presented in a linear (across rows and down columns) fashion. Otherwise, provide an alternative presentation. [Priority 2]
If a table is used for layout, do not use any structural markup for the purpose of visual formatting -- do not use the <th> element to cause the content of a (non-table header) cell to be displayed centered and in bold. [Priority 2]
Provide text summaries for tables where practical. [Priority 3]
Guideline 6. Ensure that pages featuring new technologies transform gracefully.
Ensure that pages are accessible even when newer technologies are not supported or are turned off. Although content developers are encouraged to use new technologies, they should know how to make their pages still work with older browsers and people who choose to turn off features.
Coding Practices:Organize documents so they may be read without style sheets. For example, when an HTML document is rendered without associated style sheets, it must still be possible to read the document. [Priority 1]
Ensure that equivalents for dynamic content are updated when the dynamic content changes. [Priority 1]
Ensure that pages are usable when scripts, applets, or other programmatic objects are turned off or not supported. If this is not possible, provide equivalent information on an alternative accessible page. [Priority 1]
Ensure that dynamic content is accessible or provide an alternative presentation or page. [Priority 2]
Guideline 7. Ensure user control of time-sensitive content changes.
Ensure that moving, blinking, scrolling, or auto-updating objects or pages may be paused or stopped. Some people with cognitive or visual disabilities are unable to read moving text quickly enough or at all. Movement can also cause such a distraction that the rest of the page becomes unreadable for people with cognitive disabilities. Screen readers are unable to read moving text. People with physical disabilities might not be able to move quickly or accurately enough to interact with moving objects.
Coding Practices:Until user agents allow users to control flickering, avoid causing the screen to flicker. [Priority 1]
Until user agents allow users to control blinking, avoid causing content to blink [Priority 2]
Until user agents allow users to freeze moving content, avoid movement in pages. [Priority 2]
Until user agents provide the ability to stop the refresh, do not create periodically auto-refreshing pages. [Priority 2]
Until user agents provide the ability to stop auto-redirect, do not use markup to redirect pages automatically. [Priority 2]
Guideline 8. Ensure direct accessibility of embedded user interfaces.
Ensure that the user interface follows principles of accessible design: device-independent access to functionality, keyboard operability, self-voicing, etc. When an embedded object has its "own interface", the interface -- like the interface to the browser itself -- must be accessible. If the interface of the embedded object cannot be made accessible, an alternative accessible solution must be provided.
Coding Practices:Make programmatic elements such as scripts directly accessible or compatible with assistive technologies [Priority 1 if functionality is important and not presented elsewhere, otherwise Priority 2.]
Guideline 9. Design for device-independence.
Use features that enable activation of page elements via a variety of input devices. Device-independent access means that the user may interact with the user agent or document with a preferred input (or output) device -- mouse, keyboard, voice, head wand, or other.
Coding Practices:Provide client-side image maps instead of server-side image maps except where the regions cannot be defined with an available geometric shape. [Priority 1]
Ensure that any element that has its own interface can be operated in a device-independent manner. [Priority 1]
For scripts, specify logical event handlers rather than device-dependent event handlers. [Priority 2]
Create a logical tab order through links, form controls, and objects. [Priority 3]
Provide keyboard shortcuts to important links, form controls, and groups of form controls. [Priority 3]
Guideline 10. Use interim solutions.
Use interim accessibility solutions so that assistive technologies and older browsers will operate correctly. For example, changing the current window or popping up new windows can be very disorienting to users who cannot see that this has happened.
Note. The following checkpoints apply until user agents (including assistive technologies) address these issues. These checkpoints are classified as "interim", meaning that the Web Content Guidelines Working Group considers them to be valid and necessary to Web accessibility as of the publication of this document. However, the Working Group does not expect these checkpoints to be necessary in the future, once Web technologies have incorporated anticipated features or capabilities.
Coding Practices:Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user. [Priority 2]
Until user agents support explicit associations between labels and form controls, for all form controls with implicitly associated labels, ensure that the label is properly positioned immediately precedits its control on the same line. [Priority 2]
Until user agents (including assistive technologies) render side-by-side text correctly, provide a linear text alternative (on the current page or some other) for all tables that lay out text in parallel, word-wrapped columns. [Priority 3]
Until user agents handle empty controls correctly, include default, place-holding characters in edit boxes and text areas. [Priority 3]
Until user agents (including assistive technologies) render adjacent links distinctly, include non-link, printable characters (surrounded by spaces) between adjacent links. [Priority 3]
Guideline 11. Use W3C technologies and guidelines.
Use W3C technologies and follow accessibility guidelines. Where it is not possible to use a W3C technology, or doing so results in material that does not transform gracefully, provide an alternative version of the content that is accessible.
Coding Practices:Use W3C technologies when they are available and appropriate for a task and use the latest versions when supported. [Priority 2]
Avoid deprecated features of W3C technologies. [Priority 2]
Provide information so that users may receive documents according to their preferences (e.g., language, content type, etc.) [Priority 3]
If, after best efforts, you cannot create an accessible page, provide a link to an alternative page that uses W3C technologies, is accessible, has equivalent information (or functionality), and is updated as often as the inaccessible (original) page. [Priority 1]
Guideline 12. Provide context and orientation information.
Provide context and orientation information to help users understand complex pages or elements. Grouping elements and providing contextual information about the relationships between elements can be useful for all users. Complex relationships between parts of a page may be difficult for people with cognitive disabilities and people with visual disabilities to interpret.
Coding Practices:Title each frame to facilitate frame identification and navigation. [Priority 1]
Describe the purpose of frames and how frames relate to each other if it is not obvious by frame titles alone. [Priority 2]
Divide large blocks of information into more manageable groups where natural and appropriate. [Priority 2]
Associate labels explicitly with their controls. [Priority 2]
Guideline 13. Provide clear navigation mechanisms.
Provide clear and consistent navigation mechanisms -- orientation information, navigation bars, a site map, etc. -- to increase the likelihood that a person will find what they are looking for at a site. Clear and consistent navigation mechanisms are important to people with cognitive disabilities or blindness, and benefit all users.
Coding Practices:Clearly identify the target of each link. Link text should be meaningful enough to make sense when read out of context -- either on its own or as part of a sequence of links. Link text should also be terse.[Priority 2]
Provide metadata to add semantic information to pages and sites. For example, indicate the document's author, the type of content, etc.[Priority 2]
Provide information about the general layout of a site (e.g., a site map or table of contents). [Priority 2]
Use navigation mechanisms in a consistent manner. [Priority 2]
Provide navigation bars to highlight and give access to the navigation mechanism. [Priority 3]
Group related links, identify the group (for user agents), and, until user agents do so, provide a way to bypass the group. [Priority 3]
If search functions are provided, enable different types of searches for different skill levels and preferences. [Priority 3]
Place distinguishing information at the beginning of headings, paragraphs, lists, etc. [Priority 3]
Provide information about document collections (i.e., documents comprising multiple pages.). Another way to create a collection is by building a zipped archive of the multiple pages. [Priority 3]
Provide a means to skip over multi-line ASCII art. [Priority 3]
Guideline 14. Ensure that documents are clear and simple.
Ensure that documents are clear and simple so they may be more easily understood. Consistent page layout, recognizable graphics, and easy to understand language benefit all users. They help people with cognitive disabilities or who have difficulty reading. Ensure that images have text equivalents for people who are blind, have low vision, or for any user who cannot or has chosen not to view graphics.
Coding Practices:Use the clearest and simplest language appropriate for a site's content. [Priority 1]
It is impossible in this tutorial to give examples of all of the above coding techiques to assist in Web page accessability. A comprehensive set of example XHTML code, however, is provided at the W3C Web site: Techniques for Web Content Accessibility Guidelines.
There are a number of Web sites that provide software for testing pages against accessibility guidelines. For example, bobby.watchfire.com permits you to enter the URL of your page and receive a report on its compatibility with W3C and other guidelines.
Section 508 Requirements
Under Federal law, U.S. agencies must make their Web sites accessible to people with vision and hearing impairments, with limited dexterity, and with other disabilities. Section 508, an amendment to the Rehabilitation Act of 1973, mandates that people with disabilities be given comparable access to Web-accessible government information as other users; the Act also pertains to organizations which receive funds from the federal government.
There are sixteen general rules for accessible Web pages in the Section 508 Standards. In brief, the rules for accessible Web pages are:
Details about these guidelines along with links to other resources for Section 508 compatibility are at the Federal government site www.section508.gov/.
The Information Technology Technical Assistance and Training Center (ITTATC) is a clearinghouse of information related to Section 508 at www.ittatc.org. This organization is funded by the National Institute on Disability and Rehabilitation Research (NIDRR) and is located at the Georgia Institute of Technology.