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

AccessibilityHierarchy

класс в UnityEngine.Accessibility

Выполнено в:UnityEngine.AccessibilityModule

Описание

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


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

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

Структуры данных, которые образуют иерархию доступности, называются AccessibilityNode. Каждый узел представляет визуальный элемент, который должен быть доступен для программы для чтения экрана. Узел может иметь ноль или более AccessibilityNode.children и один AccessibilityNode.parent. AccessibilityHierarchy.rootNodes являются узлами верхнего уровня в иерархии, не имеющими родительского узла.

Пользователи могут перемещаться по иерархии доступности последовательно, перемещая фокус программы для чтения экрана с одного узла на другой. Некоторые программы для чтения экрана следуют последовательности перемещения по глубине, переходя к дочерним узлам узла перед переходом к его братьям, в то время как другие осуществляют навигацию в зависимости от позиции узлов на экране (заданной их AccessibilityNode.frame).

Чтобы разрешить программе для чтения экрана перемещаться по иерархии доступности, необходимо назначить иерархию AssistiveSupport.activeHierarchy для ее активации. Чтобы эффективно управлять системными ресурсами, Unity не сохраняет активную иерархию, когда программа для чтения экрана выключена. Вы должны активировать иерархию каждый раз, когда включается программа для чтения экрана (см. AssistiveSupport.screenReaderStatusChanged и AssistiveSupport.isScreenReaderEnabled).

Если вы изменяете активную иерархию, тогда вы должны уведомить программу для чтения экрана, вызвав IAccessibilityNotificationDispatcher.SendLayoutChanged или IAccessibilityNotificationDispatcher.SendScreenChanged (в зависимости от масштаба изменений). Изменения в иерархии доступности состоят из вызовов:

Эти APIs в настоящее время поддерживаются на следующих платформах:

Примечание: Поддерживается только иерархия доступности для основного окна приложения. Содержание, отображаемое в дополнительных окнах, например на вторичных дисплеях, не отображается для экранных читателей.

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

  • Доступность мобильных приложений
  • Пример проекта с использованием доступности APIs

Свойства

Свойство Описание
rootNodesКорневые узлы иерархии.

Конструкторы

Конструктор Описание
AccessibilityHierarchyИнициализирует и возвращает пустое AccessibilityHierarchy.

Открытые методы

Метод Описание
AddNodeСоздает новый AccessibilityNode с указанной меткой и добавляет его в иерархию под указанным родителем.
ClearСбрасывает иерархию в пустое состояние, удаляя все узлы и фокус программы чтения с экрана.
ContainsNodeПроверяет, существует ли заданный узел в иерархии доступности.
GetLowestCommonAncestorПолучает наименьшего общего предка двух узлов в иерархии доступности.
InsertNodeСоздает новый AccessibilityNode с указанной меткой и вставляет его в указанный индекс в иерархии, под указанным родителем.
MoveNodeПеремещает узел в другое место в иерархии доступности, например, в другую родительскую группу или в другую позицию в списке дочерних групп родительской группы.
RefreshNodeFramesОбновляет AccessibilityNode.frame всех узлов в иерархии доступности.
RemoveNodeУдаление узла из иерархии доступности и удаление или повторное родительское назначение его дочерних узлов.
TryGetNodeПопытка получить AccessibilityNode с заданным ID в иерархии.
TryGetNodeAtПопытка получить AccessibilityNode в заданных координатах экрана.