Have you ever wondered how browsers turn user interactions into a screen reader announcement?
Here’s a simple model that shows the key steps. This covers: an event firing, DOM updates, changes in the accessibility tree, and finally the AXEvent that reaches assistive technologies.
Steps that occur inside the browser
-
A user event occurs
Click, key press, pointer movement, etc. -
The browser processes the event
It determines what was interacted with (hit-testing), applies default element behaviour, and updates internal state. -
The browser updates layout or repainting if needed
Only when something visual has changed — text, position, open/closed state, etc. -
The browser updates the accessibility tree
It synchronises accessibility information with DOM and layout changes, computing names, roles, states, relationships, and values. -
The browser generates AXEvents
Examples: value changed, state changed, focus changed, live region updated. -
The browser sends AXEvents to the OS accessibility API
Using the appropriate platform API:- AX API — macOS, iOS
- UIA — Windows
- ATK / AT-SPI — Linux
Steps that occur outside the browser
-
The OS accessibility API notifies assistive technology
Screen readers subscribe to these OS-level notifications and receive them as events. -
The assistive technology decides what to do
Announce, queue, merge, interrupt, delay, or ignore the event based on its logic and user settings.
Related articles
What is an AXEvent?
Detailed explanation of AXevents.
What really happens when a user clicks an accordion button?
A more detailed explanation of an event.
What are DOM mutations?
DOM mutations are any changes to the accessibility tree.
End-to-end browser and accessibility event architecture
A full explanation of how browsers and assistive technologies communicate.