Как изменить порядок чтения VoiceOver UIAccessibilityElements?
Есть 2 ответа на SO по этому поводу, но ни один из них больше не работает.
У меня есть пользовательский UITableViewCell. На этой камере размещены различные ярлыки. VoiceOver для доступности читает вещи слева направо, сверху вниз.
Это проблема для макета моей камеры. Мне нужно, чтобы вещи читались в определенном порядке.
Тем не менее, я не могу изменить порядок, в котором VoiceOver читает вещи по умолчанию.
я пробовал self.accessibilityElements = @[self.view5, self.view1, self.view9]
например, но это не меняет порядок.
2 ответа
Вы можете установить метку доступности ячейки с помощью строки, которую вы создаете, объединяя все подвиды ячеек, например, если у вас есть lbl1, lbl2, lbl3, btn1:
NSString *cellAccessibilityString = [NSString stringWithFormat:@"%@,%@,%@,%@", _lbl3.text, _lbl2.text, _btn1.text, _lbl1.text];
[self setAccessibilityLabel:cellAccessibilityString];
Где «я» - ячейка.
Нет, голос за кадром не работает так. Вы не можете изменить порядок элементов доступности. Вы можете пропустить только некоторые элементы, которые находятся в стеке.
Допустим, у вас есть виды с 1 по 9 в вертикальном расположении
и вы делаете это:
self.accessibilityElements = @[self.view5, self.view1, self.view9]
Это не означает, что доступность будет сначала читать представление 5, а затем представление 1, а затем представление 9.
Вы должны дать заказ, как:
self.accessibilityElements = @[self.view1, self.view5, self.view9]
Так что голос зачитывает их только в порядке 1,5,9, и это пропускает ремианинг!!!!
Снова голос зачитывается в порядке слева направо и сверху вниз!!!
Думайте так: ИСПОЛЬЗУЙТЕ self.accessibilityElements
только если вы хотите добавить / пропустить доступность для элементов в вашем представлении, но не для порядка доступности!!!