Accessibility of AJAX Applications
What is AJAX?
- XHTML (or HTML) and CSS to create an interface and visually style information. The XHTML and CSS elements can be dynamically modified to display new information or styling. These changes are typically done using the Document Object Model.
Using AJAX, web applications can allow high levels of interactivity and processing, but do not require the standard type of client-server interaction, specifically:
- A web page interface is presented.
- User information is collected (via forms, links, etc.).
- The user submits information (submits form, activates link, etc.).
- The server processes submitted information.
- A new web page interface is sent to the user.
With AJAX, all of these steps can be handled in one interface. Examples of AJAX implementation are mapping applications, real-time searches, chats, real-time form validation and processing, live shopping cart applications, e-mail applications, and the list goes on. The types of web applications and interactions allowed by using AJAX has given rise to the term "Web 2.0" — something that surely indicates a major revolution in the way the web can be used. While none of the technologies that comprise AJAX are new or groundbreaking, the increased popularity and awareness of AJAX development brings with it a need for developers to be aware of the accessibility implications these technologies bring.
Why not AJAX?
By its nature, AJAX tends to update and manipulate interface elements 'on the fly'. AJAX also can submit information to the server without user interaction or may do so in methods that are not obvious to the user. For example, most users expect forms to be submitted, validated, and processed when a submit button is selected, but with AJAX this submission and processing can occur at any time (e.g., every 5 seconds, when a form element loses focus, etc.). It may not be apparent to users that information is being processed and saved - and this confusion can be intensified by the fact that AJAX can perform these operations very quickly. Most users expect there to be some delay before feedback or additional information is presented and typically expect the entire page to refresh indicating a new display - with AJAX, none of these visual cues may be apparent.
Another issue with AJAX is how the application interface is updated. When updates to the interface occur, it may not be visually apparent that a change has occurred. The problem is even more troublesome for screen reader users. Screen readers typically read in a linear fashion. When changes happen in the interface, the screen reader user may not be aware of the change and the new content will likely not be read.
In short, to allow dynamic interface changes to be accessible, the application must alert the user that a change has occurred, allow direct access to the new content, and then allow continued functionality of the web application. This process, while difficult to achieve, especially for screen reader users, is possible to achieve in many AJAX applications. Part 2 of this article presents possible solutions to many of these issues, including ways in which ARIA (Accessible Rich Internet Applications) can make dynamic content more accessible.