> ## 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를 소리 내어 읽습니다 — 메뉴 텍스트, `press A to select` 프롬프트, 중요한 게임 내 정보. 이는 **플랫폼 수준**(예: Windows Narrator) 또는 **게임 전용**일 수 있습니다. 자체 구축이 필요한지 결정하기 전에 플랫폼이 지원하는 것을 확인하세요.

다른 어포던스 — 오디오 신호, 공간 오디오, 햅틱([XAG 103](/build/game-principles/accessibility/xag-deep-dives/xag-103-additional-cues)) — 은 종종 내레이션보다 낫고 함께 탐색되어야 합니다.

## 범위 질문

[내레이션을 지원해야 할 것](#what-should-support-narration)의 카테고리를 검토하세요. 게임에 그 중 어떤 것이든 포함되고, 그 텍스트를 잃는 것이 플레이어가 게임을 구성, 시작, 완료하는 것을 막는다면, 내레이션 지원이 범위에 포함됩니다.

## 내레이션을 지원해야 할 것

지원한다는 것은 기본적으로 내레이트한다는 뜻이 아닙니다 — 플레이어가 내레이션을 활성화할 때 나열된 모든 것이 소리 내어 읽힌다는 뜻입니다.

* **모든 화면 텍스트** — 메뉴 레이블, 하위 레이블, 역할, 값, 설명
* **컨트롤 상호작용 프롬프트** — `Press A to select`
* **게임 내 UI** — HUD, 인벤토리, 목표, 힌트, 지도
* **플레이어 간 커뮤니케이션** — 수신 파티 채팅, 채팅 휠 옵션, 미리 준비된 메시지
* **이미지, 다이어그램, 표** — 텍스트 대안을 통해
* **실시간 업데이트** — 수신 채팅, 토스트, 오류 메시지, 친구 참여/나감

### 내레이션이 발생해야 하는 경우

* **컨텍스트 변경** — 대화 상자 열기, 화면 전환, 로드 화면으로 들어가거나 로드 화면에서 게임 플레이로 진입
* **포커스 변경** — 버튼, 목록 항목, 슬라이더 간 이동(새로 포커스된 항목 알림)
* **값/상태 변경** — 슬라이더 값이 변경될 때 업데이트
* **실시간 알림** — 오류, 경고, 정보 변경

## 항목을 내레이트하는 방법

시력이 있는 플레이어는 이름, 역할, 값/상태, 위치 및 상호작용 어포던스를 봅니다. 내레이션을 사용하는 플레이어는 일반적으로 다음 순서로 동일한 내용을 들어야 합니다.

1. **레이블/이름**
2. **컨트롤 유형/역할** (`combo box`, `toggle`, `slider`)
3. **값/상태** (`Off`, `38%`, `collapsed`)
4. **인덱싱** (`6 of 9`) — 문자열의 **끝**에 배치. 열거를 비활성화하는 설정을 제공하세요.
5. **상호작용 모델** (`A to select`)

<Warning>
  과도하게 내레이트하지 마세요. 핵심 정보를 앞으로 배치하고, 컨텍스트가 동일한 동안 모든 포커스 변경 시 정적 텍스트(설명 등)를 반복하지 마세요.
</Warning>

## 구현 가이드라인

* **모든 핵심 UI 텍스트가 내레이션을 지원합니다** — 메인 메뉴, 옵션, HUD, 상태 변경, 게임 내 플레이어, 시간 기반 이벤트. 플랫폼 스크린 리더를 선호하세요. 사용할 수 없는 경우 음성 합성기를 사용하세요. 녹음된 오디오 파일은 대안이지만 이상적이지 않습니다.
* **상호작용 가능한 요소는 자식을 열거**하고 입력 유형과 현재 상태/값을 노출합니다. 예: `Worlds, Tab, 1 of 3, selected` 또는 `Music Volume, slider, 52%`.
* **차트, 다이어그램, 그림, 애니메이션에 대한 텍스트 대안**은 시각적으로 전달하는 것과 동일한 정보를 전달합니다.
* **텍스트 대안은 UI 구성 요소의 목적과 작동을 설명합니다**(예: `symbol`이 아닌 `Left mouse button for show spider preview`).
* **순수하게 장식적인** 비텍스트는 말하지 **않습니다**.
* **포커스 순서**는 UI 의미와 작동에 맞춥니다. 비선형 레이아웃에서 포커스 순서는 시각적 흐름에 맞춥니다.
* **목록 반복** — 선형(위/아래 또는 왼쪽/오른쪽만) 메뉴에서 마지막 항목 이후 첫 번째로 반복. 다방향 메뉴(타일 그리드)에서는 반복하지 마세요. 반복을 활성화/비활성화하는 설정을 제공하세요.
* **내레이션 취소/반복**은 입력 유형에 관계없이 빨라야 합니다.
* **포커스 변경 시 중단** — 새 요소가 포커스를 얻을 때 이전 요소에 대한 진행 중인 내레이션이 즉시 중지되고, 그 다음 새 요소가 읽힙니다.
* **음성 속도와 피치** — 플레이어 조정을 허용하세요.
* 가능한 경우 **컨텍스트 변경은 플레이어가 시작**합니다. 컨텍스트 변경 후 새 컨텍스트를 알리세요.
* **시간 지정/반복 알림**(로딩, 매치메이킹, 카운트다운)은 다른 내레이션을 방해하지 않고 7\~10초마다 상태를 다시 읽을 수 있습니다.
* **외부 스크린 리더 지원**에는 다음이 필요합니다.
  * 게임의 언어(`en-us` 등)를 프로그래밍 방식으로 노출하세요. NPC 대사가 언어를 전환하면, 발음이 정확하도록 그것도 노출하세요.
  * 대체 텍스트는 콘텐츠를 설명합니다 — 문자열에 오브젝트 유형을 포함하지 마세요(`Image: Brown shield`가 아닌 `Brown shield`).
  * 마크업: 완전한 시작/종료 태그, 유효한 중첩, 중복 속성 없음, 고유 ID.
  * 모든 UI 구성 요소에 대해 `name`과 `role`이 프로그래밍 방식으로 결정 가능; 사용자가 설정할 수 있는 상태, 속성, 값이 프로그래밍 방식으로 설정 가능; 변경 사항이 보조 기술에 알림.
* **시간 기반 미디어**에는 미디어를 설명하는 텍스트 대안이 있습니다. 라이브 콘텐츠의 경우 서술적인 제목으로 충분합니다(예: 실시간 값 읽기가 아닌 `Clock displaying current time in Pacific Time`).
* **표**는 완전히 접근 가능해야 합니다 — 열과 행 헤더가 셀과 프로그래밍 방식으로 연관되어 있어 플레이어가 탐색할 때 컨텍스트가 유지됩니다. 표에 단일 상위 대체 텍스트를 사용하지 마세요.
  * **단일 셀:** `Column N, row N. Column header, row header. Cell contents.`
  * **행 내 이동:** `Column header, column N, cell contents.`
  * **열 내 이동:** `Row header, row N, cell contents.`
* **발음 안내** — 플레이어가 고유 명사, 기술 용어 또는 불특정 언어 단어를 어떻게 발음해야 하는지 이해할 수 있는 메커니즘을 제공하세요.

## 잠재적 플레이어 영향

| 플레이어                                | 영향 받음 |
| ----------------------------------- | :---: |
| 시력이 없는 플레이어                         |   ✔   |
| 저시력 플레이어                            |   ✔   |
| 인지 또는 학습 장애가 있는 플레이어                |   ✔   |
| 게임의 음성 언어에 능숙하지 않은 플레이어; 매우 어린 플레이어 |   ✔   |

## 리소스

* [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: 정신 건강 모범 사례](/ko/build/game-principles/accessibility/xag-deep-dives/xag-123-mental-health-best-practices.md)
- [XAG 119: 음성-텍스트 변환 및 텍스트-음성 변환 채팅](/ko/build/game-principles/accessibility/xag-deep-dives/xag-119-chat.md)
- [XBOX Accessibility Guidelines (XAG)](/ko/build/game-principles/accessibility/xbox-accessibility-guidelines.md)
- [XAG 114: UI 컨텍스트](/ko/build/game-principles/accessibility/xag-deep-dives/xag-114-ui-context.md)
- [XAG 120: 커뮤니케이션 경험](/ko/build/game-principles/accessibility/xag-deep-dives/xag-120-communication-experiences.md)
