> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XAG 106：屏幕旁白

> 通过屏幕旁白以声音方式呈现所有屏幕视觉信息，让盲人、低视力及不识字的玩家都能使用每一个 UI。

## 目标

确保屏幕上的所有视觉信息也能通过屏幕旁白以声音方式呈现。这对盲人、低视力玩家，以及无法阅读的玩家（包括低龄玩家或有学习障碍的玩家）都有帮助。

## 概述

屏幕旁白通过合成语音朗读可见的 UI——菜单文本、`按 A 选择` 之类的提示，以及游戏内的重要信息。它可以是**平台级**（例如 Windows 讲述人）或**游戏内自带**。请在决定是否自研前，先确认平台支持情况。

其他辅助手段——音频提示、空间音频、触觉（[XAG 103](/build/game-principles/accessibility/xag-deep-dives/xag-103-additional-cues)）——通常比旁白效果更好，也应一并考虑。

## 范围界定问题

请查看下节 [哪些内容应支持旁白](#what-should-support-narration) 中列出的类别。如果您的游戏包含其中任何一类，且丢失该文字会让玩家无法配置、启动或完成游戏，那么就属于旁白支持的范围。

## 哪些内容应支持旁白

支持并不意味着默认朗读——而是当玩家启用旁白后，下列所有内容都能被读出。

* **所有屏幕文本** — 菜单标签、副标签、角色、数值、描述
* **控件交互提示** — `按 A 选择`
* **游戏内 UI** — HUD、物品栏、任务目标、提示、地图
* **玩家之间的通讯** — 收到的队伍聊天、聊天轮盘选项、预设消息
* **图像、图表、表格** — 通过文本替代呈现
* **实时更新** — 收到的聊天、Toast、错误消息、好友加入 / 离开

### 旁白应在何时触发

* **上下文变化** — 打开对话框、切换画面、从加载画面进入或退出到玩法
* **焦点变化** — 在按钮、列表项、滑块之间移动（朗读新聚焦的项）
* **数值 / 状态变化** — 滑块数值随之更新时朗读
* **实时通知** — 错误、提示、信息变更

## 如何朗读一个条目

有视力的玩家可以看到名称、角色、值/状态、位置以及可交互性。使用旁白的玩家应听到相同信息，通常按以下顺序：

1. **标签 / 名称**
2. **控件类型 / 角色**（`组合框`、`开关`、`滑块`）
3. **数值 / 状态**（`关`、`38%`、`已折叠`）
4. **索引**（`第 6 项，共 9 项`）— 放在字符串**末尾**。并提供关闭编号朗读的设置。
5. **交互模型**（`A 选择`）

<Warning>
  不要过度朗读。将关键信息前置，且在上下文未改变时，不要在每次焦点变化都重复读出静态文字（例如描述）。
</Warning>

## 实施指南

* **所有核心 UI 文本均支持旁白** — 主菜单、选项、HUD、状态变化、房间内玩家、基于时间的事件。优先使用平台屏幕阅读器；若不可用，则使用语音合成器。预录音频文件可作为兜底方案，但并非理想选择。
* **可交互元素枚举其子项**，并暴露输入类型和当前状态 / 数值。示例：`世界，Tab，第 1 项/共 3 项，已选中` 或 `音乐音量，滑块，52%`。
* **图表、示意图、图片、动画的文本替代** 需传达与视觉相同的信息。
* **文本替代描述 UI 组件的目的与操作方式**（例如 `按鼠标左键显示蜘蛛预览`，而非仅 `符号`）。
* **纯装饰性**的非文本内容**不**朗读。
* **焦点顺序**与 UI 含义和操作相符。在非线性布局中，焦点顺序与视觉流一致。
* **列表循环** — 在线性菜单（仅上下或仅左右）中，到达最后一项后循环回到第一项。在多向菜单（图块网格）中不循环。提供开关设置以启用/禁用循环。
* **取消 / 重复朗读**必须快速，与输入类型无关。
* **焦点变化时打断** — 当新元素获得焦点时，前一元素正在进行的朗读应立即停止；随后读出新元素。
* **语速与音调** — 允许玩家调整。
* **上下文变化尽可能由玩家发起**；上下文变化后要宣告新上下文。
* **定时 / 反复的通知**（加载、匹配、倒计时）可每 7–10 秒重新朗读一次状态，且不干扰其他旁白。
* **对外部屏幕阅读器的支持**要求：
  * 以编程方式暴露游戏的语言（`en-us` 等）。如果 NPC 对白切换语言，也需暴露相应语言，以便发音正确。
  * 替代文本应描述内容——不要在字符串中包含对象类型（`棕色盾牌`，而不是 `图像：棕色盾牌`）。
  * 标记要求：起始与结束标签完整、嵌套合法、无重复属性、ID 唯一。
  * 对所有 UI 组件，`name` 和 `role` 都可编程获取；用户可设置的状态、属性和值可编程设置；变更需通知辅助技术。
* **基于时间的媒体**需要文本替代来描述该媒体。对实时内容，提供描述性标题即可（例如 `显示太平洋时间当前时间的时钟`），而非实时读取数值。
* **表格**要具备完全的无障碍性——列头与行头以编程方式与单元格关联，使玩家导航时保留上下文。避免在整张表上只放一段高层次的替代文本。
  * **单个单元格：** `第 N 列，第 N 行。列头，行头。单元格内容。`
  * **在行内移动：** `列头，第 N 列，单元格内容。`
  * **在列内移动：** `行头，第 N 行，单元格内容。`
* **发音指引** — 为玩家提供一种方式，让他们理解专有名词、技术术语或不确定语言的词该如何发音。

## 潜在的玩家影响

| 玩家                   | 受影响 |
| -------------------- | :-: |
| 无视觉的玩家               |  ✔  |
| 低视力玩家                |  ✔  |
| 有认知或学习障碍的玩家          |  ✔  |
| 不熟悉游戏所用语言的玩家；非常低龄的玩家 |  ✔  |

## 资源

* [Provide separate volume controls or mutes for effects, speech and background / Music](http://gameaccessibilityguidelines.com/provide-separate-volume-controls-or-mutes-for-effects-speech-and-background-music)
* [How to use Windows Narrator](https://www.howtogeek.com/392013/how-to-use-windows-narrator/)
* [UI Automation Overview](https://learn.microsoft.com/windows/win32/winauto/uiauto-uiautomationoverview)
* [Designing for Screen Reader Compatibility (WebAIM)](https://webaim.org/techniques/screenreader/)
* [Ensure screenreader support for mobile devices](http://gameaccessibilityguidelines.com/ensure-screenreader-support-for-mobile-devices)
* [Ensure screenreader support, including menus & installers](http://gameaccessibilityguidelines.com/ensure-screenreader-support-including-menus-installers)


## Related topics

- [XAG 123：心理健康最佳实践](/zh-CN/build/game-principles/accessibility/xag-deep-dives/xag-123-mental-health-best-practices.md)
- [XAG 119：语音转文字与文字转语音聊天](/zh-CN/build/game-principles/accessibility/xag-deep-dives/xag-119-chat.md)
- [XBOX Accessibility Guidelines（XAG）](/zh-CN/build/game-principles/accessibility/xbox-accessibility-guidelines.md)
- [XAG 114：UI 上下文](/zh-CN/build/game-principles/accessibility/xag-deep-dives/xag-114-ui-context.md)
- [XAG 121：无障碍功能文档](/zh-CN/build/game-principles/accessibility/xag-deep-dives/xag-121-accessible-feature-documentation.md)
