Engine & platform

Обзор поддержки мобильных устройств чтения с экрана в движке Unity Engine

JULIA PERDIGUEIRO Software Development Manager, Accessibility
Jan 19, 2024|7 Мин
Обзор поддержки мобильных устройств чтения с экрана в движке Unity Engine
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Позитивный сдвиг в сторону инклюзивности - все большее число разработчиков игр ставят доступность в приоритет как неотъемлемый аспект своих творений. Unity оказывает поддержку разработчикам в достижении целей доступности. Как рассказала Лия Скерри на GAconf USA 2023, Unity активно работает над поддержкой чтения с экрана мобильных устройств, что станет первой из многих доступных функций среды исполнения, которые должны улучшить игровой опыт в ближайшие годы.

Поскольку проекты, разработанные в Unity, используют наши собственные системы графического интерфейса пользователя (GUI), ранее не было возможности совместимости мобильных устройств чтения с экраном с контентом, созданным в Unity. Это означало, что если пользователь Android или iOS открывал на своем устройстве игру, созданную с помощью Unity, при работающем устройстве чтения с экрана, он не мог взаимодействовать с ней до тех пор, пока устройство чтения с экрана не было выключено. Предоставление пользователям с любыми способностями возможности играть на своих мобильных устройствах было одной из наших главных целей, поэтому давайте узнаем, что эта поддержка означает для разработчиков Unity сегодня.

Что такое программа для чтения с экрана?

Программа чтения с экрана - это вспомогательная технология, которая позволяет выводить визуальные данные в невизуальной форме, например, в виде речи или шрифта Брайля. Мобильные устройства под управлением Android и iOS оснащены встроенными технологиями чтения с экрана, такими как TalkBack и VoiceOver, соответственно. Эта разновидность вспомогательных технологий необходима слепым людям, а также полезна слабовидящим, неграмотным или страдающим когнитивными расстройствами.

Для мобильных устройств программы чтения с экрана используют механизм преобразования текста в речь (TTS) для перевода экранной информации в речь. Они могут использоваться для навигации по пользовательскому интерфейсу с помощью прикосновений или жестов.

Программы для чтения с экрана и игры Unity: Исторический контекст

Старые игры, созданные с помощью Unity, по умолчанию несовместимы с программами для чтения с экрана. Чтобы программа чтения с экрана могла работать с таким приложением, ее технология должна получать информацию о том, что представляют собой доступные элементы, где они расположены на экране, какую роль они играют и как пользователь может взаимодействовать с пользовательским интерфейсом. Это означает, что нам нужен способ сообщить программе чтения с экрана, что, например, в этой позиции находится метка с таким-то текстом, а в этой позиции- кнопка с таким-тотекстом, и действие, которое нужно выполнить при активации кнопки, - это такая-то функция, и так далее.

Unity API для чтения с экрана

Начиная с Unity 2023.2 Tech Stream и улучшенной версии 2023.3 Tech Stream (теперь известной как Unity 6 Beta), разработчики теперь могут преобразовывать свой графический интерфейс в данные, которые могут использовать устройства чтения с экрана на мобильных устройствах для навигации и взаимодействия с игрой Unity. Этот API был разработан таким образом, чтобы не зависеть от конкретной системы графического интерфейса, и поэтому может использоваться всеми, кто разрабатывает игры в Unity - независимо от того, какую технологию они используют для реализации графического интерфейса. Элементы, не относящиеся к пользовательскому интерфейсу, также могут быть представлены в виде элементов для чтения с экрана.

API для чтения с экрана - это простая иерархия структур данных, которая содержит информацию, необходимую устройству для чтения с экрана, чтобы обеспечить взаимодействие с каждым элементом GUI. Каждый узел в иерархии обычно представляет собой доступный элемент игры, имеющий метку (первое, что считывает экранный сканер при фокусировке узла), позицию на экране, иногда значение и дополнительную информацию, которая поможет экранному сканеру предоставить пользователю больше информации об этом элементе, например, если это кнопка или тумблер, или если элемент отключен.

Порядок расположения узлов в иерархии доступности определяет порядок, в котором программа чтения с экрана будет перемещаться по экрану. Это означает, что узлы-сестры (узлы на одном уровне иерархии) читаются по порядку, а родительский узел, например, читается раньше своих дочерних узлов.

Анимированный GIF, показывающий средство просмотра иерархии доступности в редакторе Unity
Анимированный GIF, показывающий средство просмотра иерархии доступности в редакторе Unity
Поддерживаемые платформы

В настоящее время первоначальная реализация этого API для устройств чтения с экрана работает только с мобильными устройствами под управлением операционных систем Android или iOS. Согласно нашей стратегии развития продукта, мы также рассматриваем возможность расширения поддержки MacOS и Windows, каждая из которых имеет встроенные возможности чтения с экрана, а также веб-браузеров для настольных компьютеров. Хотя игровые консоли по своей сути не являются доступными платформами, мы изучаем возможности и для них.

Два скриншота, демонстрирующие технологии чтения с экрана для iOS VoiceOver (слева) и Android TalkBack (справа).
Два скриншота, демонстрирующие технологии чтения с экрана для iOS VoiceOver (слева) и Android TalkBack (справа).
Начало работы

Unity осознает важность того, чтобы каждый геймер, независимо от его способностей, мог в полной мере насладиться всем, что создают мировые разработчики. Эта новейшая возможность подчеркивает наше стремление к созданию инклюзивной и приятной игровой индустрии для всех игроков. Наша команда по обеспечению доступности только начинает свою работу, и нам еще многое предстоит сделать - ознакомьтесь с нашей дорожной картой, а также с дорожной картой для систем пользовательского интерфейса, чтобы узнать больше.

Упомянутые API задокументированы и находятся в разделе Scripting API руководства Unity. Начните работу с помощью класса AssistiveSupport. Кроме того, мы создали репозиторий GitHub с практическим примером(LetterSpell, изображен на баннере вверху), как реализовать возможности чтения с экрана в вашем приложении или игре Unity, а также дополнительные примеры использования AccessibilitySettings.

Мы будем рады узнать, как вы используете наши инструменты для поддержки доступности. Покажите нам удивительные вещи, над которыми вы работаете в Unity, и отправьте нам отзывы прямо на форум Accessibility.