Client-Server Protocol

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.

Smart Clients

mod_accessibility uses an additional protocol that enables browsers to dispense with the toolbar. This is based on custom HTTP headers:


The Protocol

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.

Proxies and Cacheing

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.