2 Mapping of IDM Object Classes to UIA Control Types

The IDM has as a design principle the use of the object classes (controls, widgets) provided by the system or toolkit to implement the interface objects and thus to keep operation and appearance as compliant as possible with the system.

Many of the IDM object classes are covered by the UI Automation Support for Standard Controls from Microsoft. If possible and required, the IDM adds the necessary properties.

With regard to UI Automation support in the IDM, the following categories can be distinguished:

D

Particular object classes cannot be equipped with additional UIA support through the IDM, but have sufficient support through the Microsoft default implementation. These include e.g. menubox, menuitem, menusep, messagebox and filereq.

E

Most of these object classes get complementary UIA support through the IDM, especially to facilitate their identification.

X

Object classes implemented by the IDM and object classes with inadequate Microsoft default implementation get individual UIA support. These are mainly the object classes image, tablefield, splitbox, layoutbox, progressbar, poptext and toolbar.

U

For special object classes such as control, canvas and USW objects, UIA support lies in the hands of the application programmer or object implementer.

The following table shall serve as a reference point for the mapping of IDM object classes to UIA Control Types as well as the functionality provided by the Pattern affiliation:

Category

IDM Object Class

UIA Control Type

Supported UIA Control Patterns

U

canvas

Pane

To be implemented by the canvas programmer

E

checkbox

CheckBox

Toggle, Invoke

U

control

Pane

Depends on the OLE/control object

E

edittext

Edit

System-dependenttypically Value, Text, Text2

Multi-line texts with scrollbars usually also have the Scroll Pattern

E

edittext with
.options[opt_rf] = true

Document

System-dependenttypically Value, Text, Text2

D

filereq

Window

System-dependent

X

groupbox

Pane

Child: Group

Invoke, Scroll (with virtual areas)

X

image

Button

Children: Text, Image
(if present)

Invoke, Toggle

X

layoutbox

Pane

Scroll (with virtual areas)

E

listbox

List

Children: ListItem

Scroll, Selection, Invoke

D

menubox

Menu

ExpandCollapse

D

menuitem

MenuItem

Toggle, Invoke, ExpandCollapse, SelectionItem – depending on .style attribute

D

menusep

Separator

D

messagebox

Window

System-dependent

E

notebook

Tab

Selection

E

notepage

TabItem/Pane

SelectionItem

X

poptext

ComboBox

Children: Edit, List, Text
(according to .style)

ExpandCollapse, Value sowie Selection – depending on .style attribute

X

progressbar

ProgressBar

RangeValue

X

pushbutton

Button

Invoke

E

radiobutton

RadioButton

SelectionItem

X

rectangle

Button

Invoke

X

scrollbar

ScrollBar

RangeValue

X

scrollbar (slider)

Slider

RangeValue

X

spinbox

Spinner

RangeValue, Value, Selection – depending on .style attribute

X

splitbox

Pane

Children: Pane

Visible split areas are sub-Panes with Transform Pattern

X

statictext (insensitive)

Text

Text

X

statictext (sensitive)

Button

Invoke

E

statusbar

StatusBar

X

tablefield

Table

Children: ListItem

Grid, Table, GridItem, TableItem, Invoke, Scroll, Selection

X

toolbar

ToolBar

Dock, Transform, Window (depending on .docking attribute), Invoke

E

treeview

Tree

Scroll, Selection

E

window

Window

Window, Transform

UI Automation support may be changed by Microsoft anytime, so that changes concerning the mapping of UIA ControlTypes, Patterns, Properties and Events are always possible.