W3C Web Accessibility Initiative


This page contains material from a presentation at the WAI Best Practices Exchange Training in Madrid, Spain in February 2004.


Accessible Web Applications

Shadi Abou-Zahra, W3C WAI

Last updated: 8 February 2004

Contents

Client-Side Accessibility
Structure and Layout
Functional Scripts
Special Effects
Embedded Objects
Server-Side Accessibility
Content Generation
Database Information
Server Configuration

Client-Side Accessibility

  1. Menu Structure
  2. Embedded Scripts
  3. Rollover Effects
  4. User Interaction
  5. Scripts in Links
  6. Drop-Down Menus
  7. Dialogs and Errors
  8. More Things to Watch...

Non-existent Menu Structure

Guideline 13: Provide clear navigation mechanisms - Failed

  ...
  <div ...>Books
    <div ...>
      <div><a href="page1.html" ...>Crime</a></div>
      <div><a href="page2.html" ...>Comedy</a></div>
      <div><a href="page3.html" ...>Fiction</a></div>
    </div>
  </div>
  ...

Correct Menu Structure

Guideline 13: Provide clear navigation mechanisms - Passed

  ...
  <li ...>Books
    <ul ...>
      <li><a href="page1.html" ...>Crime</a></li>
      <li><a href="page2.html" ...>Comedy</a></li>
      <li><a href="page3.html" ...>Fiction</a></li>
    </ul>
  </li>
  ...

No Equivalent Alternative

Guideline 6: Ensure that pages featuring new technologies transform gracefully - Failed

  ...
  <script language="JavaScript" type="text/javascript">
    ...
  </script>
  ...
  <noscript>
    <p>YOUR BROWSER DOES NOT SUPPORT JAVASCRIPT!!!</p>
  </noscript>
  ...

Fallback Alternative

Guideline 6: Ensure that pages featuring new technologies transform gracefully - Passed

  ...
  <script language="JavaScript" type="text/javascript">
    ...
  </script>
  ...
  <noscript>
    ...
    <a href="alternate.html" ...>Server-Side Alternate</a>
    ...
  </noscript>
  ...

Script-Based Rollovers

Guideline 3: Use markup and style sheets and do so properly - Failed

  ...
  <a href="page1.html" onMouseOut="out(1)"
                       onMouseOver="over(1)" ...>Crime</a>
  ...

CSS-Based Rollovers

  ...
  <style type="text/css">
    ...
    a:hover { ... }
    ...
  </style>
  ...
  <a href="page3.html" ...>Fiction</a>
  ...

Mouse-Based Interaction

Guideline 9: Design for device-independence - Failed

  ...
  <a href="page1.html" onMouseOut="out(1)"
                       onMouseOver="over(1)" ...>Crime</a>
  ...

Mouse and Keyboard Interaction

Guideline 9: Design for device-independence - Passed

  ...
  <a href="page3.html" onBlur="out(3)"
                       onFocus="over(3)"
                       onMouseOut="out(3)"
                       onMouseOver="over(3)" ...>Fiction</a>
  ...

JavaScripts as Links

Guideline 1: Provide equivalent alternatives to auditory and visual content - Failed

  ...
  <a href="JavaScript:myFunction();" ...>Function</a>
  ...

JavaScript if Available

Guideline 1: Provide equivalent alternatives to auditory and visual content - Passed

  ...
  <a href="alternative.html"
        onclick="myFunction(); return False;" ...>Function</a>
  ...

OnChange Drop-Down Menu

Guideline 12: Provide context and orientation information - Failed

  ...
  <select name="Books" onChange="jump()">
    <option value="Crime">Crime</option>
    <option value="Comdey">Comedy</option>
    <option value="Fiction">Fiction</option>
  </select>
  ...

OnSubmit Drop-Down Menu

Guideline 12: Provide context and orientation information - Passed

  ...
  <select name="Books" onSubmit="check()">
    <option value="Crime">Crime</option>
    <option value="Comedy">Comedy</option>
    <option value="Fiction">Fiction</option>
  </select>
  <input type="Image" src="submit.png" alt="Submit Selection">
  ...

Color Based Dialogs

Guideline 2: Don't rely on color alone - Failed

  ...
  <p class="red">Values in red are required</p>
  ...

Clear Dialogs

Guideline 2: Don't rely on color alone - Passed

  ...
  <p class="red">Values marked with * are required</p>
  ...

More Things To Watch...

Pop-up windows or spawning new windows without informing the user
Guideline 12: Provide context and orientation information
Client-Side redirection (using META or JavaScript)
Guideline 7: Ensure user control of time-sensitive content changes
Embedded objects (Applets, ActiveX, ...) are not accessible
Guideline 8: Ensure direct accessibility of embedded user interfaces

Server-Side Accessibility

  1. Redundant Logic
  2. Markup Generator
  3. Database Model
  4. Error Messages

Redundant Logic

Examples
1. A server-side script checks the form values even though it is redundant to a client-side script
2. Server-side session tracking is implemented even though it is redundant to the present cookies support
Rationale
Relying on certain browser functionality limits the compatibility of the application

Markup Generation

Example
1. Table headers are inserted manually because the content management system generates broken table markup
2. Scripts editor of the content authoring tool is not used because it produces inaccessible script code
3. Configurations and templates are adjusted to compensate for the behaviour of the content management system
Rationale
Content authoring tools are required to generate valid markup and accessible content
Related Guidelines
Authoring Tools Accessibility Guidelines (ATAG) 1.0

Database Model

Example
1. The alternate text and long description for an image are stored in the database along with the image itself
2. A Database model is extended to include the table header, description as well as summary information
Rationale
In order to make a user interface accessible the database has to be designed appropriately
Related Guidelines
XML Accessibility Guidelines (XAG)

Error Messages

Example
1. Error messages are modified to include navigation elements to direct the users back to the content
2. Standard dialogs are stripped from codes and technical terms so that they are easier to understand
Rationale
Error message dialogs are part of the application and also need to be accessible

Summary

Related Resources

Client-side accessibility features
Server-side accessibility features