ADVANCED DRAFT COPY

Page Author Guidelines - Version 8
Unified Web Site Accessibility Guidelines

 

December 1, 1997

 

Compiled by:
Gregg C. Vanderheiden Ph.D., Wendy A. Chisholm, M.S.,
Trace R and D Center, University of Wisconsin - Madison
For the Web Accessibility Initiative Guidelines Working Group

(This is a final Trace Center Guidelines Document.
It is compiled in preparation for transfer of the Guidelines to the Web Accessibility Initiative of the W3C.
This guideline reflects recent work of the WAI as well as previous contributions of many other guidelines developers (listed in the appendix)).   Contributors include: Jim Bell, Jane Berliss, Harvey Bingham, Judy Brewer, Kevin Carey, John Churchill, David Clark, Dan Connolly, Daniel Dardailler, Judith Dixon, Martin Durst, Paul Fontaine, Geoff Freed, Alfred S. Gilman, Larry Goldberg, Jon Gunderson, Markku Hakkinen, Scott Isaacs, Scott Isensee, Jun Ishikawa, Steve Jacobs, Phill Jenkins, Alan Karben, Hiroshi Kawamura, George Kerscher,  Peter Korn, Josh Krieger, Chuck Letourneau, Edmund MacKenty, Murray Maloney, Aya Matsui, Gabriel Michel, Jim Miller, Masafumi NAKANE, Charles Oppermann, Mike Paciello, David Pawson, Michael Pieper, Dave Ragget, T.V. Raman, Jan Richards, Madeleine Rothberg, Jutta Treviranus, Steve Tyler, Jaap Van Lelieveld,  Jason White, Tom Wlodkowski, ATRC, CAST, InfoUse, NCR, WGBH, WINGS, and the WAI IG and GL Working groups

(If you have contributed and your name or organization is missing from the above list, inform us via e-mail so that we may correct our omission - and we apologize in advance.)

Prepared under funding from
the National Institute on Disability and Rehabilitation Research (NIDRR),
Office of Special Education and Rehabilitation Services (OSERS),
US Department of Education
The US Postal Service's WINGS project and
the NCSA-PACI Universal Design / Disability Access Project.

(This is a living document. Comments and suggestions are solicited.)


 Rating System

[Required]   - Required for some groups of users to access the information on a page.

[Recommended] - Makes page easier to understand and use.

Classification System

[Interim] - Strategies needed to make pages accessible for today's browsers and assistive technologies

[New] - Strategies that will take advantage of new features being incorporated into supported tomorrow's browsers and assistive technologies (which incorporate Web Access Initiative recommendations).

If a recommendation has several possible strategies, the strategies are classified, if not the recommendation itself is classified.  Those recommendations and strategies that have no classification work for both old and new browsers.

 


Style Sheets - Controlling the presentation of an HTML document

  1. [Required]  
      Use style sheets to position text and objects within pages, rather than physically marking up text and graphics
    (e.g. <B> or the "align" attribute of <IMG>) (However, continue to use logical elements such as STRONG, H1, etc.  to provide semantic coding within the body of the page) [New]

    Use style sheets rather than:

    Use style sheets to:

  2. [Required]  
      Ensure that your pages are readable and usable without style sheets
    (e.g. when the browser does not support or the user prefers not to load).  Since style sheets are a new phenomenon, older browsers will not support them and it will take a while for new browsers to support them in a standard way.

 


Images and Image maps

  1. [Required]  
      Provide alternative text for all images and image maps. 

    All images should have alternative text that describes the function of the graphic. Examples of possible alt-text are, "Section Title: Banana Products," "Graph of population versus age," or "Search Button."  Possible solution strategies include:
    1. The "alt" attribute is mandatory for the <AREA> and <IMG> elements, but should also be used for <APPLET>, and <INPUT>. For example, <IMG SRC="logo.gif" alt="XYZ Logo">.
    2. [New] If <OBJECT> is used, text can be provided in the body of the <OBJECT> element.  For example, <OBJECT data="logo.gif"> XYZ Logo </OBJECT>

  2. [Required]  
      Provide a link to a longer description (i.e., via D-link, or longdesc, etc.) for graphics that present important information (especially charts, tables and diagrams). (Include internal text in image file formats that support it).

    Alternative text descriptions (recommendation #1) are usually short and define the basic purpose of graphic elements. To describe the graphic itself in more detail a link to a longer description should be provided.
    1. [Interim] Provide a D-link next to the graphic that links to a page or a phrase at the bottom of the page with a longer description of the graphic. For example, <IMG SRC="logo.gif" alt="XYZ logo"><A HREF="logo.html">D</A>
    2. [New] Use the "longdesc" attribute of the <IMG> element or provide text within the body of the <OBJECT > element.  For example, <IMG SRC="logo.gif" alt="XYZ logo" longdesc="logo.html">

  3. [Required]  
      Use client-side (instead of server-side) image maps.

    Client-side image maps are similar to server-side image maps except that the information for all of the "hot-spots" within the image are sent to the browser along with the image map picture. Descriptions provided with the URLs can be displayed rather than the graphic. If server-side image maps can not be avoided, see the 5th strategy of the next recommendation.

  4. [Required]  
      Provide a description for each link in an image map.

    Depending on how you've created your image map you have several possibilities:
    1. Use the "alt" attribute of the <AREA> element (with the IMAGE, MAP and AREA elements)
      <IMG src="welcome.gif" alt="Image map of areas in the library" usemap="#map1">
      <MAP name="map1">
      <AREA coords="0,0,30,30" href="reference.html" alt="Reference">
      <AREA coords="34,34,100,100" href="media.html" alt="Audio Visual lab">
      </MAP>
    2. [New] Use the "alt" attribute of the <AREA> element (with the OBJECT, MAP and AREA elements)
      <OBJECT data="welcome.gif" usemap="#map1">
      alt="Image map of areas in the library" </OBJECT>
      <MAP name="map1">
      <AREA coords="0,0,30,30" href="reference.html" alt="Reference">
      <AREA coords="34,34,100,100" href="media.html" alt="Audio Visual lab">
      </MAP>
    3. [New] Use the "title" attribute of the <A> element (with the OBJECT and SHAPES elements)
      <OBJECT data="welcome.gif" shapes>
      Areas in the library
      <A coord="0,0,30,30" href="reference.html" title="Reference">Reference</A>
      <A coords="34,34,100,100" href="media.html" title="Audio Visual lab">Audio Visual Lab</A>
      </OBJECT>
    4. [New] Create a descriptive paragraph within the <OBJECT> element that includes the links (using the OBJECT and A elements)
      <OBJECT data="welcome.gif" shapes>
      There are several areas in the library  including <A coord="0,0,30,30" href="reference.html">Reference</A> and <A coords="34,34,100,100" href="media.html"> the Audio Visual Lab</A>.  More text can follow or precede.
      </OBJECT>
    5. If a server-side image map has to be used, provide a list of the image map choices (links) as text links on the same page, on an alternative page that is accessible, or within the body of the <OBJECT> element (similar to method #4 above). To avoid confusion, if providing the list of links following the image map, you should indicate within the alt-text of the image map that this is so.

  5. [Recommended]  
      Provide descriptive titles for all images used as links.

    Use the "title" attribute of the <A> element to provide more information about images used as links (usually a graphical button). For example, <A HREF="home.html" title="XYZ company home page"><IMG SRC="logo.gif" alt="XYZ logo"></A>

 


Applets and Scripts

  1. [Required]  
      Provide a <NOSCRIPT> option for all scripts.

    For example:
    <SCRIPT type="text/tcl">
    ...some Tcl script to show a billboard of sports scores...
    </SCRIPT>
    <NOSCRIPT>
    <P> To access today's scores <A href="scores.html">visit our text-only version.</A>
    </NOSCRIPT>

  2. [Required]
      Provide a mechanism for the user to freeze any moving or blinking text.
    In the following example created by Mark Novak, if the user presses the escape key while the Java marquee has focus, the text will be displayed statically. View the example.

  3. [Required]
      Provide alternative text for all applets.
    1. [Interim] <APPLET code="Hello.class" width="500" height="500" alt="Java applet that prints a message">Hello World!</APPLET>
    2. [New] <OBJECT classid="Hello.class" width="500" height="500" title="Java Applet that prints a message">Hello World!</OBJECT>

  4. [Required]
      Provide descriptions of applets that present important information.
    1. [Interim] Use the <APPLET> element to provide a description (see the previous example).  Complete text descriptions could be substituted for the "Hello World!" message.
    2. [New] Use the <OBJECT> element (see the previous example).  Complete text descriptions and other accessible objects (see recommendation #5) could be substituted for the "Hello World!" message.

  5. [Required]  
      If an applet gathers information, provide an alternative mechanism to gather the information.

    As with the previous two recommendations, an alternative such as a user-input form, e-mail address, phone or fax number could be provided within the alternative text of either the <APPLET> or <OBJECT> elements.

  6. [Required]  
      If an applet requires a user interaction (e.g. the ability to manipulate a physics experiment) that can not be duplicated in an alternative format, make the applet directly accessible.

    The guidelines for accomplishing this are included within the Java Accessibility project, and are not yet complete.

  7. [Recommended]  
      For applets embedded with the <OBJECT> element, provide alternative, accessible presentations of information within the <OBJECT> element body.
    [New]
    In HTML4.0 the <APPLET> element has been replaced by the <OBJECT> element. The <OBJECT> element supports nesting of objects for alternative  renderings. For example:
    <!-- First, try the pressure applet -->
    <OBJECT title="How temperature affects pressure" classid="Press.class" width="500" height="500">
    <!-- Else, try the MPEG video -->
    <OBJECT data="pressure.mpeg" type="application/mpeg">
    <!-- Else, try the GIF image -->
    <OBJECT data="Pressure.gif">
    <!-- Else render the description and an alternative exercise -->
    As temperature increases the molecules in the balloon...
    </OBJECT></OBJECT></OBJECT>

  8. [Recommended]
      Make scripts and applets keyboard operable (using standard conventions).

  9. More exploration is needed in this area. Please stay tuned.

 


Audio and Video

  1. [Required]
      Provide a text transcript file for all information presented auditorally.
    A transcript is a textual representation of all dialogue, and audio information.

  2. [Required]
      Provide descriptions of all video information in an auditory form.
    Audio  descriptions of video action provide additional information during breaks in the dialogue of a movie about the actions that are occurring.

  3. [Required]
      Provide a separate text transcript file of all video descriptions.
    A text transcript of video action provides the same information as in recommendation #2 but in a format accessible to those with no audio access.

  4. [Required]
      Synchronize transcript and video description information with audio/video information, either directly or via a synchronization file.
    Some media formats such as QuickTime (for Macintosh) movies provide alternative tracks that can be used to add captioning and video descriptions.
    1. [Interim] Until the format you are using supports alternative tracks, two versions of the movie could be made available, one with captions (and descriptive video) and one without.
    2. [New] Future technologies will allow separate audio/visual files to be combined with text files via a synchronization file to create captioned audio and movies. It will also allow the user to choose from multiple sets of captions to match their reading skills.  For more information see the SMIL specification.

  5. TBD
      Provide visual notification of sounds that are played automatically.
    This can be provided in the form of a text phrase on the page that links to a text transcript or description of the sound file. The link to the transcript should appear in a highly visible location like the top of the page. However, if a script is automatically loading a sound, it should also be able to automatically load a visual indication that the sound is currently being played and provide a description or transcript of the sound. The controversy surrounding this recommendation is that the browser should load the semantic information instead of the auditory if the user preferences are set to do so. However, how do we resolve this so it will work with today's browsers.

  6. Design Trick: Use the "TITLE" attribute to provide a brief description within the link to very short sounds.
    For example, <a href="mittens.wav" title="meow"></a>

 


Text - Paragraphs, Horizontal Lines, Phrases, Punctuation and Symbols

  1. Refer to the section about Style Sheets for information about formatting and positioning text and graphics.

  2. [Recommended]
      Use logical styles rather than physical markups.  Do no misuse logical elements.
    Logical: DFN, EM, CITE, CODE, KBD, SAMP, STRONG, VAR, H1, H2, etc.
    Physical: size=14, B, I.

    This makes it easier for users to adjust the look of the screen (e.g., larger print, color contrast, etc.) when they apply their own style sheets or for browsers to adjust the presentation of the document based on user settings. The other advantage of logical elements is that they help enforce consistency in your documents.  It also leaves open the possibility for more sophisticated uses of the semantic encodings in the future.  For example, the Lycos indexing system can take advantage of semantic encoding to create abstracts of documents. Alternatively, browsers can navigate through a document by  logical styles, such as headers. Only use logical elements for what they represent.  For example, avoid using <cite> to undent a paragraph.

  3. [Recommended]
      Avoid using the BLINK and MARQUEE elements. [Interim]
    Use another method to draw attention to text such as text size or color.

  4. [Recommended]
      Properly nest headings. (Use style sheets for formatting [New] ).

Testing tips

 


Lists and Outlining

  1. [Recommended]
      Correctly encode list structure and list items with proper HTML elements (UL, OL, LI). (Use style sheets to adjust item spacing [New]).

Tips and tricks:

 


Tables

  1. [Required]
      Provide semantic tagging of table and cell data. [New]
    Future browsers and assistive technologies will be able to automatically translate table data into linear fashions if tables are tagged appropriately. Since the debate is ongoing about what provisions will be supported in HTML 4.0 this item will be revisited when the specification has solidified.

  2. [Required]
      Avoid using tables or <PRE> elements to arrange text documents in columns or otherwise layout a page. (Use style sheets to position graphics and text [New]).

  3. [Recommended]
      Ensure that alt-text does not wrap within tables used to position graphics. [Interim]
    Test for wrapping using the equivalent window size as that which can maximally fit on a 15-inch monitor using a common resolution such as 800x600 pixels.

  4. TBD
      For tables of text and numbers, provide an alternative page which presents the table information in a linear fashion. [Interim]
    There are several ways to link to alternative pages which are described in more detail in Methods for linking to alternative pages. This has not been rated because we couldn't decide if this was required or recommended.

  5. [Recommended]
      Provide a phone or fax number or e-mail address if tables can not be made accessible.

Testing tips

 


Links - Hypertext and Media-Independent Links

  1. [Recommended]
      Create link phrases that make sense when read out of context (but they are not too verbose).
    A user should be able to select a link from a list of all of the links on a page without reading the context in which the link was used. For example, using "click here" as the text phrase for several links requires a user viewing the page with a screen reader to scout out each link to determine the context before selecting one. However, replacing "click here" with something more descriptive solves this problem. For example, "download this document in ASCII text," "view the full version in HTML," or "to view the text version, click here."

  2. [Recommended]
      Place non-link,  printable characters (surrounded by spaces)  between links which occur consecutively to keep separate links from being read as one by screen readers. [Interim]

  3. Methods for linking to alternative pages:
    1. Provide a visible link at the top of each page to allow a user to move back and forth between the graphic and alternative versions of the page.[Interim]
    2. Provide the appropriate information in the header of the page so that the browser loads it automatically.[New]
      If the user has set their default media type to "speech" this will load the alternative page automatically:
      <HEAD><LINK title="Text-only version" rel="alternate" href="text_only.html" media="speech"></HEAD>

 


Frames - Multi-view presentation of documents

  1. [Required]
      Provide a <NOFRAME> option for each <FRAMESET>.
    When using the <NOFRAME> option it is easiest to include all essential information on the bottom of the main frame.

  2. [Recommended]
      Title each frame.[New]
    For example:
    <FRAMESET cols="10%,90%" title="Our library of electronic documents">
    <FRAME src="nav.html" title="Navigation bar">
    <FRAME src="doc.html" title="Documents">
    </FRAMESET>

 


User-Input Forms

  1. [Required]
      Do not use image maps to create graphical "submit" buttons.

  2. [Required]
      Explicitly associate labels with their control. [New]
    For example:
    <FORM action="http://somesite.com/adduser" method="post"
    <FIELDSET>
    <LEGEND align="top">Personal information</LEGEND>
    <LABEL for="firstname">First name: </LABEL>
    <INPUT type="text" id="firstname" tabindex="1">
    <LABEL for="lastname">Last name: </LABEL>
    <INPUT type="text" id="lastname" tabindex="2">
    ...more personal information...
    </FIELDSET>
    <FIELDSET>
    <LEGEND align="top">Medical History</LEGEND>
    ...medical history information...
    </FIELDSET>
    </FORM>

  3. [Required]
      Provide alternative text for images used as "submit" buttons.
    For example, <INPUT type="image" name="submit" src="button.gif" alt="Submit">

  4. [Recommended]
      Specify a logical tab order with "tabindex".[New]
    For example, (taken from the HTML 4.0 draft)
    <INPUT tabindex="1" type="text" name="field1">
    <INPUT tabindex="2" type="text" name="field2">
    <INPUT tabindex="3" type="submit" name="submit">
  5. [Recommended]
      Group related controls with the <FIELDSET> element.[New]
    see the example for #2 - "Explicitly associate labels with their control."

  6. [Recommended]
      Label a group of controls with the <LEGEND> element. [New]
    see the example for #2 - "Explicitly associate labels with their control."

  7. [Recommended]
      Include default, place-holding characters in edit boxes and text areas. [Interim]

  8. [Recommended]
      Include a phone number, e-mail address, postal address or fax number for submitting information. 

  9. [Recommended]
      Create keyboard shortcuts for form elements. [New]
    This example assigns "U" as the access key. Typing "U" gives focus to the label which gives focus to the control then the user can input text.
    <FORM action="submit" method="post">
    <label for="user" accesskey="U">user name</label>
    <input type="text" name="user">
    </FORM>

 


Tips and tricks to further enhance the usability of pages

  1. If, after best efforts, any page is still not accessible, provide a link to an alternative page which is accessible, has equivalent information, and is maintained with the same frequency as the inaccessible page.

  2. Use the "title" attribute on horizontal rules <hr title="new section">

  3. Use the "title" attribute for acronyms and abbreviations <abbr>title="World wide web">WWW</abbr>

  4. Use the "title" attribute for very short sounds <a href="mittens.wav" title="meow"></a>

  5. Avoid using ASCII art or replace it with an image and alternative text.
    Common typographic characters or constructions to be avoided are emoticons, arrows consisting of dashes and greater than signs -->, etc..

  6. Provide keyboard shortcuts for links.
    The "accesskey " attribute of <LABEL>, <A>, <CAPTION> and <LEGEND> allows an author to associate a keyboard shortcut with the phrase. For example, when associated with a link, it takes the user to the associated document.  <A accesskey="C" href="doc.html">Press C to go to XYZ page</A>

  7. Front-load link phrases in lists.

 


Good Web Site Design Practices

  1. Page layout is consistent but pages or areas do not look identical.

  2. A clear, consistent navigation structure is used. 

  3. Navigation bars provide easy access to the navigation structure.

  4. Instructions are provided to describe the general layout of the site, the access features used, and how to use them.

  5. A site map is available.

  6. Different types of searches are available for different skill levels and preferences.

  7. Nothing within the site prevents keyboard operation.

  8. Elements outside of the HTML 4.0 specification (such as <BLINK> and <MARQUEE>) are not used

  9. Use a design tool that supports access features (and does not remove access when you close, or reopen your page using the tool)

  10. Test the site with AT LEAST:
    • a text only browser (such as Lynx)
    • a self-voicing browser (such as PWWebspeak)
    • Multiple graphic browsers, with:
      • sounds and graphics loaded,
      • graphics not loaded,
      • sounds not loaded,
      • no mouse