Tuesday, July 11, 2006

On Architecture

Overview
This post will provider an overview of the architecture for a UI Automation Client (like a screen reader). There are four layers involved when using the UIA. Here is an example of the layers with a screen reader that is focused on a Drop Down Box in Firefox:
  • The ScreenReader
  • The UI Automation Framework
  • Firefox Html Drop Down Box Provider
  • Firefox with a page open that is currently focused on a drop down box
The four layers are:
  • The UIA Client Application
  • The UI Automation Framework
  • The UI Automation Providers
  • The "Actual" Application

The UIA Client Application
The Client Application is any application that uses the UIA. Anotherwords, any application that might control or read the user interface.
Some examples include:
  • Screen Reader
  • Screen Magnifier
  • UI Testing for Software Development
  • System Macros
  • User Monitoring Software

The UI Automation Framework
The framework is the access point for the Client Applications. It allows the client to access the user interface in a consistent way. It reduces the complexity of the user interface and presents everything in well defined terms. For example, a screen reader can access all buttons the same way no matter if it is an Html Button, a Java Button, an MFC button, or a .Net Button.

The UI Automation Providers
The UI Automation Providers are responsible for interpreting every specific type of user interface control. It accesses the data of a specific control and presents it to the UIA as an Automation Element. For example, a Java Button would have a Java Button Provider which would interprete the button so the UIA can work with it as a standard button.
Most controls already have a UIA Provider. If the control is a standard Win32 control or supports MSAA, then it already has some level of functionality. However, custom controls that have additional information need to have their own providers so that UIA can get to that data or interact with the control.


The "Actual" Application
The Application that is being driven by the UIA. There is no limit to what types of applications the UIA can work with. All that is required is that the application's controls have sufficient UI Automation Providers in order to make the application accessible.

0 Comments:

Post a Comment

<< Home