유니티 엔진의 모바일 스크린 리더 지원 살펴보기

포용성을 향한 긍정적인 변화의 흐름 속에서 점점 더 많은 게임 개발자가 접근성을 창작의 필수 요소로 우선시하고 있습니다. 유니티는 개발자가 접근성 목표를 달성할 수 있도록 지원을 제공하기 위해 최선을 다하고 있습니다. 리아 스케리가 GAconf USA 2023에서 발표했듯이, 유니티는 모바일 스크린 리더 지원을 위해 적극적으로 노력해 왔으며, 이는 향후 게임 경험을 향상시킬 다양한 접근성 런타임 기능 중 첫 번째 기능입니다.
유니티로 개발된 프로젝트는 자체 그래픽 사용자 인터페이스(GUI) 시스템을 사용하기 때문에 이전에는 모바일 스크린 리더가 유니티에서 제작한 콘텐츠와 호환되지 않았습니다. 즉, Android 또는 iOS 사용자가 스크린 리더가 실행 중인 기기에서 Unity로 만든 게임을 열면 스크린 리더를 끌 때까지 상호작용할 수 있는 방법이 없었습니다. 모든 사용자가 모바일 기기에서 게임을 즐길 수 있도록 하는 것이 유니티의 주요 목표 중 하나인 만큼, 이번 지원이 유니티 개발자에게 어떤 의미가 있는지 자세히 알아보겠습니다.
스크린 리더는 시각적 입력을 음성이나 점자와 같은 비시각적 방식으로 출력할 수 있는 보조 기술의 한 형태입니다. Android 및 iOS를 실행하는 모바일 디바이스에는 각각 TalkBack 및 VoiceOver와 같은 화면 리더 기술이 내장되어 있습니다. 이러한 형태의 보조 기술은 시각 장애인에게 필수적이며 시각 장애, 문맹 또는 인지 장애가 있는 사람들에게도 유용합니다.
모바일 디바이스의 경우 화면 리더는 TTS(텍스트 음성 변환) 엔진을 사용하여 화면의 정보를 음성으로 번역합니다. 터치 또는 제스처로 UI를 탐색하는 데 사용할 수 있습니다.
Unity로 제작된 구형 게임은 기본적으로 스크린 리더와 호환되지 않습니다. 스크린 리더가 이러한 애플리케이션을 탐색하려면 접근 가능한 요소가 무엇인지, 화면에서 해당 요소가 어디에 있는지, 어떤 역할을 하는지, 사용자가 UI와 어떻게 상호 작용할 수 있는지에 대한 정보를 수신해야 합니다. 즉, 예를 들어 이 위치에 특정 텍스트가 있는 라벨이 있고, 이 위치에는 특정텍스트가 있는버튼이 있으며, 버튼이 활성화되면 수행해야 할 작업은 이 기능이라는 식으로 스크린 리더에 알려줄 방법이 필요했습니다.
Unity 2023.2 테크 스트림부터 시작하여 2023.3 테크 스트림(현재 Unity 6 베타로 알려짐)에서 개선된 기능을 통해 개발자는 이제 모바일 기기의 스크린 리더가 Unity 게임 탐색 및 상호작용에 사용할 수 있는 데이터로 GUI를 변환할 수 있습니다. 이 API는 특정 GUI 시스템에 종속되지 않도록 개발되었기 때문에 어떤 기술을 사용하여 GUI를 구현하든 Unity로 게임을 개발하는 모든 사람이 사용할 수 있습니다. GU 이외의 요소도 화면 리더 요소로 표시할 수 있습니다.
화면 리더 API는 각 GUI 요소와 상호 작용하기 위해 화면 리더가 필요로 하는 정보를 포함하는 간단한 데이터 구조 계층 구조입니다. 계층 구조의 모든 노드는 일반적으로 게임에서 접근 가능한 요소를 나타내며, 라벨(노드에 포커스가 맞춰졌을 때 화면 리더가 가장 먼저 읽는 항목), 화면 위치, 때로는 값, 버튼이나 토글인지 또는 요소가 비활성화되어 있는지 등 화면 리더가 사용자에게 해당 요소에 대한 자세한 정보를 제공하는 데 도움이 되는 추가 정보를 포함합니다.
접근성 계층 구조의 노드 순서는 화면 리더가 화면을 탐색하는 순서를 정의합니다. 즉, 형제 노드(계층 구조의 같은 레벨에 있는 노드)가 순서대로 읽혀지며, 예를 들어 부모 노드가 자식 노드보다 먼저 읽혀집니다.

현재 스크린 리더용 이 API의 초기 구현은 Android 또는 iOS 운영 체제를 실행하는 모바일 디바이스에서만 작동합니다. 제품 전략에 따라 기본 스크린 리더 기능을 갖춘 MacOS 및 Windows와 데스크톱 기반 웹 브라우저로 지원을 확대하는 방안도 고려하고 있습니다. 게임 콘솔은 본질적으로 접근성이 좋은 플랫폼은 아니지만, 저희는 게임 콘솔에서도 가능한 방법을 모색하고 있습니다.

유니티는 실력에 관계없이 모든 게이머가 전 세계 개발자가 만든 모든 콘텐츠를 마음껏 즐길 수 있도록 하는 것이 중요하다는 것을 잘 알고 있습니다. 이 최신 기능은 모든 플레이어를 위한 포용적이고 즐거운 게임 산업을 육성하기 위한 유니티의 노력을 강조합니다. 접근성 팀은 이제 막 시작 단계에 있으며 앞으로 해야 할 일이 많으므로 자세한 내용은 UI 시스템 로드맵과 함께 로드맵을 확인하세요.
언급된 API는 문서화되어 있으며 Unity 매뉴얼의 스크립팅 API 섹션에서 확인할 수 있습니다. 보조 지원 클래스를 통해 시작하세요. 또한 Unity 애플리케이션이나 게임에서 스크린 리더 기능을 구현하는 방법에 대한 실용적인 예제(상단 배너에 표시된레터스펠)와 추가적인 AccessibilitySettings 사용 예제가 포함된 GitHub 리포지토리를 준비했습니다.
접근성 지원을 위해 도구를 어떻게 활용하고 계신지 알려주시기 바랍니다. Unity에서 작업 중인 멋진 작품을 보여주고 접근성 포럼에서 직접 피드백을 보내주세요.