Supported MSAA Interfaces

« AT APIs Support Page


To use MSAA with Gecko, you'll need the tools and docs that come with the Active Accessibility 2.0 SDK Tools. The method AccessibleObjectFromWindow() will get you the root IAccessible corresponding to the top level window. Hold on to this root IAccessible, and use it to walk through the entire tree of IAccessible's.

IAccessible Overview

Refer to original specification to get more information about IAccessible interface.

MSAA Description Gecko
accDoDefaultAction Performs the specified object's default action nsIAccessible.doAction()
accHitTest Retrieves the child element or child object at a given point on the screen nsIAccessible.getChildAtPoint()
accLocation Retrieves the specified object's current screen location nsIAccessible.getBounds()
accNavigate Traverses to another user interface (UI) element within a container and retrieves the object complex mapping
accSelect Modifies the selection or moves the keyboard focus of the specified object complex mapping
get_accChild Retrieves an IDispatch interface pointer for the specified child, if one exists nsIAccessible.getChildAt()
get_accChildCount Retrieves the number of children that belong to this object. All objects must support this property nsIAccessible.childCount
get_accDefaultAction Retrieves a string that describes the object's default action. nsIAccessible.getActionName()
get_accDescription retrieves a string that describes the visual appearance of the specified object. nsIAccessible.description
get_accFocus Returns the localized extended role nsIAccessible.focusedChild
get_accHelp Retrieves an object's Help property string. not supported
get_accHelpTopic Retrieves the full path of the WinHelp file associated with the specified object and the identifier of the appropriate topic within that file. not supported
get_accKeyboardShortcut Retrieves the specified object's shortcut key or access key, also known as the mnemonic. nsIAccessible.keyboardShortcut
get_accName Retrieves the name of the specified object. All objects support this property.
get_accParent Retrieves the IDispatch interface of the object's parent. nsIAccessible.parent
get_accRole Retrieves information that describes the role of the specified object. nsIAccessible.role
get_accSelection Retrieves the selected children of this object. nsIAccessibleSelectable.getSelectedChildren()
get_accState Retrieves the current state of the specified object. nsIAccessible.getStates()
get_accValue Retrieves the value of the specified object. nsIAccessible.value

IAccessible Details



Traverses to another user interface (UI) element within a container and retrieves the object (see IAccessible::accNavigate on MSDN).

HRESULT accNavigate(
  long navDir,
  VARIANT varStart,
  VARIANT* pvarEnd

The traversed object depends on the given constant navDir. Refer to the supported constants.



Modifies the selection or moves the keyboard focus of the specified object (see IAccessible::accSelect on MSDN).

HRESULT accSelect(
  long flagsSelect,


Depending on flagsSelect argument (see SELFFLAG on MSDN) the method is mapped to Gecko methods by the following way:

flagsSelect Description Gecko
SELFLAG_TAKEFOCUS Sets the focus to the object nsIAccessible.takeFocus()
SELFLAG_TAKESELECTION Selects the object and removes the selection from all other objects in the container. nsIAccessible.takeSelection()
SELFLAG_ADDSELECTION Adds the object to the current selection nsIAccessible.setSelected()
SELFLAG_REMOVESELECTION Removes the object from the current selection nsIAccessible.setSelected()
SELFLAG_EXTENDSELECTION Alters the selection so that all objects between the selection anchor and this object take on the anchor object's selection state. nsIAccessible.extendSelection()



Retrieves the name of the specified object (see IAccessible::get_accName on MSDN).

HRESULT get_accName(
  BSTR* pszName

Return values

If there is not name
S_OK and *pszName == NULL
For example, when alt attribute isn't presented and title or ARIA attributes aren't specified or empty on html:img element.
If there is a name (possibly empty)
S_OK and *pszName != NULL
The empty name means we allocate the string by SysAllocStringLen("", 0) method. You can get empty name, when, for example, html:img has only alt attribute with empty value (<img alt = "" >).
If error occured