Я создаю a website for a reading service for the blind and visually impaired, и я использую JavaScript (с jQuery) для печати некоторых материалов на некоторые страницы после загрузки страницы.Считыватели экрана и Javascript
Будет ли считывающее устройство для чтения читать содержимое, которое будет напечатано на странице с помощью jquery после загрузки страницы?
От this page - «Как правило, [устройства для чтения с экрана] обращаются к DOM (Document Object Model), и они используют API-интерфейсы браузера (интерфейсы прикладного программирования) для получения необходимой им информации».
и мы знаем, что jQuery является библиотекой манипуляций DOM.
Таким образом, вопрос становится ... читатели экрана берут копию всего DOM, а затем анализируют его и читают? Или они читают DOM, тот, который работает jQuery?
Вот пример одной из страниц, на которых я использую JavaScript. Он использует функцию, которая определяет, какую программу мы играем по воздуху, а затем печатает название программы и ссылку для ее прослушивания.
<div id="now-playing-div"></div>
<script>
// invoke the audio-reader javascript library
$(document).ready(function() {
var callback = nowPlaying; // catalog, schedule, podcasts, archive or nowPlaying
var selector = '#now-playing-div';
makeAudioReaderPage(callback, selector);
});
</script>
Так как вы можете видеть, если читатель экрана не читает то, что JavaScript/JQuery печатает на # теперь-игры-DIV то он не будет читать ничего. Затем мы начали получать несколько писем путаных слушателей, которые задавались вопросом, что случилось с ссылкой «Сейчас играть».
Так сегодня утром я прибавил:
<div id='no-js'>Please enable JavaScript to receive this content.</div>
<script>
$(document).ready(function() {
$('#no-js').toggle();
});
</script>
Но если проблема не то, что JavaScript должен быть включен (a recent survey shows, что 99% пользователей чтения с экрана включили JavaScript), то проблема не решена и сделана еще хуже, потому что теперь пользователь экранного устройства подумает, что JavaScript не включен.
Что делать ??
Вам нужно будет проверить с помощью конкретного провайдера экранных прошивок. Невозможно ответить на этот вопрос - они ** ДОЛЖНЫ ** запрашивать живое пространство и поэтому обратите внимание на любые изменения. Но если конкретный запрос один раз и кэшируется, то его, вероятно, не следует использовать. «Статические» страницы больше не существуют, и отключение немедленно мертвой/бесполезной/устаревшей копии страницы чрезвычайно бессмысленно/глупо. –
Существует хороший способ изначально проверить это - установить [NVDA] (http://www.nvaccess.org/), бесплатный экранный ридер для Windows. Если вы находитесь на Mac, попробуйте VoiceOver. Вы также можете загрузить и запустить пробную версию [JAWS] (http://www.freedomscientific.com/Downloads/JAWS). Получите [обзор видео NVDA] (https://www.youtube.com/watch?v=Vx1vSd5uYS8) или [сочетания клавиш для всех] (https://www.paciellogroup.com/blog/2015/01/basic -screen-ридер-команд-для-доступности тестирования /). После этого исследуйте [живые регионы ARIA] (https://www.paciellogroup.com/blog/2014/03/screen-reader-support-aria-live-regions/). – aardrian