Unity 6.3
0 онлайн 20 гостей 3 в системе
Вход

Архитектура и производительность модуля доступности

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

Модуль доступности состоит из следующих основных компонентов:

  • AssistiveSupport: основной интерфейс к API поддержки программ чтения с экрана
  • AccessibilityHierarchy: Иерархическая модель данных, описывающая визуальные элементы для экранных читателей
  • AccessibilityNode: Структура данных, представляющая отдельный визуальный элемент, который должен быть доступен для пользователей экранных читателей
  • IAccessibilityNotificationDispatcher: Методы отправки уведомлений экранным читателям (введены в AssistiveSupport)
  • AccessibilitySettings: Точка доступа к системным настройкам доступности на устройстве пользователя
  • VisionUtility: Палитра цветов различимых для дальтонических пользователей

Ключевые архитектурные концепции

Вот ключевые понятия, которые необходимо понимать при работе с модулем Доступность:

Отдельная иерархия доступности

Представьте иерархию доступности как параллельную структуру, которая отражает иерархию сцены в терминах, понятных экранным редакторам. Ваши визуальные элементы существуют в иерархии сцены Unity. Иерархия доступности описывает этот контент в терминах экранного редактора.

Узлы доступности

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

Состояние и свойства узла

У узлов доступности есть такие свойства, как метка, роль, значение, состояние и связи с другими узлами. При обновлении свойств визуального элемента обновляется и соответствующий узел доступности.

Hierarchy и навигации

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

Уведомления о доступности

Уведомляйте программу чтения с экрана о значимых изменениях через уведомления доступности. Так она будет оставаться в согласии с интерфейсом вашего приложения.

Платформенная абстракция

Вы пишете против UnityДоступность API Модуль работает с различными платформами. Избегайте обходных путей для конкретных платформ, если это не необходимо.

Этапы жизненного цикла модуля

  • Запуск приложения: регистрация для событий жизненного цикла приложения и событий доступности платформы
  • Update: Пакетная обработка событий доступности, полученных от операционной системы
  • LateUpdate: Автоматическое обновление кадров узла доступности, если окно приложения было ранее перемещено или изменено его размер
  • Выход из приложения: отмена регистрации из событий жизненного цикла приложения и событий доступности платформы

Соображения, касающиеся эффективности

Модуль доступности не влияет на производительность для пользователей без включенного экранного читателя, так как большинство его операций работают только при обнаружении экранного читателя.

Модуль запускает обновления платформы только при активации пользователем программы для чтения экрана или при изменении узлов доступности или отправке уведомлений о доступности при активном программном обеспечении для чтения экрана.

Для типичного UIs обновления иерархии доступности оказывают минимальное влияние на производительность.

На производительность влияют следующие факторы:

  • Метод создания и управления иерархией доступности в приложении
  • Размер иерархии доступности
  • Частота обновления иерархии доступности
  • частота уведомлений о доступности, которые вы отправляете в экранный редактор;

Для минимизации воздействия на производительность следуйте следующим рекомендациям:

  • Создавайте узлы доступности только для ключевых интерактивных или информационных элементов.
  • Создавайте узлы доступности только для элементов, видимых на экране.
  • Избегайте обновления доступности в каждом кадре.
  • Не отправляйте уведомления о доступности в каждом кадре.
  • Отправлять уведомления о доступности только в случае крайней необходимости.
  • Проверьте с помощью экранных чтецов на целевых устройствах.

Доступность Hierarchy

UnityДоступность Hierarchy Просмотрщик (Окно > Доступность > Hierarchy Просмотрщик) помогает вам визуализировать вашу активную иерархию доступности.

В режиме воспроизведения в просмотрщике доступности Hierarchy показывается:

  • Текущая структура иерархии активных средств доступности
  • Текущие свойства узлов доступности
Просмотрщик доступности Hierarchy, отображающий узлы доступности на экране настроек приложений
Просмотрщик доступности Hierarchy, отображающий узлы доступности на экране настроек приложения

В процессе разработки пользуйтесь Accessibility Hierarchy Viewer, чтобы проверять свою реализацию доступности. Сравнивайте иерархию доступности с интерфейсом приложения: у каждого интерактивного или информативного элемента должен быть соответствующий узел доступности с подходящими свойствами. При обновлении интерфейса или игрового мира иерархия доступности должна отражать эти изменения.

Проверьте реализацию доступности в Unity Editor в режиме воспроизведения, затем создайте на устройстве и проверьте с помощью целевого экранного читателя.

Дополнительные ресурсы

  • Модуль доступности API документация
  • 📺 Видео: Охват новых аудиторий с помощью доступности и локализации в Unity 6 (Unite 2025)
  • ⚙️ Образец проекта: LetterSpell: пример доступного Unity применение
  • Сообщество: Unity Дискуссии: Доступность