Java is a general-purpose programming language developed by Sun Microsystems. It gained notoriety in the late 1990s in part because of its vision of platform independence: A compiled Java program can run on most computers, including those running UNIX, Linux, Mac OS, and Windows. This cross-platform support is possible because the Java interpreter, known as the Java Virtual Machine (JVM), is available for a broad variety of operating systems. On the web, most Java applications are actually applets, which are designed to run within a Java-compatible web browser or other Java application, rather than independently as standalone programs.
Java has been used to extend the functionality and interactivity of the web. It is used extensively for developing the tools and interfaces for delivering web-based trainings and is the most common tool with which chat interfaces are developed. Some of Java's most creative applications have been developed by faculty in colleges and universities, who cite such benefits as a more engaging representation of content (as compared to static figures or written descriptions) and greater control in the hands of the learner, allowing the learner to gain experience with the concept. Current uses of Java in education include concept illustration applets (particularly in the sciences, math, and engineering), highly interactive computational applets (student manipulates variables and instantly sees results), and interactive assessment applets (which can provide immediate feedback to the student's responses).
Java applications and applets are not in and of themselves inaccessible. Tools and techniques are available that enable Java programmers to develop applications and applets that support accessibility, most notably Sun's Java Accessibility API (Application Program Interface). The Java Accessibility API is a part of the Java Foundation Classes (a set of Java class libraries used in building graphic applications). The Java Accessibility API exposes user-interface components to assistive technologies such as screen readers and speech recognition systems. Sun has also developed other tools that participate in the communication between Java and assistive technologies and offers a variety of resources documenting their use. For additional information, see Sun's Java Accessibility page.
Another excellent resource is the IBM Java Accessibility Checklist, which provides nineteen guidelines under the categories of keyboard access, object information, sounds and multimedia, display, timing, documentation, and accessibility verification. Each of these guidelines is supplemented with specific techniques documents.
Microsoft has introduced Windows-specific Java tools, including its own Windows Foundation Classes for Java (WFC) and a Java application development tool called Visual J++ 6.0. Microsoft's approach to making applications accessible is through Microsoft Active Accessibility (MSAA), which is comparable, in principle, to the Java Accessibility API but differs from it in the specifics of implementation. For more on MSAA, see the AccessIT Knowledge Base article What is MSAA? Microsoft, through its Microsoft Developers Network (MSDN), maintains an extensive library of technical articles on developing accessible Windows applications.
One of the leading accessibility resources in the early days of Java was the Trace Research and Development Center. The Trace Center's Java Accessibility and Usability Work includes a comparison between Sun's and Microsoft's early approaches to Java accessibility, plus sample Java applets and applications.