Open-Source Wikis

/

Gecko

/

Systems

/

Accessibility

mozilla/gecko-dev

Accessibility

accessible/ implements the platform accessibility APIs that screen readers (NVDA, JAWS, VoiceOver, Orca, TalkBack) use to interact with web content. It exposes the DOM through MSAA / IA2 (Windows), AT-SPI (Linux), AppKit accessibility (macOS), and AccessibilityNodeInfo (Android).

What's in the directory

accessible/
├── base/        # Core: nsAccessibilityService, AccessibleWrap, role definitions
├── generic/     # Frame ↔ Accessible mapping, default trees
├── html/        # HTML-element-specific accessibles
├── ipc/         # Cross-process accessibility tree (RemoteAccessible)
├── windows/     # MSAA + IA2
├── mac/         # NSAccessibility
├── atk/         # AT-SPI
├── android/     # AccessibilityNodeInfo bridge
├── tests/       # mochitests
└── xpcom/       # nsIAccessibilityService etc.

How it works

graph LR
    DOM[DOM tree] --> A11ySvc[nsAccessibilityService]
    A11ySvc --> Accessible[mozilla::a11y::Accessible<br/>(LocalAccessible / RemoteAccessible)]
    Accessible --> Platform[Platform binding<br/>MSAA / IA2 / AT-SPI / NSA / Android]
    Platform --> AT[Assistive technology]

For each document, an accessibility tree is built lazily mirroring the visible content tree. Roles, names (computed via Accessible Name and Description Computation algorithm), states, and relationships propagate through it.

Under Fission, the accessibility tree is sharded across processes. The parent process sees a unified tree composed of RemoteAccessible proxies; events come over IPDL.

Cache mode

A relatively recent change moved the accessibility implementation to a cache-driven model: the parent maintains a serialized cache of all relevant accessible state, updated incrementally from each content process. This reduces sync IPC and improves reliability for screen-reader scenarios.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Accessibility – Gecko wiki | Factory