Можно ли заблокировать программу чтения с экрана внутри элемента DIV?

Я написал сайт, который использует jQuery для отображения модального всплывающего окна. По сути, он покрывает всю видимую область экрана оверлеем, а затем показывает DIV, который содержит фактическое всплывающее окно поверх оверлея. Одно из требований к этому проекту связано с доступностью.

Мы смогли получить фокус внутри модального окна, когда оно всплывает, чтобы программа чтения с экрана прекратила свои действия и начала читать внутри модального окна. Однако наша текущая проблема заключается в том, что когда программа чтения с экрана JAWS заканчивает чтение текста в модальном окне, она продолжает читать дальше и читает текст за пределами окна (под оверлеем).

Есть ли способ «заблокировать» средство чтения с экрана внутри определенного элемента, чтобы оно не могло читать что-либо за его пределами?


person Scott    schedule 27.03.2012    source источник
comment
Вы знаете, что я делаю, когда вижу ваш сайт с этими абсурдными всплывающими окнами? Я закрываю окно. Если я действительно хочу прочитать содержимое, я просто щелкну правой кнопкой мыши по странице и удалю элемент из webkit. Методы, подобные тому, что вы делаете, только ухудшают работу сети и сильно раздражают. С какими бы проблемами вы ни столкнулись, вам лучше заняться чем-то другим, что не разозлит ваших читателей.   -  person Incognito    schedule 28.03.2012
comment
Я ценю ваши мысли, однако модальные всплывающие окна сегодня не только являются обычным явлением, решение не зависит от меня. Я работаю в компании из списка Fortune 100, и это их решение, а не мое. Не все из нас имеют полную власть над тем, что мы создаем, имейте это в виду, прежде чем судить о том, что я делаю.   -  person Scott    schedule 28.03.2012
comment
Я не осуждаю вас, я говорю вам о проблеме с тем, что вы делаете. Если бы я вас осуждал, я бы сказал, что вы ленивы и боитесь рассказывать им, как улучшить удобство использования, а не рассказывать о реальных проблемах с тем, что вы делаете, и советовать вам выбрать альтернативу.   -  person Incognito    schedule 28.03.2012
comment
Я почти уверен, что вы сделали предположение, что я говорю о модальном окне, которое на самом деле прерывает работу пользователя и не позволяет ему продолжать чтение страницы, пока он не сделает то, что мы от него хотим, в модальном окне. Не тратя время на написание многословных объяснений, это неправильно. Пользователь должен явно открыть его самостоятельно, нажав кнопку (это модальное окно «Переслать другу»), и может закрыть его в любое время, нажав кнопку закрытия или нажав ESC, но когда они находятся в нем, я не хочу, чтобы программа чтения с экрана продолжает читать за пределами модального окна.   -  person Scott    schedule 28.03.2012
comment
Кроме того, под программой чтения с экрана я имею в виду программы, которые читают содержимое экрана вслух для слепых посетителей веб-сайта.   -  person Scott    schedule 28.03.2012


Ответы (1)


Если вы добавите атрибут:

aria-disabled="true"

к остальной части разметки сайта после того, как вы установили фокус в модальном окне, это должно помешать программам чтения с экрана прочитать этот контент. Это проще всего сделать, если все остальное содержимое находится в DIV, а модель добавлена ​​в DOM как одноуровневая с этим DIV (поэтому вам нужно будет добавить этот атрибут только к одному элементу).

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

person Matthew Darnell    schedule 27.03.2012
comment
Спасибо, Мэтт, скоро попробую. Мы уже заперли пользователя внутри модального окна с помощью табуляции/нажатий клавиш, но если мы просто позволим программе чтения с экрана читать, она продолжит выходить за пределы модального окна. - person Scott; 28.03.2012