This runbook covers TODOS.phase-72.72.13.1.6: the V2UI screen reader bridge
that exposes the UI element tree to platform accessibility APIs: UIAutomation on
Windows, NSAccessibility on macOS, and TalkBack on Android.
Runtime Surface#
The screen reader bridge lives in V2UI:
- C++ header:
V2/ue/Source/V2UI/Public/V2ScreenReaderBridge.h - C++ source:
V2/ue/Source/V2UI/Private/V2ScreenReaderBridge.cpp - automation spec:
V2/ue/Source/V2Tests/Private/UI/ScreenReaderBridge.spec.cpp - contract:
V2/ue/Content/V2/UI/Accessibility/ScreenReaderBridge_V2_Contract.json - focused checker:
V2/ue/Tools/check-v2-screen-reader-bridge.py
FV2ScreenReaderBridge::BuildDefaultTree returns
Accessibility.ScreenReaderBridge.V2, a stable UI element tree with platform
bindings for:
UIAutomationNSAccessibilityTalkBack
Node Tree#
The bridge exports FV2ScreenReaderBridgeNode entries with stable node ids,
parent/child links, platform roles, labels, values, hints, focus order, actions,
and live-region metadata. Required roles are Window, Button, Text, List,
ListItem, and LiveRegion.
FV2ScreenReaderBridge::BuildNodeFromQuestDescriptor converts existing
FV2QuestUIAccessibilityDescriptor summaries into bridge nodes so quest journal
and tracker accessibility text can be exposed through the same platform bridge.
Release Policy#
The bridge is valid only when it:
- exports a UI element tree;
- maps roles for UIAutomation, NSAccessibility, and TalkBack;
- preserves stable node ids and focus order;
- supports focus events and value-changed events;
- emits live-region announcements;
- exposes action hints for focusable nodes;
- rejects unlabeled or duplicate nodes.
Verification#
Run these checks after changing the screen reader bridge:
python3 V2/ue/Tools/check-v2-screen-reader-bridge.py
python3 V2/ue/Tools/check-v2-ui-module.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m py_compile V2/ue/Tools/check-v2-screen-reader-bridge.py V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/UI/Accessibility/ScreenReaderBridge_V2_Contract.json
Automation test name: V2.UI.Accessibility.ScreenReaderBridge.AssetContract.
Horde Gates#
screen-reader-bridge-sourcescreen-reader-bridge-platformsscreen-reader-bridge-node-treescreen-reader-bridge-live-regionsscreen-reader-bridge-automationscreen-reader-bridge-ci-wired