Max Design

Published:

These layers influence what a screen reader or braille device presents to a user.

1. Browser parsing

The browser turns your HTML into a DOM structure.
e.g. elements, attributes, text nodes.

2. Browser engine internal structures

The engine combines the DOM with CSS to build internal models for layout and rendering.
e.g. render tree, frame/render objects.

3. Browser accessibility tree

The engine maps eligible elements and properties into an accessibility tree for the OS.
e.g. Blink AXObject/AXNode, WebKit AXObject, Gecko Accessible.

4. OS accessibility API

The operating system exposes accessibility information to assistive technologies.
e.g. UIA (Windows), AX API (macOS/iOS), ATK/AT-SPI (Linux), AXNodeInfo (Android).

5. Assistive technology interpretation layer

The screen reader interprets the API data using its own rules and heuristics.
e.g. VoiceOver, NVDA, JAWS, Orca, TalkBack.

6. AT user settings

User preferences impact how information is announced or displayed.
e.g. verbosity, punctuation, typing echo, custom dictionaries.

7. Screen reader speech queue

The screen reader queues and orders speech or braille output before it is presented.
e.g. buffering, interruptions, overlap prevention, dropped or skipped messages.

8. Speech output / Braille output

The AT delivers the final output via speech or braille.
e.g. text-to-speech engine, braille display, braille tables.

Conclusion

What starts as simple HTML passes through many layers before it becomes speech or braille. Understanding these layers helps explain why behaviour can vary across platforms, browsers, and assistive technologies.