Подтвердить что ты не робот

Доступность

Работа с доступностью

В то время как VoiceOver читает элементы в приложении в порядке, есть ли способ сдвинуть фокус между элементами? Я пробовал работать с "nextResponder", но он не работает.

4b9b3361

Ответ 1

Как и в iOS 6, вы можете установить фокус на определенный элемент с помощью UIAccessibilityLayoutChangedNotification, передав элемент

UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, firstBottom);

но если вы пытаетесь полностью изменить "порядок вкладок", я не знаю, как это сделать.

Ответ 2

Это выстрел в темноте, но вы пытались изменить accessibilityLabel или accessibilityHint в соответствии с тем, когда вы хотите изменить порядок? Если вы можете обмануть VoiceOver, чтобы поверить, что текст изменился, я бы ожидал, что он изменит фокус на него соответствующим образом.

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

Моя последняя мысль заключалась в том, чтобы пометить UIView, с которым вы хотите обратить внимание, с признаком доступности UIAccessibilityTraitUpdatesFrequently. Это может быть самое близкое, что вы можете получить, не нажимая на скрытые библиотеки Apple.

Ответ 3

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

Ответ 4

Я попробовал UIAccessibilityPostNotification (UIAccessibilityScreenChangedNotification, elementName);, чтобы сфокусироваться на другом элементе. Поведение состояло в том, что фокус переместился на новый элемент, но Voice Over сначала объявит название страницы, а затем доступное значение метки нового элемента.