Можно ли заставить VoiceOver иногда пропускать содержимое контейнера?

В одном из наших родных приложений для iPad есть экран, разделенный на несколько разделов. По большей части, я думаю, что с VoiceOver он работает хорошо. Но один из этих разделов - это UIWebView, который отображает веб-контент, связанный с приложением, но предоставленный другим поставщиком. По сути, для нас это черный ящик. Так что я не могу контролировать, что это за контент (или насколько он доступен), он невероятно плотный, с небольшими фрагментами контента, и он находится в левой части экрана, поэтому он появляется раньше многих другого содержания в порядке чтения (на английском языке).

Как следствие, если я попрошу VoiceOver прочитать содержимое экрана, он быстро увязнет в этом веб-содержимом, и я не могу представить, чтобы многие люди придерживали его до остальной части экрана. Но заставлять их сдаваться и чистить экран, чтобы обнаружить что-то, кажется неприятным.

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

Конечно, я зрячий, так что в некоторой степени я также действую на основании предположений. Будет ли текущий пользовательский интерфейс так же сбивать с толку пользователей, полагающихся на VoiceOver, как я думаю? Будет ли то, что я называю своим решением, еще хуже?


person Sixten Otto    schedule 13.12.2013    source источник


Ответы (2)


  • aria-hidden="true" заставит программу чтения с экрана игнорировать весь контент (если эта программа чтения с экрана достаточно современная, чтобы учитывать WAI-ARIA. VoiceOver поддерживает).
    Думаю, вы пытаетесь достичь не этого, а большая часть время, когда это нежелательно: почему пользователи программ чтения с экрана не могут читать тот же контент, что и другие, кто вы такие, чтобы решать за них, что они могут / не могут читать, а другие люди не могут / не могут? За исключением известных случаев полной недоступности, таких как ловушка клавиатуры, и эта ловушка клавиатуры пока не может быть исправлена

  • пропустить ссылку перед этим содержимым позволит пользователям SR переходить к содержимому, которое находится после этого раздела.

  • если уместно, известные роли ориентира ARIA позволят выбрать, какую часть страницы, которую они хотят прочитать (этот раздел должен быть всей боковой панелью - дополнительной ролью - или основной. Вероятно, это не так)

  • SR может перемещаться по заголовкам (а также ссылкам и последовательному чтению, а теперь и знаковым ролям).
    Если этот и следующий разделы начинаются с хороших заголовков, их можно быстро пропустить.
    Соответствующие методы WCAG 2.0:

  • Если нет элемента заголовка и его нельзя изменить, но есть текст, который мог бы быть соответствующим заголовком, за исключением абзаца, списка элементов или чего-то еще, его можно было бы пометить как эквивалент с ARIA, используя role="heading" и aria-level="N" ( см. role = "heading")

  • если у вас есть веская причина изменить естественный порядок чтения столбцов (я думаю, что это именно так), вы можете изменить макет с помощью float и гибкий макет окна (IE10 +) (последний на протяжении многих лет имел 3 разных синтаксиса, плагины, такие как autoprefixer, приветствуются, или SASS / Compass ...). Ваш левый столбец будет тогда отображаться последним при переходе на табуляцию, но это потребует изменения макета, возможно, большого количества шаблонов.

aria-describedBy, вероятно, может быть чем-то полезен, но у меня недостаточно знаний о его использовании, может быть, кто-то еще узнает о нем больше.

person FelipeAls    schedule 14.12.2013
comment
Я уверен, что есть много вещей, которые можно сделать, чтобы сделать содержимое веб-представления более доступным. К сожалению, как я уже сказал, у меня нет никакого контроля над этим контентом. Он поступает откуда-то еще и отображается нашим приложением. - person Sixten Otto; 14.12.2013

Из комментариев Sixteen сказал:

К сожалению, как я уже сказал, у меня нет никакого контроля над этим контентом. Он поступает откуда-то еще и отображается нашим приложением.

Я согласен с Фелипе. Я не знаю, как выглядит ваш код, но скажите это на базовом HTML. Вероятно, вы либо вставляете код с iframe, либо вставляете содержимое в свой код (например, PHP include()).

Независимо от того, какой метод вы используете, вы, вероятно, заключите его в <div>. Так ты мог бы сделать

<div aria-hidden="true">
 //iframe/inject here
</div>

чтобы AT не видел его. Взяв эту базовую модель, мы могли бы вытащить aria-hidden="true" и заменить на role="complementary". Вы можете поместить текст в div, убрать его с экрана и сказать красивую строчку, то же самое для aria-described by, но вы можете добавить к нему tabindex. Бывший:

<div aria-describedby="ex" tabindex="-1">
 <p id="ex" class="offscreen">Below is useless jargon by blah blah blah. It may 
   be more beneficial to <a href="#something">jump to the main section</a> instead.</p>
 //iframe/inject here
</div>
person Ryan B    schedule 18.12.2013