Java Accessibility Helper v0.8
By user12607856 on May 06, 2005
One of the side effects of this was that any software that was waiting for release was put on hold until everyone was sure that the old functionality of the sites with the new look and feel all worked nicely together. That hold has now been lifted, and yesterday a new early-access version of the Java Accessibility Helper that I've been working on, made it out the door.
There's not a lot of new functionality in this version. We were mainly going for ease of use and for a larger audience by supporting more platforms. The following changes have been made in v0.8:
- You no longer have to be logged in as root to install on Unix-like systems:
One of the biggest complaints of the previous versions of the Helper was that you needed to have super-user privileges in order to install the software on Solaris. Of course the RBAC functionality built into recent versions of Solaris alleviates this problem somewhat, but after a little bit more research, and using a couple of fairly new features added to the Java platform, it was discovered that we could adjust the way the Helper worked, so that a normal user could do the installation. Those two Java features were:
- -Djava.ext.dir=<alternate ext dir>:
The Helper requires a jaccesshelper.jar that previously was put in the .../jre/lib/ext directory under the user's JRE/JDK directory. These files were typically owned by root. Using the -Djava.ext.dir=<alternate ext dir> command line option to the java command, we are now able to specify an alternative ext directory (which contains the jaccesshelper.jar file) that is owned by the user.
The -Djava.ext.dir option solved the problem of being able to test any Java application or applet started by the Helper, but one of its really nice features is that you can test a Java application just started up by a script (NetBeans for example). In order to pass in that alternate ext directory to any executable script started by the Helper, we now set:
in the script that starts the Helper. This option passes any Java options set here to any Java applications started by the script. So the script passes it to the Helper, which in turn passes it to the script starting a Java application to be tested.
With these changes, the installation also becomes much simpler and this has reduced the size of the graphical installer by about 1/2 Mb.
- -Djava.ext.dir=<alternate ext dir>:
- Two new wrapper scripts used to start the helper:
After using FindBugs, I noticed that it had a couple of really nice scripts for starting up the application:
- findbugs.bat for Windows and
- findbugs for Unix-like systems.
These scripts were adapted from scripts found at http://www.ericphelps.com/batch/, so I was about to take those two scripts, rename them, adjust them a little bit, and use them with the Helper, providing a much nicer way of starting it.
- All the Helper files are now available in a downloadable zip file:
The Helper uses a graphical installer that happily supports Windows, Solaris and Linux (even HP-UX), but doesn't support platforms like Mac OS X. As the Helper works just fine on Mac OS X, and that with this version there really is no special tasks that the installer does (it just unpacks a load of files in a directory), we've made an alternate download available. This is just a zip file of all the Helper files which you'd need to unzip wherever you want to install them.
- Support for testing applications that don't implement getAccessibleParent
Previous versions of the Helper used the Java methods getAccessibleParent, getAccessibleChildrenCount and getAccessibleChild(i) to traverse the widget hierarchy of the Java application being tested. It was found that some applications that created their own custom components (NetBeans 4.0 for example), didn't correctly implement getAccessibleParent, causing the Helper to hang when it was testing them.
This problem was circumvented in Helper v0.8 by just using the getParentOf and getChildrenOf methods instead.
With all these changes, we hope that the Helper will reach a larger audience and allow them to test more Java applications for accessibility related problems.