I've had some recent correspondence with Peter Korn of Sun
Microsystems (formerly of Berkeley Access/Outspoken fame)
concerning Java access issues. With his permission, I'm
distributing excerpts which I think provide some interesting
information and perspective.
Jamal
----------
From: Peter Korn <Peter.Korn@Sun.COM>
Organization: Sun Microsystems
To: Jamal Mazrui <74444.1076@CompuServe.COM>
Hi Jamal,
> I'm curious: what in your opinion are the pros and cons of Sun's versus
> Microsoft's approach to Java accessibility?
There are two axis along which to measure our two approaches. One axis is
technical, and the other is distribution. On the technical axis, they are
fairly similar. Both provide a mechanism to describe virtually all of the
semantic information of a user-interface. The specifics of our two
approaches
are a little different, but that has more to do with programming style, and
aesthetics.
The biggest technical distinction between the two is that AAJ as it stands
does
not provide a mechanism for describing text in any detail (e.g. the
characters,
font, style, etc.), perhaps because AAJ is a Java realization of MSAA, and
MSAA
doesn't provide a mechanism for describing text (perhaps because all of the
Windows 95 screen readers already have Off-Screen-Models and so Microsoft
didn't work on that problem in MSAA). This isn't a big deal so long as your
are only running Java programs developed using Microsoft's AFC Java
libraries
in the Microsoft Internet Explorer running under Microsoft Windows 95 where
you have a Windows 95 screen reader with a good Off-Screen-Model. But
outside
of that Microsoft domain....
Which brings us to the second axis: distribution. Sun's Java Accessibility
is
going into the Java Development Kit (the JDK). This kit is available for
free
download over the internet in binary form, and is licensed in source form by
over 100 licensees who build Java virtual machines into their products (e.g.
Microsoft, Apple, IBM, Netscape, etc.). These licensees, according to their
own development schedules, implement the features of each new JDK release in
their products. That means that Java Accessibility is going to all of the
companies that build the products that execute Java code, automatically
(including Microsoft). So, if we have a choice as to where Java
Accessibility
should come from, coming from the source for everything Java makes the most
sense.
The issue of distribution is especially important when we talk about text.
Sun
is developing a new set of graphics libraries - Java2d - for which the
specifications are available today on the Javasoft Web site. In the first
two
releases of the JDK, whenever a Java application rendered text, it resulted
in
the host environment rendering that text through the host environment's
graphics subsystem. So in Windows, a Java text routine eventually called
down
to the ExtTextOut() call, which screen readers like outSPOKEN patched in
order
to build their Off-Screen-Model. For a variety of excellent reasons, Java2d
includes a completely new text model, which doesn't render text through the
host environment's graphics subsystem. This means that Java applications
that
use the new Java2d libraries will render text that none of today's screen
readers (whether they use MSAA or not, whether they are running on Windows,
OS/2, or the Macintosh) will be able to read. Assistive technologies need
an
alternative way to query objects rendered with Java2d for their textual
contents, font information, etc., and neither AAJ nor MSAA provide that
today.
The Sun Accessibility team is at the source for Java - we attend the JDK
planning meetings, and have full access to the JDK source code, which we are
actively contributing to. We know which Java technologies are scheduled to
go
into future releases of the JDK and meet with the engineers and managers
involved in those technologies regularly, so that we can design
accessibility
into these technologies from the start. When new technologies come out for
Java that have accessibility impact (such as Java2d) we are in the best
place
to raise accessibility concerns and to work to ensure accessibility is fully
supported by those new technologies.
We would like to work with Microsoft, and have continually involved them at
every step of our development work. We asked Microsoft to participate in
our
Java Accessibility work starting in March of 1996 with the initiation of our
accessibility review of JDK 1.0.2, which Microsoft took part in. We
invited Microsoft to attend the Java Accessibility Requirements Meeting we
held, and Microsoft attended. Microsoft was specifically invited to our
first public presentation of Java Accessibility at CSUN in 1997 and again
was
invited to the Java Foundation Class library preview, where we discussed the
Java Accessibility support that is in the Java Foundation Class. Microsoft
representatives attended both of these presentations. We are puzzled as to
why
Microsoft felt it needed to go it alone on accessibility in Java given our
continuously outstretched hand.
Regards,
Peter
----------
Hi Jamal,
> Can you tell me whether I can develop Java programs with my favorite DOS
> editor (the WordPerfect program editor)? Is there a DOS based runtime
> environment for Java programs? If not, can you tell me, in your opinion,
> what Java development tools and virtual machines are the most speech
friendly
> with particular Windows screen readers? Also, can you give me specific
URLs
> for the minimum software I would need to download to get started in Java
> programming?
You can write Java programs with any text-based editor, including
WordPerfect.
In Windows, I often use 'vi', the Unix text-based editor that is part of the
MKS
Toolkit. Others here at Javasoft use emacs (in fact, emacs with emacspeak
should make an excellent combination). There is no DOS-based Java VM,
unfortunately. For running Java programs on the Intel platform, the best
way to
go is to use either Windows 95 or Windows NT with your favorite screen
reader.
I would use this with the Java VM that comes with Sun's Java Development
Kit (no other released Java VM will fully run the Java Accessibility
package).
I don't have much experience with GUI-based Java development tools; I just
use
the command line from a DOS windows.
Generally screen readers should all be in a similar boat with Java: Java
programs built using JDK 1.1/AWT 1.1 controls will used native Windows
controls when running in Windows on the Sun Java VM (other VMs, like
Internet Explorer and Netscape, may not fully use native controls). For
these Java programs, all Windows screen readers should be able to read the
text, the buttons as buttons, check boxes as check boxes, etc. Java
programs using the new Java Foundation Class libraries (also called the
"Swing" classes) which are now available in Early Access form from Sun,
don't use Windows controls, and so require the Java Accessibility package to
make them accessible. While the text will still be recognized as text in
Swing in a version 1.1 Java VM, the buttons, check boxes, etc., won't be
recognized as such. As of today, there aren't any shipping Windows screen
readers which utilize the Java Accessibility package. Once that changes,
Swing controls will be recognized for what they are by those screen readers
that support Java Accessibility.
Grab the latest release of the Java Development Kit (JDK 1.1.3) from
http://java.sun.com/products/jdk/1.1/. From that page, download the JDK
package, the HTML documentation, and other goodies (like the performance
pack
for Windows, a preview of the faster Java Runtime Environment for Windows,
etc.). The JDK includes a compiler, Java VM, Java debugger, etc. Finally,
when
you're up and running, register with the Java Developer Connection (there's
a
link toward the end of the JDK page; or you can go to
http://www.javasoft.com/jdc) and download the Early Access release of the
Java
Accessibility package (currently version 0.3), and the Early Access release
of
the Swing user-interface components (our new set of UI classes that support
accessibility, both directly via the pluggable look & feel architecture, and
via
assistive technology support through the Java Accessibility API).
These Early Access releases are on the Java Developer Connection web pages,
which don't currently work with text-based browsers (they use cookies and
are heavily forms based). We have also had compatibility problems with a
number of screen readers and this site. If you have problems using the Java
Developer Connection site, please let us know. We have an alternative,
not-for-public-consumption ftp site which contains both the Early Access
Java Accessibility package and the Early Access Swing package. On an
individual basis we can direct folks to that private ftp site if they are
unable to use the JDC site, until such time as we have addressed the
problems with the JDC site.
I would also strongly suggest to members of these lists that they join the
java-access list (java-access@javasoft.com; subscribe by sending "subscribe
java-access" in the body of an e-mail to "listserv@javasoft.com"). Everyone
on the Sun Accessibility team is on this open list, and it is the best place
to get java-related accessibility questions answered.
Regards,
Peter
This archive was generated by hypermail 2b29 : Sun Dec 02 2012 - 01:30:04 PST