Всемирная паутина представляет собой замечательный инструмент распростра_ нения информации, и JavaScript_сценарии могут сделать эту информацию мак_ симально доступной. Однако JavaScript_программисты должны проявлять осто_ рожность: слишком просто написать такой JavaScript_код, который сделает не_ возможным восприятие информации для пользователей с ограниченными воз_ можностями.
Пользователи с ослабленным зрением применяют такие «вспомогательные тех_ нологии», как программы чтения с экрана, когда слова, выводимые на экран, преобразуются в речевые аналоги. Некоторые программы чтения с экрана спо_ собны распознавать JavaScript_код, другие лучше работают, когда режим испол_ нения JavaScript_сценариев отключен. Если вы разрабатываете сайт, который требует исполнения JavaScript_кода на стороне клиента для отображения ин_ формации, вы ограничиваете доступность своего сайта для пользователей подоб_ ных программ чтения с экрана. (Кроме того, вы ограничиваете доступность сво_ его сайта для всех тех, кто просматривает Интернет с помощью мобильных уст_ ройств, таких как сотовые телефоны, не поддерживающие JavaScript, а также для тех, кто преднамеренно отключил режим исполнения JavaScript_сценариев в броузере.) Главная цель JavaScript заключается в улучшении представления информации, а не собственно в ее представлении. Основное правило JavaScript_ программирования заключается в том, что веб_страница, в которую встроен Ja_ vaScript_код, должна оставаться работоспособной (хотя бы ограниченно), даже когда интерпретатор JavaScript отключен.
Другое важное замечание относительно доступности касается пользователей, которые могут работать с клавиатурой, но не могут (или не хотят) применять указывающие устройства, такие как мышь. Если программный код ориентиро_ ван на события, возникающие от действий мышью, вы ограничиваете доступ_ ность страницы для тех, кто не пользуется мышью. Веб_броузеры позволяют за_ действовать клавиатуру для перемещения и активации веб_страниц, то же самое должен позволять делать JavaScript_код. Одновременно с этим не следует писать программный код, который ориентирован исключительно на ввод с клавиатуры, иначе страница окажется недоступной для тех, у кого нет клавиатуры, напри_ мер для пользователей наладонных компьютеров или сотовых телефонов. Как демонстрируется в главе 17, наряду с поддержкой событий, зависящих от типа
280 Глава 13. JavaScript в веб*броузерах
устройства, таких как onmouseover или onmousedown, JavaScript обладает поддерж_ кой событий, от типа устройства не зависящих, таких как onfocus и onchange. Для достижения максимальной доступности следует отдавать предпочтение событи_ ям, не зависящим от типа устройства.
Создание максимально доступных веб_страниц – нетривиальная задача, не имею_ щая четких решений. Во время написания этих строк не прекращаются споры о том, как с помощью JavaScript сделать веб_страницы не менее, а более доступ_ ными. Полное обсуждение вопросов доступности далеко выходит за рамки темы этой книги. Однако поиск по Интернету даст вам массу информации по этой теме, причем большая ее часть находится в форме рекомендаций из авторитетных ис_ точников. Не следует забывать, что как приемы JavaScript_программирования на стороне клиента, так и теория доступности продолжают развиваться, и соответст_ вующие рекомендации относительно доступности не всегда за ними успевают.