# Java Accessibility Overview

Java Accessibility provides the technology that allows assistive technologies to obtain accessible information about the user interface objects in the Java Virtual Machine. Java Accessibility supports version 1.1 and up of the Java platform and is provided in several ways:

1. A Java Accessibility API toolkit that provides "boiler plate" interfaces for UI components. These interfaces allow the user to obtain information that is common to all "accessible" components (such as AccessibleName and AccessibleDescription), as well as information that is more component specific (such as AccessibleValue and AccessibleSelection).
2. Utilities that support assistive technology developers.
3. Support for keyboard navigation of graphical user interface components.
4. The accessible design of the Java Foundation Classes include the ability to "plug in" an alternative look and feel for an application without requiring changes to be made in the application.

Explanation of API Packages, Interfaces, and Classes

The following are brief descriptions of the Java 2 Platform's accessibility API. More information can be found in the API documentation for the javax.accessibility package.

Package javax.accessibility

> Defines a contract between user-interface components and an assistive technology that provides access to those components.

Interface Accessible

> Interface Accessible is the main interface for the Accessibility package.

Interface AccessibleAction

> The AccessibleAction interface should be supported by any object that can perform one or more actions.

Interface AccessibleComponent

> The AccessibleComponent interface should be supported by any object that is rendered on the screen.

Interface AccessibleHypertext

> The AccessibleHypertext class is the base class for all classes that present hypertext information on the display.

Interface AccessibleIcon

> The AccessibleIcon interface should be supported by any object that has an associated icon (for example, buttons).

Interface AccessibleSelection

> The AccessibleSelection interface provides the standard mechanism for an assistive technology to determine what the current selected children are, as well as modify the selection set.

Interface AccessibleTableModelChange

> The AccessibleTableModelChange interface describes a change to the table model.

Interface AccessibleText

> The AccessibleText interface should be implemented by all classes that present textual information on the display.

Interface AccessibleValue

> The AccessibleValue interface should be supported by any object that supports a numerical value (for example, a scroll bar).

Class AccessibleBundle

> Base class used to maintain a strongly typed enumeration.

Class AccessibleContext

> AccessibleContext represents the minimum information all accessible objects return.

Class AccessibleHyperlink

> Encapsulation of a link, or set of links.

Class AccessibleRelation

> Class AccessibleRelation describes a relation between the object that implements the AccessibleRelation and one or more other objects.

Class AccessibleRelationSet

> Class AccessibleRelationSet determines a component's relation set.

Class AccessibleResourceBundle

> A resource bundle containing the localized strings in the accessibility package.

Class AccessibleRole

> Class AccessibleRole determines the role of a component.

Class AccessibleState

> Class AccessibleState describes a components particular state.

Class AccessibleStateSet

> Class AccessibleStateSet determines a components state set.

Class AccessibleTable

> Class AccessibleTable describes a user-interface component that presents data in a two-dimensional table format.

The Java Accessibility Utilities

> The Java Accessibility Utilities are delivered by Sun as a separately downloadable package for use by assistive technology vendors in their products which provide access to Java applications running in a Java Virtual Machine. This package provides the necessary support for assistive technologies to locate and query user interface objects inside a Java application running in a Java Virtual Machine. It also provides support for installing "event listeners" into these objects. These event listeners allow objects to learn about specific events occurring in other objects using the peer-to-peer approach defined by the delegation event model introduced in JDK1.1.

> To date the Accessibility Utilities are as follows.

> - AwtMonitor
> - Ferret
> - JavaMonitor
> - Linker
> - Monkey
> For more information, see Java Accessibility Utilities.

Keyboard Navigation Support

> The interactive user interface components provide a full set of keyboard bindings that enable mouseless navigation, edit, and control of the components. No special efforts are required of the developer to enable these capabilities and if the developer so desires they can easily change any keybinding.

Pluggable Look and Feel

> The Java Foundation Classes (JFC) implement a Pluggable Look and Feel architecture. This architecture allows non-visual manifestations of a user interface to replace or enhance the visual presentation of an application. The expression of the user interface is separated from the underlying structure and data of each individual component. This is accomplished by separating the user interface of the component from its model. The model of a component is the structure which encapsulates the state and information that is presented to the user by the user interface. More information on this architecture can be found in The Swing Connection.

*As used on this web site, the terms "Java Virtual Machine" or "JVM" mean a virtual machine for the Java platform.

Copyright © 1995-98 Sun Microsystems, Inc. All Rights Reserved. Please send comments to: access@sun.com | Java Software