Building Next-Generation Accessibility into Java

By Richard Schwerdtfeger
IBM Special Needs


Developers from IBM Special Needs Systems and Sun's Accessibility group
are working to design and build next-generation accessibility into Java

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.



JavaTM is a trademark of Sun Microsystems, Inc.

Microsoft is a registered trademark of Microsoft Corporation.

Other companies, products, and service names may be trademarks or service marks of others.

Copyright    Trademark



  Java Feature Java Education Java Home  
IBM HomeOrderEmployment