2015-04-09 1 views
1

Есть ли способ заставить VoiceOver не читать заголовок контроллера заголовка «заголовок» после чтения заголовка/accessibilityLabel?Как заставить VoiceOver не читать слово заголовка для заголовка контроллера вида

В настоящее время поведение по умолчанию. Если установить заголовок «Моя группа» голос за кадром будет что-то вроде этого чтения:

«Моя панель» .... «Заголовок»

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

+4

Вы должны переоценить это требование. Почему вы пытаетесь создать меньший опыт? Признак заголовка - это не просто фрагмент информации, но также используется для быстрой навигации. Пользователь вашего приложения мог (используя ротор) войти в режим, в котором они переходят из заголовка в заголовок. –

+0

Вы должны послушать Дэвида, он умный парень. – ChrisCM

ответ

1

Комментарий Дэвида - правильный ответ. Вы должны использовать классы UIElement семантически. Другими словами, если текст «Моя панель» не является заголовком для представления, то что это семантически? Когда у вас будет ответ на этот вопрос, вы можете перепроектировать свое представление, чтобы использовать этот тип элемента, соответствующим стилю.

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

Тот, кто дал вам это требование, может не знать, о чем идет речь. Этот тип требований часто исходит от людей, которые не знакомы с доступным дизайном UI/UX.

0

Вы можете настроить этот headerview и реализовать метод accessibilityElementDidBecomeFocused в пользовательском зрения, когда эта точка зрения и не стал сосредоточенным и после UIAccessibilityLayoutChangedNotification в VoiceOver и сосредоточиться на себе, а затем вернуть черты UIAccessibilityTraitNone

- (void)accessibilityElementDidBecomeFocused { 
     UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, self); 
} 

- (UIAccessibilityTraits)accessibilityTraits { 
    return UIAccessibilityTraitNone; 
}