What would it be like to use your computer without being able to see? How would
you write documents if you didn't have the use of your hands?
For the past 10 years, the IBM Special Needs Systems (SNS) group
has grappled with, and provided solutions for, these and other accessibility issues. The group has developed
solutions ranging from products that read the screen for people who are blind to a speech therapy tool for
people who have difficulty hearing or are speech impaired. In February 1997, developers from IBM SNS and
their counterparts in the Sun Accessibility group decided to pool their efforts to design and build
next-generation accessibility into Java.
Accessibility APIs and the Java Foundation Class Libraries
IBM provided expertise in the architecture of accessibility components for
the Java Foundations Class Libraries, while Sun designed
and coded the features to be used as an open-standard for Java application design and Access
Technology Vendor (ATV) support. The Early Access Java Foundation Class (JFC) components contain
much of the accessibility information that will be contained in the final release. The
Java Accessibility APIs (com.sun.accessibility package) provide a standard programmatic
interface to accessibility information already built into JFC components.
The Accessibility Problem
In many cases, people who have disabilities cannot use mainstream applications. This lack of
accessibility is due to application developers not having tools to enable their programs.
Operating systems have not provided much help either. Applications either do not
take advantage of accessibility features provided by operating systems, or operating systems
do not provide the infrastructure for developers to consistently build accessibility features into their
applications.
This has required ATVs to reverse engineer applications and operating systems to make them
accessible. Often, considerable time passes between the launch of an application or operating system
and the debut of an accessibility aid that supports it. Many times, a new version of the application or
operating system is available before the ATV has been able to "fix" the previous version.
Access software, when available, must run on Mac, Windows, OS/2, DOS, and UNIX desktop platforms. Yet,
these environments are so different that the ATV must develop a different version of the same access
software for each platform. And let's not forget the user who must switch from one environment to
another. Imagine having to learn a new access program or new access features along with a new
operating environment.
The Solution Is Java
Java is the ideal environment for solving these accessibility issues. Its
object-oriented construction gives each object in a program the ability to store accessibility
information about itself, and -- more importantly -- to export this information to ATV software.
Note: Other mainstream operating systems have the ability to do this, in part. However, application
developers have loopholes that enable them to fall back on their legacy development tools and
methodologies, either providing no access information or hiding it from the accessibility aid.
The new JFC and the Accessibility APIs enable application
programmers -- at the beginning of the development cycle -- to build in features for
people who have disabilities. This makes their software
ready for accessibility aids at the time of release.
The JFC libraries are a boon for ATVs too. Because the JFC libraries are an effort to build
a robust application environment that is independent of any operating system, access software can be
written once and re-used on any platform.
Furthermore, Java enables the same software to be re-used independent of hardware. This throws
open the doors for access to PowerPC systems, hand-held devices, digital TV systems, appliances,
Kiosks, paging units, and the electronic devices of the future.
Why 100% Pure Java Accessibility Is Important
It is crucial that the industry adopt 100% Pure Java. As long as
companies attempt to develop their own platform-dependent classes, accessibility will continue to
be a serious problem for people with special needs.
Other companies proposing Java accessibility solutions, aside from being platform-specific,
suffer from lack of extensibility and lack of support for accessible text. JFC provides a standard
interface to enable applications to implement accessible text components, such as editable text areas.
Whereas other solutions merely provide the default action, the JFC provides for additional application
control interfaces. This enables ATVs to harness the full functionality of application components.
Unlike competing solutions, the JFC addresses accessibility in two ways by providing traditional
APIs to support conventional access as well as direct accessibility via the pluggable look and feel.
The Future of Java Accessibility Development within IBM
IBM wants to move accessibility software into mainstream customer solutions. To that end,
IBM SNS will continue to work with Sun on additional component interfaces to make applications
directly accessible. In addition, IBM SNS is developing design guidelines for access-enabling
applications and working with IBM software groups to develop authoring tools for accessible programs.
The future is even more exciting. Java, with it's
Accessibility APIs, gives developers the key to the information locked within applications
and allows accessibility to be accommodated easily in the initial software design. The
opportunity exists to "level the playing field" so that all users, regardless of their special needs,
will be able to access information in ways that makes them most efficient, proficient, and effective.