Web Posted on: February 24, 1998
100% Pure JavaTM: IBM's Focus to Develop Accessibility for the Next Generation
CSUN
Technology and Persons with Disabilities
Internet/WWW session 89
Thursday, March 19, 1998
© Copyright IBM Corporation, 1998
The most current version of the guidelines discussed in this presentation are maintained at:
http://www.austin.ibm.com/sns/access.html
February 15, 1998
Richard S. Schwerdtfeger
Lead Architect,
IBM Special Needs Systems,
Austin, TX
e-mail: schwer@us.ibm.com
Phillip D. Jenkins,
Accessibility Program Manager,
IBM Special Needs Systems,
Austin, TX
e-mail: pjenkins@us.ibm.com
Table of Contents
- Why Accessibility?
- Accessible human-computer interaction
- Why Java for accessibility?
- What IBM is Doing
- IBM Java accessibility initiatives
- Sun collaboration
- Java Screen Reader technology
- IBM developers of tools and applications
- Access technology partners
- Beyond IBM
- Guidelines for Writing Accessible Java Application
The (csuns89.txt) text version of this file is available.
The (csuns89.prn) post script printable version of this file is also available.
Notices
THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
All statements regarding future intent are subject to change or withdrawal without notice and represent goals and objectives only.
Information in this document about non-IBM products was obtained from the suppliers of these products, published announcement material, or other publicly available sources.
The information contained in this document represents the current views of IBM on the issues discussed as of date of publication. IBM cannot guarantee the accuracy of any information after the date of publication.
Executive Summary
This presentation discusses why IBM is focusing on the Javatm platform for accessibility, what IBM is doing to encourage and exploit this technology, and an overview of the IBM guidelines for developing next-generation accessibility.
IBM is continuing its tradition of leading the industry in accessible solutions by focusing on the Javatm platform for accessibility. Javatm is the fastest growing computer language and application environment in the industry. Java is fast becoming a cornerstone of many company network-computing strategies. The accessibility features in the Java Foundation Classestm (JFC), the Accessibility APIs, and the underlying object-oriented architecture provide a foundation for an accessible strategy.
IBM has collaborated with Sun Microsystems to bring to the industry the Javatm Accessibility APIs and their implementation in JFC. IBM recently demonstrated Screen Readertm like functions written in Javatm for the Javatm application environment. IBM is also encouraging its own developers to exploit the Javatm accessibility technology in its own programming tools and software solutions. Furthermore, IBM is also working with other access technology vendors to encourage and support their technologies so that working solutions become available in the Javatm environment.
The document, "IBM Guidelines for Writing Accessible Applications Using 100% Pure Javatm", encourages application developers to consider the special needs of disabled users when they are developing software programs in Java. In the guidelines, we discuss the following topics:
- Essential accessibility programming practices that, if used, make applications easy for disabled people to access.
- The Java Foundation Classes (JFC) and their implementation of accessibility methods in the user interface components (application developers should take advantage of this easy way to incorporate accessibility into their designs).
- The Java Accessibility API (if developers choose to create components themselves, they should implement this API).
These topics are covered in detail with supporting rationale, citing specific Java code, and giving examples where appropriate.
This presentation highlights the Javatm accessibility features and offers some guidelines for creating accessible Java-based software. This presentation and the associated guidelines are designed to be interactive, on-line, and easily updated. The guidelines document can be printed, but the on-line version at the IBM Special Needs Systems Web site http://www.austin.ibm.com/sns/access.html will be continually updated and will be more helpful because of hyperlinks pointing to supporting information.
IBM, Javatm, and Accessibility
Why Accessibility?
Imagine a disabled person using a computer product. Imagine someone who can not use her hands or her eyes -- that means she can not use a mouse, type on a keyboard, see a screen, or read a User's Guide. If she can not successfully use the computer then she might not be able to keep her job.
Over the years, disabled users and Access Technology Vendors (ATVs) have invented incredibly clever work-arounds for these problems. Voice input replaced the mouse; mouth sticks and switches replaced the keyboard; text-to-speech synthesis replaced the screen; online books replaced printed books.
Lest you think only hardware is inaccessible, think again. Software has its share of problems too. Operating systems and application programs often include unintentional roadblocks to people who have disabilities. Some examples:
- Programs that provide only mouse input (inaccessible to people who are blind or who use voice control);
- Programs that use audio-only messages (deaf individuals cannot hear the messages - this also applies to people who have systems that do not have sound capability);
- Operating systems that define Ctrl+Alt+Del to reboot the system (try doing this with only one hand).
Accessible human-computer interaction
The concept of "the user" is key to engineers developing applications. Software engineers have typically identified the role of programmers, writers, business owners, medical technicians, etc. as user classes of the software being developed. The definitions of the user class should be expanded to include persons who have disabilities. For example, the programmer class should also include blind programmers, writers should also include deaf writers, and technicians should also include disabled technicians.
All users have a range of capabilities depending on the environment, the task, and the stage of life the person is in. A hearing user in a noisy environment may not be able to hear a warning beep to the same degree as a deaf user would not be able to hear the warning beep in a quiet environment. A search robot or webcrawler needs the alternative text for cataloging images from a Web site to the same degree as a blind user needs the alternative text to understand what is there. Furthermore, although the user may be temporarily able to perform the task now, after an accident or later in life the need for assistive technology will be greater. Accessible designs will include capabilities for changes in environment, tasks, and users.
As the developments for increased ease-of-use and better human-computer interaction continue to improve, they also need to include the concepts of accessible design.
Why Java for accessibility?
Java was first developed for use in small appliances. It has since evolved into a language that enables applications to run on multiple operating systems and hardware platforms. Because it will run virtually everywhere it was enthusiastically adopted for Web and Internet applications.
Traditional graphical user interface (GUI) based operating systems need to support legacy software that is not object-oriented. This introduces inconsistency in the ability to provide accessibility information and therefore leads to reverse-engineered access solutions, which are not always accurate.
Java is object-oriented from the ground up. This provides a mechanism for application components to export accessibility information about themselves to assistive technologies.
Java's characteristics and these factors make it ideal for developing industry standards for accessible solutions.
The software engineers at Sun and IBM who are developing Javatm technologies are well aware of accessibility issues. They are consulting with disabled customers, business, education, and rehabilitation experts in the computer accessibility community, and conducting extensive reviews and beta testing of their code. As a result, many accessibility features are already built into Java and even more features are expected.
Developing with Java's accessibility features will yield a triple benefit. You will win in three ways. First, the features are easy to incorporate and require only extremely moderate development resource. Second, your software will be universally accessible, customers of all abilities will be able to work with it. Third, features that are designed specifically for disabled users often make the product more usable for able-bodied users as well. For example, if you "keyboard-enable" your application for blind people to use with screen readers, users of voice control software will find your application easier to use as well.
Assistive Technology Vendors (ATVs) are winners too. If you implement your application using the Java accessibility features, ATVs will have a much easier time making their products work with yours. ATVs have developed technologies that enable users who are blind, who have low vision, the deaf and hard of hearing, those who have mobility impairments, those with cognitive disorders, and those with a combination of disabilities to effectively use your software, provided the software is accessible.
What IBM is Doing
IBM Java accessibility initiatives
IBM Special Needs Systems (SNS) is leading several initiatives to insure that world class accessible Java solutions are developed:
- Collaborating with Sun Microsystems on the development of the Java Accessibility APIs and their implementation in JFC
- Developing Java Screen Reader technology in Java for the Java applications environment
- Working with developers of tools, applications, and assistive technologies inside IBM and with outside partners
- Developing guidelines for writing accessible Java applications
Sun collaboration
IBM has collaborated with Sun on some of the newest (version 0.7 at time of printing) accessibility features in the Accessibility API and JFC. These features are important for assistive technologies to be able to provide more robust information about the application to the user:
- Passive notification of changes to application components:
- Changes to visible data
- Changes in Component Description
- Changes in Component Name
- Changes to Caret Position
- Changes to Selected text
- Changes to Value changes to scrollable items and progress bars
- Support for character attributes in documents:
- Color, Font, Font Style, Font Name
- Support for embedded components in documents
- Support For Accessible Value change for items such as Scrollbars, sliders, and progress bars
- Enhanced interface to better separate Accessibility API information from the actual component API
- New Features in JFC:
- Support for latest Accessibility API
- Support for keyboard navigation.
Java Screen Reader technology
IBM Special Needs Systems has succeeded with using Java to make computer applications more accessible to people who have disabilities. Screen Reader technology -- developed by IBM -- reads aloud (or Brailles) every word, icon, and control on a user's screen. This Screen Reader technology is incorporating the new Java accessibility features to assist blind and dyslexic users as well. What this means is that in the future, IBM Special Needs technologies will provide access to Java applications running on any computer platforms including Apple, Solaris, AIX, Windows, and OS/2. IBM's Special Needs Systems demonstrated prototype Java Screen Reader technology at the October 1997 "Closing the Gap" conference on technology for the disabled and the March 1998 "CSUN Technology and Persons with Disabilities" conference. The IBM company is leading the world into a networked electronic business computing paradigm where everyone will want to be connected everywhere. IBM has a track record of making its technologies accessible to all. The new IBM Java Screen Reader technology has successfully demonstrated that Java application developers can make their applications accessible from the onset. Since Java has the potential to be used in all kinds of devices -- from cable TV to microwave ovens -- the potential for extending accessibility further is enormous.
IBM developers of tools and applications
IBM Special Needs Systems (SNS) is promoting Java Accessibility with IBM's developers of applications and tools. SNS is a member of the IBM internal Java Design Council and System Design Review Boards. IBM application developers are currently porting Java applications to JFC and increasing their accessibility. SNS is working with the IBM VisualAgetm application development tools:
- Integrating JFC
- Developing tools in JFC
- Highlighting accessibility features to software developers
- Marketing accessibility features as a differentiator of the IBM VisualAge tools
Lotus is also working to migrate to a more accessible Java implementation. And finally, IBM is working to develop accessible solutions with the JavaOS platform.
Access technology partners
IBM is developing a standard interface for the Java Screen Reader technology that will enable assistive technology vendors to attach their Braille and speech output devices.
Beyond IBM
IBM SNS is evangelizing Java Accessibility outside of IBM, at conferences like the World Wide Web 7th International conference in Brisbane Australia, and with the Educational software industry and partners of IBM's K-12. Other developments include research into areas not typically regarded as assistive technologies, such as so called "network vehicles" that include PCs in the automobile.
Guidelines for Writing Accessible Java Applications
The complete IBM Guidelines for Writing Accessible Applications Using 100% Pure Java" are available as a separate document. This is the industry's first set of 100% Pure Java application development guidelines for accessibility. A brief outline of the contents are included here to give the intended audience an overview of the information contained in the guidelines:
- Java Software Application Developers
- Java Tools Developers
- Software Project Management
- Assistive Technology Vendors
- Users
Brief outline of the Guidelines
- 3.0 Essential Accessibility Programming Practices
- 4.0 Java Foundation Classes (JFC) - A Foundation for Accessibility
- 4.1 Why Use JFC?
- 5.0 Using JFC to Build Accessible Applications
If you are a typical engineer and took a first glance through this text, it is clear that there is an amount of work to do to implement the Accessibility API. Make it easy on yourself and use the JFC! This section discusses how you use the JFC to build your accessible Java application. It is broken down as follows:
- Setting up the JFC Development Environment
- Using the JFC Components unmodified
- Enhancing JTextComponents
- Changing Data Models and Cell Renderers
- Creating new Components based on the JFC
- Preparing for Future JFC Accessibility Features
The Accessibility API is a set of interfaces and classes. The Accessibility API defines a common signature, which can be implemented on application components, giving them a known signature to allow assistive technology software to extract the Accessibility information from your application. The Accessibility API is now shipped with the JFC package and can be found in the com.sun.java.accessibility package. It is scheduled to be included in JDK 1.2
- 9.0 Online Information and Help
- When developing documentation for your application in HTML please follow the comprehensive Web accessibility guidelines found at W3C's http://www.w3.org/WAI
- This appendix contains the suggested keyboard bindings
and a list of accessibility references.
Trademarks
IBMÒ, OS/2Ò, AIXÒ, AS/400Ò, Screen ReaderÒ, and Visual AgeÒ are trademarks or registered trademarks of International Business Machines Corporation in the United States and/or other countries.
Lotustm is a trademark of Lotus Development Corporation in the United States and/or other countries.
Tivolitm is a trademark of Tivoli Systems Inc. in the United States and/or other countries.
MicrosoftÒ, WindowsÒ, Windows95Ò, and WindowsNTÒ are registered trademarks of Microsoft Corporation.
Sun Microsystemstm, Javatm, 100%Pure Javatm, and Solaristm are trademarks of Sun Microsystems Inc.
Other company, product, and service names may be trademark or service marks of others.
Feedback
Please e-mail feedback to IBM Special Needs Systems at: snsinfo@us.ibm.com.
© Copyright IBM Corporation, 1998
- End of Document -