Работа с доступностью
В то время как VoiceOver читает элементы в приложении в порядке, есть ли способ сдвинуть фокус между элементами? Я пробовал работать с "nextResponder", но он не работает.
Работа с доступностью
В то время как VoiceOver читает элементы в приложении в порядке, есть ли способ сдвинуть фокус между элементами? Я пробовал работать с "nextResponder", но он не работает.
Как и в iOS 6, вы можете установить фокус на определенный элемент с помощью UIAccessibilityLayoutChangedNotification
, передав элемент
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, firstBottom);
но если вы пытаетесь полностью изменить "порядок вкладок", я не знаю, как это сделать.
Это выстрел в темноте, но вы пытались изменить accessibilityLabel или accessibilityHint в соответствии с тем, когда вы хотите изменить порядок? Если вы можете обмануть VoiceOver, чтобы поверить, что текст изменился, я бы ожидал, что он изменит фокус на него соответствующим образом.
Сроки будут сложной частью, так как не отображается никаких обратных вызовов делегатов, когда VoiceOver сканирует ваше представление, поэтому вам, возможно, придется оценить время прохождения, прежде чем пытаться обновить подсказку/значение доступности.
Моя последняя мысль заключалась в том, чтобы пометить UIView, с которым вы хотите обратить внимание, с признаком доступности UIAccessibilityTraitUpdatesFrequently
. Это может быть самое близкое, что вы можете получить, не нажимая на скрытые библиотеки Apple.
Зайдите в этот пост, чтобы узнать, как обрабатывать специальный порядок элементов для передачи голоса. Я просто использовал этот подход в приложении, над которым я работаю.
Я попробовал UIAccessibilityPostNotification (UIAccessibilityScreenChangedNotification, elementName);, чтобы сфокусироваться на другом элементе. Поведение состояло в том, что фокус переместился на новый элемент, но Voice Over сначала объявит название страницы, а затем доступное значение метки нового элемента.