UIAutomation Вложенные элементы доступности исчезают из иерархии - PullRequest
12 голосов
/ 01 июня 2011

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

UIATarget.localTarget().frontMostApp().mainWindow().logElementTree();

Например, я получаю следующее:

1 Окно

2 My View

3 My Button

3 My Image

Если я затем включу доступ и установлю метку для своего родительского представления, я больше не смогу видеть свою кнопку и изображение где-либо в иерархии.

Я просто получаю:

1 Окно

2 My View

Почему исчезли мои взгляды?

1 Ответ

10 голосов
/ 01 июня 2011

Прямо из документов iOS Руководство по специальным возможностям

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...