Chapter 25. Programming with Accessibility
Accessibility is a Java feature that allows you to extend your programs by interfacing an application’s components with assistive technologies that have special permission to use them. Assistive technologies are, in the narrowest sense, specialized tools that disabled people can use to assist in interacting with your application; examples include speech-recognition and audio output. In a broader sense, however, assistive technologies can be robust application suites that can assist just about anybody with anything.
It helps to think of accessibility as a two-sided conversation. This conversation takes place between an assistive technology and the “accessibility friendly” components of applications. Assistive technologies are quite powerful: Java grants them access to all the components in the virtual machine that they can interface with, as well as the ability to interface with the windowing event queue. The latter gives an assistive technology the ability to monitor graphical events. The former means an assistive technology can directly interact with the GUI widgets of one or more applications quickly and easily—without disrupting the application beneath it.
In order for components to interface with assistive technologies, they must implement special “accessible” interfaces. (The Swing components already implement these interfaces.) There are six unique interfaces for exporting accessible functionality: one each for actions, component properties, ...