HTML To MSAA

Remarks

The table below shows how Gecko maps HTML elements to MSAA. This table reflects mapping rules for specific elements only, it doesn't reflect any general rules applicable to all elements. For example, if name column has n/a value then it means specific elements doesn't provide own rules to calculate name but name can be computed from ARIA markup or @title attribute.

Map

HTML element Role Name Value States Relations Actions Events Notes
a ROLE_SYSTEM_ LINK n/a value of @href attribute

STATE_SYSTEM_ SELECTABLE if @name attribute is presented

STATE_SYSTEM_ LINKED if @href attribute is presented or click event listener is registered

STATE_SYSTEM_ TRAVERSED if link is traversed

n/a "jump" if @href is valid

n/a

br ROLE_SYSTEM_ WHITESPACE '\n' (new line char) STATE_SYSTEM_ READONLY n/a n/a n/a
button ROLE_SYSTEM_ PUSHBUTTON from child nodes n/a

STATE_SYSTEM_ FOCUSABLE

STATE_SYSTEM_ DEFAULT if @type attribute has value "submit"

n/a "press" n/a
caption BSTR role n/a n/a n/a

description_for (0x100f), points to table element

div BSTR role n/a n/a n/a n/a n/a n/a
fieldset ROLE_SYSTEM_ GROUPING text equivalent from child legend element n/a n/a labelled_by (1003), points to legend element n/a n/a
hr ROLE_SYSTEM_ SEPARATOR n/a n/a n/a n/a n/a n/a
img, input @type=image ROLE_SYSTEM_ GRAPHIC from @alt attribute, empty @alt attribute means name can't be calculated at all n/a STATE_SYSTEM_ ANIMATED if image has more than one frame n/a "showlongdesc" if @longdesc attribute is presented n/a if @usemap attribute is used then image accessible has children for each map item
input @type=button, submit, reset ROLE_SYSTEM_ PUSHBUTTON from @value attribute, @alt attribute, default label, @src attribute, @data attribute n/a STATE_SYSTEM_ DEFAULT if @type attribute has value "submit" n/a "press" n/a
input @type=text, textarea ROLE_SYSTEM_ TEXT n/a value property of input DOM element STATE_SYSTEM_ READONLY if @readonly attribute is used n/a "activate" n/a
input @type=password ROLE_SYSTEM_ TEXT n/a n/a

STATE_SYSTEM_ READONLY if @readonly attribute is used

STATE_SYSTEM_ PROTECTED

n/a "activate" n/a
input type="checkbox" ROLE_SYSTEM_ CHECKBUTTON n/a n/a

STATE_SYSTEM_ MARQUEED used as state checkable

STATE_SYSTEM_ MIXED for HTML 5 if intermediate property of DOM element returns true

STATE_SYSTEM_ CHECKED if checked property of DOM element returns true

n/a "check"/"uncheck"/"cycle" depending on state EVENT_OBJECT_ STATECHANGE when state is changed
input type="radio" ROLE_SYSTEM_ RADIOBUTTON n/a n/a

STATE_SYSTEM_ MARQUEED used as state checkable

STATE_SYSTEM_ CHECKED if checked property of DOM element returns true

n/a "select" EVENT_OBJECT_ STATECHANGE when state is changed
label ROLE_SYSTEM_ STATICTEXT from child nodes n/a n/a n/a n/a n/a
legend ROLE_SYSTEM_ STATICTEXT n/a n/a n/a label_for (0x1002), points to caption element n/a n/a
li and others ROLE_SYSTEM_ LISTITEM n/a n/a STATE_SYSTEM_ READONLY n/a n/a n/a contains child accessible for list bullet
ol, ul and others ROLE_SYSTEM_ LIST n/a n/a STATE_SYSTEM_ READONLY n/a n/a n/a
optgroup BSTR role n/a n/a n/a n/a n/a n/a
option ROLE_SYSTEM_ LISTITEM from @label attribute, from child text nodes n/a STATE_SYSTEM_ SELECTED if option is selected n/a "select"

EVENT_OBJECT_ SELECTIONWITHIN

EVENT_OBJECT_ SELECTIONADD if selected

EVENT_OBJECT_ SELECTIONREMOVE if unselected

select @size > 1 ROLE_SYSTEM_ LIST n/a n/a STATE_SYSTEM_ MULTISELECTABLE if multiselectable n/a n/a n/a
select @size = 1 ROLE_SYSTEM_ COMBOBOX n/a name of focused option

STATE_SYSTEM_ EXPANDED if combobox open

STATE_SYSTEM_ COLLAPSED if combobox is collapsed

STATE_SYSTEM_ HASPOPUP

STATE_SYSTEM_

FOCUSABLE

n/a "open"/"close" depending on state

EVENT_OBJECT_ VALUECHANGE when selected option is changed

table ROLE_SYSTEM_ TABLE from @summary attribute n/a described_by (0x100e) points to caption element n/a n/a
td, th ROLE_SYSTEM_ CELL n/a n/a n/a n/a n/a n/a
thead ROLE_SYSTEM_ COLUMNHEADER n/a n/a n/a

n/a

n/a n/a
abbr, acronym, blockquote, form, frame, h1-h6, iframe BSTR role n/a n/a n/a n/a n/a n/a