Можно ли определить, включен ли VoiceOver на веб-странице на iPhone? - PullRequest
7 голосов
/ 20 января 2011

В настоящее время мы тестируем развертывание «скользких» карт (т. Е. Тех, которые перемещаются пальцем на устройстве с сенсорным экраном) в нашем мобильном веб-приложении с использованием библиотеки JavaScript touchmaplite. Эта карта встроена в iframe на нашей веб-странице.

Когда мы тестировали эту настройку на iPhone с VoiceOver, мы обнаружили, что VoiceOver «застрял» на карте и не будет читать мимо нее (или даже прокручивать ее). Это большой камень преткновения для нас, мы не хотим возвращаться назад с поддержкой доступности на нашем сайте.

Можно ли пометить элемент как «игнорируемый» VoiceOver или определить, включен ли VoiceOver каким-либо другим способом (например, JS), а затем скрыть / удалить iframe?

Ответы [ 2 ]

2 голосов
/ 24 января 2011

Я знаю, что в Windows было несколько дискуссий о том, как определить, используется ли программа для чтения с экрана.Был упомянут один возможный (но ненадежный) метод, который включал использование ActionScript во Flash, чтобы проверить, используется ли уровень активной доступности WMicrosoft.(http://www.paciellogroup.com/blog/?p=61)

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

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

Скрытый текст может быть достигнут с помощью CSS для позиционирования текста с отрицательным полем, например

.hiddenText {
position: absolute;
margin-left: -3000px;
}

Использование текста таким способом означает, что он не виден зрячим пользователям (если они не отключают CSS), ноЯ все еще зачитываю программы чтения с экрана.

Боюсь, что ни одно из решений не является тем, что вы действительно ищете, но может дать вам некоторые идеи.

0 голосов
/ 07 апреля 2019

aria-hidden - это то, что вы ищете.

<div>some stuff</div>
<div aria-hidden="true">stuff you want to hide from the screen reader</div>
<div>more stuff</div>
...