1. We have developed an API (the Java Accessibility API) to allow Java applications to be compatible with screen access software. This API is available in two forms: as the code package 'com.sun.java.accessibility', shipping as part of the Java Foundation Classes version 1.1, downloadable at http://java.sun.com/products/jfc and it will be packaged as the JDK core package 'java.awt.accessibility', to ship with the next release of the JDK.
2. We have developed a set of utilities for Assistive Technology vendors
(the Java Accessibility Utilities package), that allows them to easily
make queries of the system (things like "GetObjectAtPoint", "GetTopLevelWindows",
etc.), which is available as
a downloadable package to work in any Java VM from JDK 1.1 to the present.
3. We are developing a standard mechanism for getting the Java Accessibility API information out of the Java VM and to assistive technology running in the native host environment (the Java Accessibility Bridge). This mechanism will be based on JNI - Java Native Interfaces.
4. We have developing the pluggable look & feel architecture to
support direct accessibility in the Java Foundation Classes (downloadable
at http://java.sun.com/products/jfc).
With the pluggable look and feel architecture, mainstream developers can
build Java applications whose user interface is chosen by the user (who
might choose an audio interface instead of, or in addition to, a visual
interface).
1. a set of utility classes (the com.sun.java.accessibility.util class package) for use by Assistive Technology Vendors which provides methods for listening to all AWT and JFC events in any running Java applications; for getting the object at any given point in any Java window on the screen; for enumerating the top-level Java windows that are open; for getting the current Java component that has the keyboard focus; and for retrieving the current mouse cursor location
2. example Java applications with full source code illustrating various
techniques for providing access to Java applications via the Java Accessibility
API
Developers who want to ensure that their Java applications will interoperate with assistive technologies, such as screen readers, Braille terminals, etc., use the Java Accessibility API in all of the user-interface components of their applications. If they are exclusively using the user-interface components of Java Foundation Classes to build their applications, most of their work to ensure compatibility is done; they need to simply ensure that appropriate names and descriptions are set on each of the user-interface components. If these developers are using user-interface components from other class libraries, or if they are developing their own custom user-interface components, they need to explicitly support the Java Accessibility API.
Vendors are also building Assistive Technologies in Java, such as the IBM Special Needs Services group, which is building a screen reader for the Java platform that will provide blind access to Java applications which support the Java Accessibility API.
Finally, vendors of native Assistive Technologies (such as those found
on the Macintosh, Microsoft Windows, and OS/2 platforms), will be utilizing
the forthcoming Java Accessibility Bridge to provide access to Java applications
running within those operating system environments.
The Java Accessibility Bridge,
which provides a mechanism for existing native Assistive Technologies to
communicate with programs on the Java platform using the Java Accessibility
API, requires platform-specific code and when released may function differently
on different platforms.
The Pluggable Look and Feel architecture of the Java Foundation Classes
was developed based on the input of many experts in user-interface design,
and tested by the over 300,000 developers who have downloaded them during
their development cycle. One of the key design reasons for making
the Pluggable Look and Feel was to support direct accessibility in the
modality of the user's choice. Several Assistive Technology developers
are creating alternate user interfaces using the Pluggable Look and Feel
architecture, and their input helped shape the design during its development.