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 |