모든 화면 시각 정보가 스크린 내레이션을 통해 청각적으로도 표현될 수 있도록 합니다. 이는 시각장애, 저시력, 비읽기 플레이어(어린 플레이어나 학습 장애가 있는 사람 포함)에게 도움이 됩니다.
스크린 내레이션은 합성 음성을 통해 보이는 UI를 소리 내어 읽습니다 — 메뉴 텍스트, press A to select 프롬프트, 중요한 게임 내 정보. 이는 플랫폼 수준(예: Windows Narrator) 또는 게임 전용일 수 있습니다. 자체 구축이 필요한지 결정하기 전에 플랫폼이 지원하는 것을 확인하세요.
다른 어포던스 — 오디오 신호, 공간 오디오, 햅틱(XAG 103) — 은 종종 내레이션보다 낫고 함께 탐색되어야 합니다.
범위 질문
내레이션을 지원해야 할 것의 카테고리를 검토하세요. 게임에 그 중 어떤 것이든 포함되고, 그 텍스트를 잃는 것이 플레이어가 게임을 구성, 시작, 완료하는 것을 막는다면, 내레이션 지원이 범위에 포함됩니다.
내레이션을 지원해야 할 것
지원한다는 것은 기본적으로 내레이트한다는 뜻이 아닙니다 — 플레이어가 내레이션을 활성화할 때 나열된 모든 것이 소리 내어 읽힌다는 뜻입니다.
- 모든 화면 텍스트 — 메뉴 레이블, 하위 레이블, 역할, 값, 설명
- 컨트롤 상호작용 프롬프트 —
Press A to select
- 게임 내 UI — HUD, 인벤토리, 목표, 힌트, 지도
- 플레이어 간 커뮤니케이션 — 수신 파티 채팅, 채팅 휠 옵션, 미리 준비된 메시지
- 이미지, 다이어그램, 표 — 텍스트 대안을 통해
- 실시간 업데이트 — 수신 채팅, 토스트, 오류 메시지, 친구 참여/나감
내레이션이 발생해야 하는 경우
- 컨텍스트 변경 — 대화 상자 열기, 화면 전환, 로드 화면으로 들어가거나 로드 화면에서 게임 플레이로 진입
- 포커스 변경 — 버튼, 목록 항목, 슬라이더 간 이동(새로 포커스된 항목 알림)
- 값/상태 변경 — 슬라이더 값이 변경될 때 업데이트
- 실시간 알림 — 오류, 경고, 정보 변경
항목을 내레이트하는 방법
시력이 있는 플레이어는 이름, 역할, 값/상태, 위치 및 상호작용 어포던스를 봅니다. 내레이션을 사용하는 플레이어는 일반적으로 다음 순서로 동일한 내용을 들어야 합니다.
- 레이블/이름
- 컨트롤 유형/역할 (
combo box, toggle, slider)
- 값/상태 (
Off, 38%, collapsed)
- 인덱싱 (
6 of 9) — 문자열의 끝에 배치. 열거를 비활성화하는 설정을 제공하세요.
- 상호작용 모델 (
A to select)
과도하게 내레이트하지 마세요. 핵심 정보를 앞으로 배치하고, 컨텍스트가 동일한 동안 모든 포커스 변경 시 정적 텍스트(설명 등)를 반복하지 마세요.
구현 가이드라인
- 모든 핵심 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.
- 발음 안내 — 플레이어가 고유 명사, 기술 용어 또는 불특정 언어 단어를 어떻게 발음해야 하는지 이해할 수 있는 메커니즘을 제공하세요.
잠재적 플레이어 영향
리소스