Implementation Details

Introduction

This article is a reference how Gecko implements AT APIs.

Supported Features

Interfaces

Refer to specific pages to get information of supported interfaces for interested AT API:

Roles

Refer to specific pages to get information of supported roles for interested AT API:

States

Refer to specific pages to get information of supported states for interested AT API:

Relations

Refer to specific pages to get information of supported relations for interested AT API:

Attributes

Object Attributes

Refer to specific pages to get information of supported object attributes for interested AT API:

Text Attributes

Refer to specific pages to get information of supported text attributes for interested AT API:

  • Gecko
  • MSAA - doesn't have a way to expose text attributes, use IA2
  • IA2
  • AT-SPI

Document Attributes

Refer to specific pages to get information of supported document attributes for interested AT API:

  • Gecko/MSAA/IA2 - document attributes are not exposed. Instead, the same information is available via theISimpleDOMDocument interface.
  • AT-SPI

Events

Refer to specific pages to get information of supported events for interested AT API:

Implementation Features

This section highlights special features of AT APIs implementation by Gecko.

Unsupported Features

We do not support some AT APIs features. Please refer to pages below for interesting AT API:

Differences With Other Applications

This section provides information about implementation differences between Gecko based applications and other applications.

How to Find the Content Window and Load the Document

In XUL-based clients, screen readers may need to find the content window so that they know where to start grabbing the accessible tree, in order to load the current document into a buffer in their own process. Refer to specific pages for interested AT API.

Avoiding Memory Leaks

It is the assistive technology's responsibility to watch for events that indicate when windows or content subtrees are being destroyed, and to release all Accessible objects related to that window. In addition, STATE_DEFUNCT is set on objects that should be released by the assistive technology. Mutation events should be watched to invalidate the cache.

  • Under MSAA/IA2, watch for EVENT_HIDE
  • Under ATK/AT-SPI, watch for children-changed:remove

To help developers in that regard, there is Memory Leak monitor, a Firefox extension.