Как изменить порядок чтения 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 только если вы хотите добавить / пропустить доступность для элементов в вашем представлении, но не для порядка доступности!!!

Другие вопросы по тегам