Accessibility and automation for Windows developers

This topic provides links to documentation for Windows developers designing accessible applications, assistive technology developers building tools such as screen readers and magnifiers, and software test engineers creating automated scripts for testing Windows applications.


The resources provided here can help you build Windows applications for as many people as possible, including those with disabilities, personal preferences, environmental considerations, and specific work styles.

Accessibility and automation frameworks overview

Windows accessibility and automation consist of two technologies—Microsoft Active Accessibility (MSAA) and Microsoft UI Automation. MSAA is a legacy technology introduced with Windows 95, while UI Automation is a newer, more capable technology that addresses the limitations of MSAA.

Develop accessible applications for Windows

Windows application frameworks support numerous accessibility features that you can incorporate into your application.

Develop accessible UI frameworks for Windows

UI frameworks built for the Windows platform should always support programmatic access and automation, keyboard navigation and commanding, color and theme options, and personalization through user settings.

Develop assistive technology for Windows

Build screen readers, magnifiers, speech recognizers, eye trackers, and other specialty hardware compatible with Microsoft products for people with vision, dexterity/mobility, learning, and language/communication disabilities.

Test for accessibility

Testing the accessibility of your Windows applications, assistive technology (AT) tools, and UI frameworks ensures that your application provides adequate programmatic access to and information about all UI elements, and that all of your application scenarios can be accomplished using only keyboard focus and navigation.

Security considerations for assistive technologies

Assistive technology applications typically need access to protected system UI elements, or other processes that might be running at a higher privilege level, and must run with special privileges to be trusted by the system.

Accessibility best practices

Accessibility best practices focus on UI design and implementation details for controls and applications.

Accessibility settings

Each accessibility parameter and each built-in accessibility feature corresponds to a system parameter that can be set or queried with the SystemParametersInfo function.

There are two types of settings available to users (through the Ease of Access Center in Control Panel) that are also exposed to developers.

  • Accessibility parameters. When set, these parameters indicate that applications should change their default behavior. Applications can check the state of an accessibility parameter to determine whether the user wants special behavior that can be provided in an application-specific manner. For example, the ShowSounds parameter indicates that an application that typically uses sound to convey important information should also provide the information visually.
  • Built-in Accessibility Features. These features are built into the system or are provided as an extension to the system. They affect how the user provides keyboard and mouse input to the computer. When enabled, their functionality is available regardless of which applications are running. An example is a keyboard filter that makes it easier for users with movement impairments to type key combinations such as CTRL+ALT+DEL.