Как включить определенный UITextview в ротор доступности заголовка?

У меня есть страница сведений с довольно стандартным макетом, прокрутка, на которой размещено одно вертикальное представление стека, которое, в свою очередь, содержит UITextViews или вертикальные текстовые поля, каждое из которых содержит заголовок и текстовое поле "контент". Это снимок экрана из Interface Builder:

Я хочу, чтобы все заголовки были доступны с помощью встроенного ротора доступности "Заголовки". Однако я не могу заставить его работать. Закадровый голос правильно читает все надписи в правильном порядке. Во всех текстовых представлениях выбрана галочка "элемент доступности", а в некоторых - галочка "заголовок". Все они имеют галочку "Взаимодействие с пользователем включено" в качестве предварительно выбранного значения.

Однако, когда я проверяю их с помощью Инспектора доступности, все они перечисляют только "статический текст" в качестве своих характеристик, который не был выбран в IB. Я также пробовал установить или добавить.header черта для них в viewDidLoad() метод безуспешно:

myTextView1.accessibilityTraits.insert(.header)
myTextView2.accessibilityTraits = [.header]

Я пробовал это со статическими текстовыми представлениями, которые получают свой текст через IB, а также с текстовыми представлениями, которые заполняются текстом из базы данных, безуспешно. Единственное место, где работает навигация по заголовкам, - это статическое табличное представление, в котором закадровый голос правильно определяет tableviewHeaders как заголовки без какой-либо помощи. Линейная навигация с использованием "линейного" ротора из коробки работает как положено.

Я что-то упускаю или это ошибка?

Этот вопрос, похоже, решает аналогичную проблему. Это решение для людей заключалось в том, чтобы запустить его на реальном устройстве. Хотя это правильно обрабатывает сбои озвучивания других симуляторов, это не решает мою проблему. Другие похожие вопросы ( например, здесь) часто связаны с проблемами внутри ячеек табличного представления, которые вызывают проблемы из-за иерархии доступности. Я считаю, что здесь дело обстоит не так, поскольку все просмотры обнаруживаются и читаются правильно.

0 ответов

Вы можете настроить ротор заголовков, чтобы он включал определенные части вашего textView, инициализируя настраиваемый ротор с использованием типа системы UIAccessibilityCustomRotor.SystemRotorType.heading. Вы также можете добавить атрибуты заголовка к вашей атрибутивной строке. Для получения дополнительной информации см. https://developer.apple.com/videos/play/wwdc2020/10116/.

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