Creating a natural user interface requires designers, testers, and developers working in concert to develop the right support that makes multi-modal access to an operating system and applications possible.

To assist in this work through the Accessibility Interoperability Alliance (AIA), Microsoft® released its UI Automation Specifications with a Community Promise and released testing tools as open source projects via CodePlex. Microsoft is committed to interoperable accessibility.

Making Technology Accessible and Interoperable

The purpose of the AIA, formed recently by a coalition of the world’s leading information and assistive technology (AT) companies, is to foster industry-wide collaboration aimed at reducing many of the barriers that people with disabilities frequently encounter when they try to access information and communication technologies, including Web sites.

To create accessible technology products today, developers work across multiple platforms, application models, and types of hardware. To address interoperability issues arising from this current environment, the AIA is using a two-part strategy: First, the group is working to harmonize current technologies to interoperate more easily, reducing costs for developers and creating more usable products for customers. Second, it is working to create a unified accessibility model that will serve the entire industry. In order to support backwards compatibility and bridging technology to a full UI Automation implementation, Microsoft released the UI Automation Specification with the UI Automation, Microsoft Active Accessibility, and IAccessibleEx specifications.

UI Automation allows developers to create assistive technologies across all platforms and help a larger number of users access technology in their daily lives.

Microsoft also released the UI Automation Specification to the AIA, an engineering working group dedicated to making it easier for developers to create software, hardware, and Web-based products that are accessible to people with disabilities. The UI Automation specification describes the latest accessibility framework technology developed by Microsoft, and will help developers include advanced accessibility functionality into implementations designed for use on any operating system.

UI Automation allows developers to create assistive technologies across all platforms and help a larger number of users access technology in their daily lives. By making UI Automation freely available Microsoft hopes to increase the accessibility of many information and communication technologies and to drive cross-platform interoperability.

Microsoft UI Automation: An Innovative Accessibility Model

UI Automation, a next-generation accessibility programming model, simplifies development and reduces costs for AT developers as well as IT application developers who want to make their software compatible with AT products, such as screen readers for people who are blind. UI Automation, which is available for Windows® XP, Windows Vista®, Windows 7, and is built into the Windows Presentation Foundation (WPF), Silverlight™ 2 and in additional products, offers developers a richer and more efficient way to convey user interface commands and behaviors to a person through their AT product.

UI Automation represents what the interface can do rather than how it is presented visually, making it easier for both the application developer and assistive technology developers to create rich experiences for their users, including people who are blind. AT products built using UI Automation will require fewer updates and fewer customizations for specific applications, because they can intelligently interact with user interfaces and controls that have yet to be invented.

Linux Implementation

Microsoft developed UI Automation from the start to be compatible for implementation on platforms other than Windows. Starting in 2008, a Novell team is implementing UI Automation for Linux and will support SUSE, Ubuntu, and Red Hat and make the code available to other Linux distributions. Their implementation work has several goals:

  • Make WinForms accessible
  • Make Moonlight accessible
  • Implement UI Automation technologies

Mono is an open source project sponsored by Novell which implements software to develop and run .NET client and server applications on Windows, Linux, Solaris, Mac OS X, and UNIX. Based upon the Mono Web site, Novell believes that Mono is well positioned to become the leading application development platform for Linux.

…Microsoft has agreed to grant a royalty-free license for any patents necessary to implement required portions of the UI Automation Specification…

Implementing UI Automation on Linux retains the existing Linux accessibility frameworks. UI Automation will integrate with the AT-SPI and ATK accessibility frameworks by implementing the client interfaces in a bridge that will act as a translation layer between the frameworks.

Open Source Tools

Keeping with its commitment to help the community build better experiences for people that use assistive technology, Microsoft released two new testing tools as open source on the CodePlex shared code site. The UI Accessibility Checker (AccChecker) a Microsoft Active Accessibility® testing tool and UI Automation Verify (UIA Verify), a UI Automation testing tool, were released in March 2008. These tools are targeted at both developers and testers to provide support for the development process to create and ship products that meet the needs of assistive technology users.

UI Accessibility Checker

AccChecker enables testers, without prior experience with accessibility testing, to easily discover accessibility problems with Microsoft Active Accessibility and other user interface (UI) implementations. AccChecker was born from the realization that existing Microsoft Active Accessibility tools, such as Inspect and AccExplorer, provided in-depth details on the implementation, but no information on the correctness of the accessibility implementation.

UI Automation Verify Test Automation Framework

UIA Verify is the second accessibility-testing tool available on CodePlex. UIA Verify is a test automation framework that features the User Interface Automation Test Library (UIA Test Library) and Visual UI Automation Verify (Visual UIA Verify), the graphical user interface (GUI) tool. The framework facilitates manual and automated testing of the Microsoft UI Automation Provider implementation of a control or application. The majority of the UIA Verify functionality is provided through a dynamic link library (such as UIATestLibrary.dll) that contains the code for testing specific UI Automation functionality and supports logging of the test results.

Microsoft is continuing its commitment to accessibility by creating innovative accessibility APIs and testing tools and releasing them with a Community Promise or as open source projects.

About the Community Promise

As a member of the AIA, Microsoft has agreed to grant a royalty-free license for any Microsoft patents necessary to implement required portions of the UI Automation Specification, as the specification may be modified and eventually published by the AIA. Companies also can implement the latest version of the UI Automation Specification, which is publicly available from Microsoft. The Community Promise that accompanies the UI Automation Specification permits royalty-free access to Microsoft patent claims necessary to implement required portions of both mandatory and optional parts of the UI Automation Specification.

Committed to Open Accessibility

Microsoft is continuing its commitment to accessibility by creating innovative accessibility APIs and testing tools and releasing them with a Community Promise or as open source projects. This open approach to accessibility technology allowed Novell to start development of UI Automation for Linux; it should also enable the development of lower-cost, interoperable solutions that ultimately make technology accessible to greater numbers of people throughout the world.

Resources

Accessibility Interoperability Alliancehttp://www.accessinteropalliance.org/

UI Automation Community Promisehttp://msdn.microsoft.com/en-us/accessibility/bb892136.aspx

Novell UI Automation Accessibility Projecthttp://www.mono-project.com/Accessibility

CodePlex project hosting Web site http://codeplex.com/