Why not AJAX?
AJAX also requires that XMLHttpRequest be supported, which many browsers do not.
Such a requirement may be very difficult to achieve. While developers may choose to require the users to use a browser that supports AJAX, they must understand that such requirements may not be possible for all users - especially those using portable devices or older web browsers.
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.
Part 2 of this article will present possible solutions to many of these issues. 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 will demonstrate how.