mod_accessibility works with any browser, by default presenting the user with the choice of views in a toolbar in every page. However, the user interface can be improved using simple HTTP negotiation.
mod_accessibility uses an additional protocol that enables browsers to dispense with the toolbar. This is based on custom HTTP headers:
X-accessibility-options
X-accessibility-view
Any server with mod_accessibility enabled will set an
X-accessibility-options
response header listing the
available views:
X-accessibility-options: Noframes,Standard,Full,Betsie,Outline
This is set with every response; non-supporting clients will of course ignore it.
Supporting clients should present the options to the user, in a manner suitable to the viewing situation: for example a GUI browser could offer an accessibility menu, while an assistive browser could tie the options to hotkeys. Clients will communicate the selection to the browser using the X-accessibility-view header: for example
X-accessibility-view: Standard
When mod_accessibility receives this header, it assumes a supporting Client, and suppresses the toolbar.
The smart client protocol is a form of content negotiation.
To work correctly with the HTTP protocol, it adds X-accessibility-view
to the Vary
response header. This enables correct
(and efficient) cacheing of the different views.
The (optional) use of cookies to remember a user's preferred View between pages has been dropped. Mod_accessibility now uses smart URL-rewriting to keep track of user preferences. This simplifies cacheing, and thus works more cleanly with the WWW architecture than the cookie-based preferences.