Post-Mortem
Not all applications will have an accessible, gracefully degradable, unobtrusive solution. Some of the more complex Ajax applications that emulate a word processor or spreadsheet, email application, and such would require huge amounts of code to even attempt to add back basic web functionality, or to make them accessible.
Even the later examples demonstrated in this chapter will fail with most screen readers—all but the last example, which contains all the data when the page loads.
For applications that can be run in parallel with server-side functionality or run with some other unobtrusive implementation, trying to "recover" all web functionality isn't necessarily a good use of time or effort. It's more effective to build in a prominent internal navigation system than to emulate true Back button behavior. Any use of timers just to create this type of behavior should be avoided, as they can add to erratic side effects.
However, it is advisable to provide a script-based temporary URL that can enable recovery of a page's state if a user follows a link external to the application or accesses another web site through her bookmarks. It shouldn't be treated as a permanent link to the page, though.
The examples in this chapter are all loosely based on the concept of a slideshow, but the same approaches can be used for all forms of paged content. This includes tabbed pages, as we will examine in Chapter 9.