MSEdgeExplainers

UI Automation Provider Mappings Explainer

Authors: Rossen Atanassov, Melanie Richards

Introduction

Microsoft UI Automation (UIA) provides programmatic access to most user interface (UI) elements of desktop applications, as well as web content and web applications. This API enables assistive technology (AT) products, such as screen readers, to provide information about applications, their UI and contents to end users. With this information, ATs can allow the user to manipulate applications by means other than standard input.

At a high level, UIA exposes two sets of APIs, provider APIs, those implemented by a web browser for example, and client APIs, those implemented by an AT. This document’s focus is on implementing the provider APIs inside Chromium. These APIs are not exposed to web developers, and it is not expected that web developers should change the way they build sites and web apps—these APIs are meant to map web content into a format useful to C/C++ programmers.

Why is a UI Automation implementation needed?

A UIA implementation benefits the browser/web platform, AT clients, and ultimately the end user.

By supporting UIA, Chromium-based browsers can:

With UIA, ATs can enhance web browsing for their users in Chromium-based browsers. ATs can:

At the heart of all this are users of assistive tech, who are empowered to browse the web with tools that are efficient, robust, and secure.

High-level summary of provider APIs

In order to complete UI Automation support in Chromium, this project will implement the provider APIs for:

Example of control interfaces

For an example of how these APIs work in conjunction to provide complete interactivity with a control, refer to documentation for the Button control type (which <button> and elements with role="button" map into).

Current workarounds

Providing UI and text information for the purposes of accessibility technologies is already possible today, even without UI Automation. Existing technologies such as MSAA and IA2 are examples of platform APIs that allow ATs to observe and interact with the browser and its web contents.

Implementing UI Automation support on the Windows platform is not intended to replace any existing platform API support, but to offer a mature and evolving API choice to assistive technologies and their users.

Additional information


Related issues | Open a new issue