Fighting Game · Guides & deep dives

V2 Screen Reader Bridge

The screen reader bridge lives in V2UI:

5sections1 minread

On this page

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:

  • UIAutomation
  • NSAccessibility
  • TalkBack

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:

bash
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-source
  • screen-reader-bridge-platforms
  • screen-reader-bridge-node-tree
  • screen-reader-bridge-live-regions
  • screen-reader-bridge-automation
  • screen-reader-bridge-ci-wired