Some techniques for creating accessible software are specific to the development environment being used. This section provides information and further resources for developers working on the Windows OS and Macintosh OS, and for the Java environment, Macromedia technologies and Web developers.
Microsoft provides detailed information on building accessible software for the Windows platform. The Microsoft Accessible Technology Group has created tools, documents and APIs that offer ways to take advantage of access features in the operating system and provides information on other ways to make software more accessible. The Microsoft Windows Guidelines for Accessible Software Design provide comprehensive information on creating accessible software.
For Windows operating systems up to Windows XP, the Microsoft Active Accessibility API (MSAA) provides programmatic means to help software communicate with assistive technologies. MSAA exposes elements of the screen and their state. It also exposes the focus of the screen. Using MSAA, software developers can use entirely custom graphical interfaces while still making each element known to an assistive technology that has been programmed to read this information and convey it to the user.
Windows Vista introduces a new API for accessibility, Microsoft User Interface Automation. It is intended to "address the needs of assistive technology products and automated testing frameworks by providing programmatic access to the graphical user interface."
Macintosh OS X
All Macintosh computers (OS 10.4 and higher) ship with many accessibility features already installed that support users with sensory or physical disabilities. Developers should test their products with these features to determine whether their software is operable by users requiring assistive technology. Some of the pre-installed accessibility enhancements include the following:
- VoiceOver screen reader
- Speakable items and talking alerts, an interface for controlling the Mac using voice commands
- Zoom, a built-in screen magnifier for low-vision users
- Sticky Keys and Slow Keys, software that allows users to strike keys one at a time in cases where two or three keys would normally be pressed simultaneously (such as Shift+F9)
- MouseKeys, software that allows users to control all mouse movements by typing on the numeric keypad
In addition to the built-in accessibility features for the Macintosh, Apple maintains a list of Mac-based assistive technology available from vendors outside of Apple. Visit Apple's Accessibility home for more information. Also visit Apple's Assistive Technologies page for a list of Apple products that provide support for users with disabilities. Finally, see the Macintosh Accessibility Documentation for Developers for complete technical information about Apple's accessibility support.
The Java™ Platform
The Java platform is an attractive development environment for creating accessible educational software for several reasons:
- Java is a platform-independent language that allows educational software to be accessed from both Macintosh and Windows.
- Accessibility features are built into Java technology's core structure and are supported by the Swing user interface components, which include an effective keyboard interface.
- The Java accessibility API, a standard extension in the Java 2 platform, eliminates any need for retrofitting to enable Java-based assistive technologies to interact effectively with mainstream applications.
- The Sun access team has also developed the Java Access Bridge, which allows users to run Java applications with their platform-specific assistive technologies, such as Windows screen readers.
The Java accessibility API contains several properties that enable developers to determine how assistive technology reports the presence and status of a particular object. Two of the most crucial properties are an object's accessible name and accessible description. Because the accessibility API is built in to Swing components, many UI elements will have their accessible name set automatically. Other components may need a label associated with the object, using the command setLabelFor().
The accessible description may be a longer piece of text needed to provide better context. Accessible descriptions can be set via Jcomponent.setTooltipText(), which has the advantage of updating the description automatically if the tooltip is changed. If an object's accessible name and accessible description are set manually, labels or tooltips added in future releases will not be automatically updated.
Further information on writing accessible Java applications is available from a number of resources:
Adobe produces popular software for creating, building, viewing and managing Web sites and stand-alone applications. The accessibility of Macromedia products has steadily improved with time, and the company continues to work to integrate accessibility features and enhancements throughout their product line. Read more about Adobe's accessibility initiatives.
Adobe has released information about their products' accessibility in the form of Voluntary Product Accessibility Templates (VPATs). A VPAT is a standardized form that lists each point of the Section 508 guidelines and permits a company to state how a product complies (or does not comply) with specific guidelines. The information a company enters into the form is voluntary and unregulated, so a VPAT should be treated as a research tool to help determine a product's accessibility, not as a definitive statement about accessibility. Some companies update their VPATs as product revisions are released to the public.
To help users get the most from a Flash experience, the Flash Player integrates support for Microsoft Active Accessibility (MSAA). MSAA serves as a bridge between the Flash Player and assistive technologies such as the JAWS and Window-Eyes screen readers. By default, the Flash Player recognizes text symbols and text within movie clips and button symbols. Text elements and buttons in movies created in Flash 4 and higher are therefore available to screen readers, without modification. This means the majority of Flash content available today will be significantly more accessible when using current versions of the Flash Player. However, this doesn't guarantee that the content was authored to be accessible.
While many of Adobe's products are accessible to one degree or another to the user, they also help authors create accessible materials, such as Web sites or animation. One of Adobe's most popular applications, Flash CS4, contains numerous features to create accessible Flash elements, such as embedded animations and images.
There are a number of resources for more information about Flash accessibility:
- Adobe's Accessibility Resource Center
- Best Practices for Accessible Flash Design
- Adobe's Accessibility Blog
- Thatcher, Jim, et al. Web Accessibility: Web Standards and Regulatory Compliance. Friends of Ed, 2006.
- NCAM's CC for Flash Page
- WebAIM's Creating Accessible Flash Content (tutorial)
Content written in HTML can benefit from the extensive work on accessibility done by the World Wide Web Consortium (W3C), an industry consortium that aims to lead the Web to its full potential by developing common protocols that promote its evolution and ensure its interoperability. The Web Accessibility Initiative (WAI) at the W3C coordinates with organizations and industry representatives to ensure that the Web is accessible to people with disabilities. See the WAI Home Page for more information.
Content written in HTML and other Web technologies should follow the Web Content Accessibility Guidelines 2.0 (WCAG 2.0). Software that allows users to author their own web content should follow the Authoring Tools Accessibility Guidelines (ATAG) 1.0.
Resources are also available for those authoring accessible content and software in the following formats:
- WAI XML Accessibility Guidelines
- Accessibility Features of SMIL
- Accessibility Features of CSS
- Accessibility Features of SVG
Creating content according to the Web Content Accessibility Guidelines and allowing users to view it in the browser most accessible to them is the easiest method of creating accessible software. Software that provides a proprietary interface to HTML content should follow the WAI User Agent Accessibility Guidelines. However, for maximum accessibility, users should be able to choose their own Web browser to view material the software provides. Students with disabilities can then take advantage of assistive technologies of which software developers may not be aware. Locking users into a specific browser can reduce the accessibility of even well-designed Web content. Assistive technologies for use with HTML content may include a talking MathML browser or plug-in, or access features designed into mainstream browsers like Internet Explorer and Opera.