Я веб-разработчик и хочу сделать разрабатываемые мной веб-сайты более доступными для тех, кто использует программы чтения с экрана. Какие ограничения есть у программ чтения с экрана, о которых я должен знать больше всего, и что я могу сделать, чтобы избежать этих ограничений.
Этот вопрос был вызван чтением другого вопроса о капчи, не основанные на изображениях. Там комментатор сказал, что поля формы горшочка с медом (поля формы, скрытые с помощью CSS, которые может заполнить только бот), являются плохой идеей, потому что программы чтения с экрана все равно их заберут.
Неужели программы чтения с экрана настолько примитивны, что могут читать текст, который даже не отображается на экране? В идеале, не могли бы вы создать программу чтения с экрана, которая ждала завершения загрузки страницы, применяла все css и даже запускала функции загрузки Javascript, прежде чем она выяснила, что на самом деле отображается, а затем прочитала это пользователю? Вы, вероятно, даже могли бы идентифицировать части страницы, которые являются меню или оглавлением, и дать какой-то простой способ, чтобы эти части были прочитаны исключительно или пропущены. Я думаю, что сообщество программистов могло бы придумать лучшее решение этой проблемы.






Are screen readers really so primitive that they would read text that isn't even displayed on the screen?
Вы должны помнить, что любой HTML-парсер не читает экран - он читает исходную разметку. На экране вы видите попытку браузера применить CSS к исходному коду. Это не имеет значения.
You could probably even identify parts of the page that are menus or table of contents, and give some sort of easy way for those parts to be read exclusively or skipped over.
Можно было бы, если бы на это был стандарт.
Мне не очень нравится ограничения программ чтения с экрана, однако я много читал о том, что они не идеальны. Лучшее, что я могу порекомендовать, - это привести свой источник в порядок - как бы вы его читали.
Есть набор свойств CSS, на который вы также должны обратить внимание для программ чтения с экрана.
Взгляните на ARIA, это стандарт для разработки доступных приложений с расширенными веб-клиентами.
Сколько форм имеют просто * или полужирный шрифт, чтобы указать пользователю сайта, что поле необходимо для правильной отправки? Что делает программа чтения с экрана? Говорить "звезда"?
Ниже приведен пример кода, который помогает сформулировать устно, но не визуально.
(примечание - в приведенном ниже примере слово «требуется» произносится, но не отображается на экране)
В шаблоне:
<label for = "Requestor" accesskey = "9"><span class = "required"> Requestor * </span><span class = "hidden">required.</span></label>
В CSS:
#hidden {
position:absolute;
left:0px;
top:-500px;
width:1px;
height:1px;
overflow:hidden;
}
или же
.hidden {
position:absolute;
left:0px;
top:-500px;
width:1px;
height:1px;
overflow:hidden;
}
За «видимым» на каждой странице X / HTML может быть целое параллельное представление.
Рекомендуемое прослушивание: Гансельминуты
Это интервью со слепым программистом.
@robertmyers
CSS содержит тип аудио-медиа специально для управления «визуализацией» вещей, когда программы чтения с экрана выполняют свою работу. Итак, для вас, например, вы должны установить его как видимый только для звукового типа мультимедиа.
@ Росс
Я прекрасно понимаю, что программа чтения с экрана на самом деле не читает экран, но вы могли бы подумать, что для хорошей работы ей нужно было бы построить модель того, что видел бы человек со зрением, в противном случае, похоже, что она действительно плохая работа по донесению до пользователя того, что на самом деле находится на странице. Кроме того, на самом деле не работает размещение вещей в том порядке, в котором вы их читали, поскольку зрячий человек быстро просматривает страницу и читает раздел, который хочет прочитать. Вы помещаете содержимое на первое место, чтобы пользователь каждый раз его слушал, или вы помещаете их в конец, чтобы они могли первыми добраться до содержимого? Кроме того, упорядочивание контента означало бы использование хитрого CSS, чтобы расположить вещи там, где вы хотите, для зрячих пользователей.
Мне кажется, что большинство веб-страниц содержат очень похожую конструкцию, и что во многих случаях должна быть возможность выбрать, где находятся повторяющиеся заголовки и боковые столбцы. При просмотре множества последующих страниц на том же сайте с одинаковым форматированием должно быть легко понять, какие разделы являются навигационными, а какие - контентом. При этом программа чтения с экрана могла полностью пропустить разделы навигации и перейти прямо к содержимому, как это сделали бы большинство зрячих пользователей.
Я понимаю, что есть ограничения, и что делать такие вещи будет непросто. Однако я чувствую, что что касается программ чтения с экрана, мы сделали только самый минимум и оставили все как есть.
Вот список альтернатив CAPTCHA, составленный Карлом Гровсом: Безопасность без капчи
@Kibbee,
То, что вы называете «примитивом», на самом деле является функцией программ чтения с экрана, которая может использоваться и используется для повышения доступности сайтов. Например, если у вас есть интерфейс с вкладками, реализованный с неупорядоченным списком и элементами списка, то зрячий пользователь обычно видит выбранную вкладку, выделенную другим цветом фона (или другим визуальным оформлением). Слепые пользователи этого не видят. Таким образом, добавление дополнительного текста на страницу и скрытие его за пределами экрана - это метод, используемый для сообщения слепому пользователю о том, какая вкладка активна.
На жаргоне специальных возможностей эта информация называется ролью, именем, значением и состоянием.
Есть много других сценариев, в которых этот метод можно использовать для добавления информации, полезной для слепого пользователя.
Совсем недавно был добавлен WAI-ARIA, чтобы разрешить эту информацию о состоянии, роли, имени и значении, поэтому теперь вы можете реализовать ограниченное количество виджетов (например, вкладок) с использованием атрибутов HTML. Однако более общий метод «вне экрана» все еще полезен.