VoiceOver: принудительно выбирает элемент доступности после переключения экрана

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

Кажется, что нет свойства доступности или свойства, чтобы указать предпочтительный порядок, в котором элементам присваивается фокус VoiceOver. Есть ли способ заставить VoiceOver сосредоточиться?

Ответ 1

EDIT: Теперь доступна iOS 6, и, как упоминалось kevboh, вы можете передать аргумент при публикации UIAccessibilityLayoutChangedNotification или UIAccessibilityScreenChangedNotification:

UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, myAccessibilityElement);

myAccessibilityElement в большинстве случаев будет UIView с isAccessibilityElement, установленным в YES (по умолчанию для многих просмотров).

В качестве альтернативы вы можете добавить новый признак, добавленный в iOS6 UIAccessibilityTraitHeader к вашим элементам доступности accessibilityTraits, которые должны иметь тот же результат (хотя я еще не тестировал это).

ОРИГИНАЛ:. В iOS 6 появился новый API, который не может обсуждаться здесь, потому что он все еще находится под NDA, но его можно найти в видеоролике "Доступность для iOS" WWDC 2012 (сеанс 210).

Если это не удастся, обходным путем может быть вручную инициировать объявление, чтобы переопределить объявление метки доступности по умолчанию по умолчанию:

UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Your text");