Java Technology Home Page
A-Z Index

Java Developer Connection(SM)
Chat

Downloads, APIs, Documentation
Java Developer Connection
Tutorials, Tech Articles, Training
Online Support
Community Discussion
News & Events from Everywhere
Products from Everywhere
How Java Technology is Used Worldwide
Print Button
 
JavaLive Transcripts Index

Accessibility Support in the JavaTM 2 Platform
August 15, 2000



Speaker Peter Korn (Peter Korn), Lynn Monsanto (Lynn), and Jeff Dunn (jeffdunn)

This is a moderated forum.

EdO: Welcome to Java Live! Today's session is on Accessibility support in the Java 2 platform. Our guests are Peter Korn, Lynn Monsanto, and Jeff Dunn, key members of Sun's Accessibility support team. They'll answer your questions about Accessibility, especially about recent enhancements to the Accessibility APIs for J2SETM version 1.3, and new tools such as the Accessibility Helper and the Java Access Bridge. So let's begin. Who has the first question?

kiran: Which version of the JDK or JFC will support the accessibility?

Lynn: Any JDK version 1.2 and above supports the Accessibility API.

Garry T: What real world examples do you have of people using Java applications via the access technology on a daily basis?

kiran: What accessible methods and classes do we have?

Lynn: Kiran, the best thing to do is to go to Sun Microsystem's Accessibility Program where you can find detailed information about the classes and interfaces that make up the Accessibility API.

jeffdunn: Currently, nearly all large user interfaces are developed by Fortune 500 companies, for internal use. They are making use of the accessibility APIs to provide access to their employees. There are companies ready to release large products into the governmental market, but I'm not sure which we can disclose currently.

Garry T: I have used the Access Bridge with JFW and I've had good success with it. Since the future of Java Accessibility on the Windows platform is reliant on the take-up of screen reader vendors, I was curious to what level is being shown by other vendors?

gneumann4: The Accessibility API is great for monitoring purposes. Where I have problems is with triggering actions. Based on the Manipulator sample I'm trying to redo events. However in this sample the "Do Action" is limited to the current Accessibility context. What do I have to do to change the context in order to redo another action?

Lynn: gneumann - You get the AccessibleContext for an object by calling the getAccessibleContext method on the object. You then call getAccessibleAction on the object returned. If getAccessibleAction returns a non-null object, you can call the doAction method on it.

jeffdunn: At least two other PC screen vendors have approached us with serious interest in the access bridge. We feel that the momentum is building and think we are well-positioned as Java technology moves (back into) the desktop. Ultimately, it's the end users who will ask the screen reader vendors to provide them with access to Java applications.

EdO: Peter has joined us.

Roy: A real basic high-level question. If I wanted to add accessibility features to my application, is it just a matter of adding the appropriate API calls, or do I need some 3rd-party software to complete the solution?

Peter Korn: Hi Roy, the best thing for you to do is start with a UI toolkit that already implements the Java Accessibility API. Right now, that would be Swing, or either of the two GUI toolkits from Oracle (EWT and JEWT). In the future, there will likely be other UI toolkits which implement the Java Accessibility API. If you want to roll your own, (that is not use Swing or the others), then you'll need to implement the Java Accessibility API on it directly. There are several books which show you how, and you can also "cheat" and look at our implementation in Swing (because we ship full source).

jeffdunn: If there is a particular screen reader you have interest in, please ask them. And send our e-mail address:access@sun.com

Gottfried Zimmer: What about the accessibility of Java 2DTM or even Java 3DTM? I mean, are there any plans to make graphical shapes and scenes accessible to blind or visually-impaired persons?

Peter Korn: Hi Gottfrie, Java2D is a rendering library. It's the objects that are created with Java2D that need to be accessible. It doesn't make sense for individual anti-aliased lines to be accessible, but the compound object that is rendered by a whole bunch of anti-aliased lines (for instance). With Java3D, the situation is somewhat more complex. Again, the same approach would work (that is, to leave it up to the developer to "do the right thing"), but there may be cases in which we can help by doing some of the primitive work ahead of time. At this point we don't have any announced plans for special Java3D accessibility support.

jeffdunn: For most application developers, using JFC/Swing will get you over 90% of the way. There are a few enhancements you can make to your application by accessing the API directly, and you'll find lots of easy-to-use documentation on our web site: Sun Microsystem's Accessibility Program Also, you can use the Accessibility Helper to run some basic tests regarding accessibility (also on the above web page). 2D and 3D objects can be made accessible, but means more work utilizing the access APIs. The simplest method would be to make the objects JComponent subclasses and read our documentation on how to effectively subclass. It may be easier than you think, if you can follow that route. We have to current plans to support 2D or 3D directly, however. That was supposed to be "we have NO current plans..."

DJ: Here at umich, PeopleSoft has created a new student registration system that uses 1.1 applets. The result is a system is totally inaccessible to screen readers. Umich is a big Mac house, so I'm sure the Mac problem is a big reason for not using 1.2 or higher. Even so, PeopleSoft does not seem to aware of accessibility issues. They presented the new system without any consultation to our disability services, and their response was something to the effect of "nothing can be done. "Considering this system is only part of a $150,000,000 enterprise wide system that PeoplseSoft is using as a model to sell similar systems all over the country, I am quite concerned about their accessibility awareness. 2 questions. 1. Are developers reluctant to "upgrade" to Java 1.2 or higher? 2. The Mac problem is now an accessibility problem. When will Apple get its Java act together.

Peter Korn: Hi DJ, There are a bunch of issues involved in your question. The first big issue is that most browsers only support 1.1. Until that changes, applet developers are likely to feel they need to limit their applets to 1.1 APIs. Once you get past that issue (which is something PeopleSoft can decide to do by limiting the number of "players" that they will support), you still have the fact that Apple is not yet shipping a JVM that supports 1.2, let alone 1.3. They have announced that they will do this with OSX, to ship later this year. As far as as "PeopleSoft awareness" - there are certainly developers at PeopleSoft who are aware of the Java Accessibility support, but PeopleSoft is a big company and the folks you have spoken with may not be aware of the issues. Also, the company may not have formulated specific policy on accessibility. The best way to ensure that a company knows about accessibility requirements is to tell them! I strongly encourage anyone here who has a disability or knows of someone who has a disability - who might conceivably be a potential purchaser of PeopleSoft products (or any other, for that matter), to contact the company in question and ask them. Do so with a letter, not just a phone call. Please let me know if I didn't address any of your questions/issues.

Garry T.: As a blind Java developer, I see an increasing number of the products I use shipped with Java GUI tools or front ends. A few of the tools come from Sun, such as Forte or JAVA 2, Enterprise EditionTM deployment tool, and I've found the accessibility here too patchy at times. Does the accessibility team work with other parts of Sun to ensure that Java products shipped are as accessible and usable as possible by a blind user?

jeffdunn: GarryT - Yes, we are working actively with other product teams regarding their accessibility issues. Forte has been responsive, but as a product that was acquired late in its development cycle, we had little influence on its first release. I would be very happy to talk with you directly regarding Forte. If you send your e-mail address to access@sun.com, we will contact you. Be sure to put "Forte" and "accessibility" in the subject line. Thanks! In general, feel free to send accessibility issues to us.

Shenoy: The Java Speech API is not a part of the Java Accessibility project. But I can think of close relation between those two! Any reason why they were separated?

jeffdunn: I'd like to comment on the 1.2/1.3 upgrade path. Most of you know, the jump from 1.1.x to 1.2 was a big one. Many features were added (such as JAVA 2D), making the port a long process for vendors. Releases after 1.2 (1.2.1 and 1.3) are much smaller changes. My hope is that once vendors upgrade to 1.2 support, they will stay on the current release because the changes are more incremental and easier to follow.

EdO: Could you talk a bit about the intersection of Accessibility support and JiniTM? What kind of applications do you see coming out of this intersection?

Peter Korn: Hi EdO, this is an interesting question. Jini is "the Universal Connection Technology", a technology for allowing devices and software services to find each other and interoperate, without either end having to have much (if any, really) knowledge about each other before hand. In the "mundane" case, this means that if I buy a color printer and a digital camera, instead of having to install lots of drivers and software onto their CPU, and then going through their CPU whenever they want to print photos they've taken; with Jini the camera "discovers" the printer, downloads a Java program which presents a Print dialog UI on the digital camera, and then the user prints to the printer directly from their camera. Similarly, imagine a user with a Braille notebook walking up to an ATM machine. In a Jini/Accessibility "world", the Braille notebook (or what we would call a "Personal Accessor") would wirelessly discover the ATM, and then download a Java program which represents a UI to that ATM. The blind user would then use Braille (the Braille they brought with them) to interact with the ATM. Similarly, someone with a severe physical disability (like Christopher Reeves) might roll up to an elevator. Though the elevator's buttons are down low, where someone in a chair could reach them, it's of no use to Christopher because he cannot move his arms. However, again, the speech-recognition-enabled Personal Accessor built into his wheelchair would discover the elevator, download a speech-enabled UI, and then Christopher would call the elevator to him with his voice. With Jini licensed by manufacturers of consumer electronics devices, you can see this same scenario happening with CD players, TVs, VCRs, etc. Also, hopefully in the future microwave ovens and refrigerators and the like.

Lynn: Shenoy - You are right. The two APIs are related. However, the charter of the Accessibility group is to make Java applications accessible to assistive technologies in general. However, our charter is not to provide any particular assistive technology like speech or Braille. In addition, the Speech API is general purpose technology that is applicable to a bunch of things like telephony.

EdO: Any more questions? Ask them now.

Rabitrals DavidB: I'd like to hear an answer to the Jini - Accessibility question and in particular if there is anything interesting happening with ServiceUIs and Access?

Lynn: I'd like to hear about how people are using the Accessibility API including problems that need to be fixed and new features they would like to see.

gneumann4: Suggestion: How about combining Accessibility and things like AWTRobot to provide an all Java Macro Script API? This would enable developers to write automated (GUI) tests of their products and so raise the quality of applications. According to the comment by Garry T. there's lots of room for improvement.

Peter Korn: Hi Rabitral, are you a schill? I worked closely with Bill Venners, who spearheaded the development of the ServiceUI architecture. If you look at the API (I'll try to get the URL to append to the transcript when posted later), you'll see that there is encoded in the ServiceUI architecture a way to tag a downloaded UI as "accessible". We worked with Bill Venners to create a Jini/Accessibility demo using the ServiceUI architecture for use at JavaOne. Another group we worked with is Edapta (Hi Jack!), who created another Jini/Accessibility demo for JavaOne. Unfortunately, we haven't managed to get the video of the Friday keynote session up on the web yet, but in that session, we demonstrated Braille and Speech recognition control of a bunch of devices you might find in your home or office (lights, heater,fan, electric blinds), all wirelessly controlled via Jini. We also had the ability to control the same devices via the Palm VII and the RIM two-way pager (both run Java - Java 2 Micro EditionTM to be specific). Unfortunately we didn't demonstrate those devices because of problems with the wireless antennas in Moscone (Bell South removed the antennas prematurely!).

EdO: What would consider the most significant about the recent accessibility enhancement?

jeffdunn: Combining the access API and robot to provide scripting is an excellent idea. I do think it falls outside Sun's "core competencies," however. Sun provides the APIs, and it's more common for us to allow 3rd-party vendors to provide applications such as this type of scripting tool. As the APIs mature and solidify, I would be surprised if current testing tool vendors don't step into the Java market. I neither confirm nor deny that Sun is working on any such product, though, as I have no idea. :-)

GarryT2: In response to Lynn's request for suggested improvements, I've known several people to have extreme difficulties in getting the Access Bridge to work. I don't know if this is purely a function of the difficulty in putting together all the opposite jigsaw pieces. I was wondering if there are any moves to ease this, possibly by integrating more of the Access Bridge into the core JDK?

Peter Korn: Hi GarryT2, this is one of the things we are working on (improving the Java Access Bridge installation process). It's a very tricky thing - to locate all of the JavaVMs on a computer, determine which ones can support the Java Access Bridge, and then install the Java Access Bridge into them. In our studies, one of the biggest single problems is that the Java Access Bridge installer presents a list of JVMs to install into, but the user has to select one or more from that list. If the user doesn't, the installer dialog box leads the user to believe they installed things correctly, when in fact they didn't. There are a few reported cases of crashes (most likely due to low memory), and the documentation needs tobe cleaned up. At this point we have no plans of including it as a core part of the JDK. First off, it's just for Windows (whereas the JDK is platform independent). Second, since the number of users who need it is relatively small, and they can only use it if they have a Windows-based assistive technology which supports it, we felt it made more sense to encourage AT vendors to redistribute it.

jeffdunn: Back to the question regarding scripting and testing tools: I suggest contacting vendors of test products currently shipping. Ask when they plan to support Java 2. In many ways Java technology really is the "next generation." As such, it provides methodologies (that is the robot and access APIs) that would make things like testing products far more effective than they are on existing platforms.

Lynn: EdO - There are accessibility improvements in two major areas in JDK 1.3.

  1. There are three new interfaces: AccessibleIcon, AccessibleTable, AccessibleRelationSet. AccessibleRelationSet is interesting because it allows a Java application to specify the relationships among user interface components. For example, it's possible to specify that a component such as a slider is a controller for another component such as volumn control.
  2. We have fixed a bunch of problems with keyboard navigation in Swing components such as JDesktopPane and JInternalFrames.

EdO: We're close to the end of the session. So please ask your question now.

Gottfried Zimmer: Can you just give a short overview of the features of AccessibleTable?

Lynn: Gottfried - The AccessibleTable supports everything that's in JTable plus support for: 1. cells that span multiple columns and/or rows. 2. column and row headers 3. table captions 4. and a bunch of other things that are better described in the javadoc.

Peter Korn: Hi EdO - to expand on Lynn's comments on AccessibleRelationSet, which is, I think, one of the most interesting things to happen in the Accessibility API world (on any platform), take a look at this slide from our BOF last year at JavaOne: This picture illustrates how a developer could use AccessibleRelationSet to clearly show the relationshipsbetween cells in a spreadsheet - which cells are members of a specific sub-row (Such as "Income"),which cells are contributing to a total, etc.

EdO: Well, we've come to the end of the session. I want to thank all the participants, and especially our guests Peter, Lynn, and Jeff.

jeffdunn: Thank you to everyone for participating.

DavidB: thanks everyone.

Lynn: All - So long and thanks for participating.

Peter Korn: Thanks EdO for allowing us this opportunity to chat with folks. If anyone has more questions for us, please feel free to send them to access@sun.com. Also, we host a discussion mailing list, java-access@sun.com, which folks are welcome to join. To subscribe, send an e-mail to with the text "subscribe java-access" in the body of the e-mail.

EdO: Last moderator (me) signing off. The forum is now unmoderated

Participate in the Accessibility API's.

coffeecup


Reader Feedback

Tell us what you think of this transcript.

Duke

Very worth reading Worth reading Not worth reading

If you have other comments or ideas for future articles, please type them here

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


Print Button
[ This page was updated: 21-Sep-2000 ]
Products & APIs | Developer Connection | Docs & Training | Online Support
Community Discussion | Industry News | Solutions Marketplace | Case Studies
Glossary | Feedback | A-Z Index
For more information on Java technology
and other software from Sun Microsystems, call:
(800) 786-7638
Outside the U.S. and Canada, dial your country's AT&T Direct Access Number first.
Sun Microsystems, Inc.
Copyright © 1995-2000 Sun Microsystems, Inc.
All Rights Reserved. Terms of Use. Privacy Policy.