Взаимодействие со средствами чтения с экрана

Одним из важнейших аспектов практичности сайта является его доступность для людей с ограниченными возможностями. Огромное количество пользователей имеют ослабленное зрение, немало и слепых, и. как правило, мир Интернета закрыт для них, что очень плохо. Большинство развитых государств делают очень многое для того, чтобы жизнь людей с ограниченными возможностями была максимально полноценной. В том числе для них должен быть доступен Интернет как источник оперативной и разносторонней информации. В 1998 году в США была принята знаменитая поправка 508 к закону о реабилитации, которая требует, чтобы вся информация, связанная с законодательством и выкладываемая на сайтах, принадлежащих государственным организациям, соответствовала принципам доступности (подробнее см. http://www.section508.gov). Имеются аналогичные законы и в ряде европейских стран. Консорциум W3C, являющийся главным законодателем Сети, также выступил с инициативой, направленной на развитие технологий, обеспечивающих доступность информации в Интернете для людей с ограниченными возможностями.

Одним из недостатков технологии Flash еще совсем недавно было то, что сайты, создаваемые с ее использованием, не соответствовали принципам доступности.


Так, в них невозможно было изменить размер шрифта, которым отображается текст, или обойти управляющие элементы посредством клавиши Tab. Главное же, что содержимое Flash-сайта было недоступно для средств чтения с экрана. Будучи подвергнутой жесткой критике, компания Macromedia сделало очень многое, чтобы повысить степень соответствия Flash принципам доступности. Теперь вы легко можете создать элемент интерфейса, который позволит пользователю самостоятельно задавать размер шрифта. Во Flash MX появилась полноценная поддержка табуляции. Теперь Flash-проекты можно сделать доступными и для программ чтения с экрана.

Программы чтения с экрана (Screen Readers) — основной инструмент, обеспечивающий доступность Интернета (и компьютерных технологий в принципе) для слепых. Роль программы чтения с экрана заключается в том, что она слева направо при помощи голосового генератора зачитывает весь текст, отображаемый в данный момент. Кроме того, она сообщает, какие управляющие элементы (кнопки, ссылки, меню и т. д.) имеются на странице. Комментирует программа чтения с экрана и любое действие пользователя.

На данный момент существует две программы чтения с экрана, определенно имеющие поддержку Flash.


Это Window-Eyes от компании GW Micro и JAWS, разрабатываемая как некоммерческий проект. Можно рассчитывать, что остальные производители программ чтения с экрана в ближайшем будущем дополнят свои продукты возможностью взаимодействия с Flash. Тем более с учетом того, что Flash-плейер поддерживает технологию MSAA, никаких препятствий для этого нет.

МSAA (Мicrosoft Active Accessibility) — это технология, разработанная Мicrosoft для того, чтобы унифицировать интерфейсы, посредством которых программы чтения с экрана могли бы взаимодействовать с приложениями и операционной системой. Наличие MSAA позволяет создавать универсальные системы чтения с экрана, способные взаимодействовать с любым приложением, удовлетворяющим соответствующему стандарту. MSAA специфична для Windows. Поэтому с учетом того, что Window-Eyes и JAWS основаны на MSAA, они работают только в среде Windows. Flash-плейер поддерживает MSAA начиная с шестой версии и лишь в том случае, если он выступает как ActiveX-компонент Internet Explorer 5.0 и выше. Сделать доступным для средств чтения с экрана проектор или фильм, проигрываемый плейером в форме плагина для Netscape, невозможно.

Объективно говоря, Flash-сайт не так уж и просто оптимизировать под программы чтения с экрана.


Главное его достоинство — динамичность — просто губительно сказывается на их работе. Алгоритм любой программы чтения с экрана основывается на предположении, что содержимое экрана статично и любые изменения в нем напрямую связаны с действиями пользователя. Но статичный Flash-сайт — это нонсенс (непонятно, зачем для разработки такого сайта вообще использовать Flash, если создать его при помощи HTML гораздо проще). Поэтому оптимизация Flash-сайта под стандарты доступности — довольно сложная задача, требующая использования особых приемов и тщательного тестирования. Главный ход, которому стоит следовать, заключается в том, что текст и основные управляющие элементы должны быть строго статичными.

По умолчанию любой SWF-фильм доступен для просмотра программой чтения с экрана. Она зачитает, перемещаясь слева направо и сверху вниз, текст во всех статичных и динамических текстовых полях, сообщит о наличии кнопок и их расположении. Если рядом с кнопкой или полем ввода располагается статичный текст, то программа чтения с экрана воспримет его как имя соответствующего элемента. В общем, немало информации о фильме может быть извлечено, даже если он не был оптимизирован исходя из требований доступности. Но чтобы имелась возможность полноценной работы с сайтом для слепых людей, без оптимизации не обойтись. Заключается она в следующих действиях:

• необходимо явно прописать порядок Tab-обхода элементов, так как для навигации по сайту будет использоваться исключительно клавиатура. Для этого служат свойства tabEnabled и tabIndex;

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

if (Accessibility.isActive{}) {
stopAllSounds();
}

Метод isActive() объекта Accessibility возвращает true, если плейер обнаруживает работающую программу чтения с экрана. Узнать, имеется ли программа чтения с экрана в системе, в принципе можно, набрав такую строку:

trace (System.capabilities.hasAccessibilitу); // Выводит: false

• по умолчанию программа чтения с экрана будет обходить элементы интерфейса слева направо и сверху вниз. Такой порядок описания далеко не всегда соответствует реальной структуре интерфейса сайта. Чтобы явно указать последовательность, в которой элементы должны быть описаны, каждому из них должен быть присвоен индекс, указывающий, каким по счету элемент нужно рассмотреть. Чтобы задать этот индекс, нужно выделить элемент (это может быть текстовое поле типа Dynamic или Input, кнопка или клип), а затем нажать кнопку с изображением человечка, расположенную около правой границы Инспектора Свойств. Появится панель Accessibility, одним из полей которой является Tab Index. В это поле и нужно ввести номер элемента в последовательности описания;

• довольно значительный объем информации об элементе интерфейса может быть получен программой чтения с экрана из контекста. Но данная информация будет носить самый общий характер. Чтобы пользователь мог получить более конкретное описание элемента, необходимые сведения вы должны указать явно. Для этого служат поля Name (имя элемента) и Description (описание элемента) панели Accessibility;

• чтобы упростить навигацию по сайту при помощи клавиатуры, наиболее важным элементам
интерфейса стоит поставить и соответствие сочетания клавиш. Задействовав такое сочетание, пользователь сможет сразу перейти к нужному элементу. Задать адресующее элемент сочетание клавиш можно в поле Shortcut панели Accessibility;

• отдельные элементы стоит делать недоступными для программы чтения с экрана (например, меню с настройками стиля текста вряд ли понадобится слепому). Для этого нужно убрать флажок Make Object Accessible на панели Accessibility. Чтобы программа чтения с экрана воспринимала клип как единое целое и не «рассказывала» о его содержимом, нужно блокировать настройку Make Child Objects Accessible;

• по умолчанию программы чтения с экрана воспринимают статичное текстовое поле, расположенное наиболее близко к элементу, как подпись к нему. Это не всегда приемлемо. Вопервых, поле может принадлежать совсем не тому элементу, к которому его отнесет программа. Во-вторых, имя элемента может быть уже задано явно при помощи поля Name панели Accessibility. Зачастую стоит отключать режим автоматического именования элементов. Для этого нужно убрать флажок из поля Auto Label панели Accessibility, соответствующей главному фильму.

Панель Accessibility доступна только в случае текстовых полей типа Input и Dynamic, а также кнопок и клипов. Присвоить имя и описание статичному тексту или экземпляру символа типа Graph невозможно. Впрочем, статичный текст считывается программами чтения с экрана по умолчанию.

Зачастую во Flash клипы, кнопки и текстовые поля создаются динамически. Естественно, что использовать по отношению к таким элементам панель Accessibility невозможно. Однако задать те же настройки, что и при помощи панели Accessibility, можно и посредством ActionScript. Для этого служит появившееся во Flash 7 свойство _accProps. Оно хранит объект, свойства которого соответствуют элементам панели Accessibility, Всего таких свойств пять:

• silent —- определяет, будет элемент доступен для программы чтения с экрана (false) или будет ею игнорироваться (true);

• forceSirnple — задает, будет клип восприниматься как единое целое (false) или вложенные в него элементы также будут описываться (true);

• name — строка с именем элемента;

• description — строка с описанием элемента;

• shortcut — строка с клавиатурным сочетанием, при нажатии которого элемент помещается в фокус.

Чтобы новые настройки вступили в силу, нужно задействовать метод updateProperties() объекта Accessibility. Данный метод был введен в ActionScript, чтобы настройки доступности для нескольких объектов можно было инициализировать одновременно. Если бы обновление настроек происходило многократно, то в работе программы чтения с экрана почти наверняка случился бы сбой.

Например, чтобы сделать фильм недоступным для разбора программами чтения с экрана, следует набрать

_accProps={silent:true, forcesimple:false);
Accessibility.updateProperties();

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

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Action Script на эту тему:
Взаимодействие с принтером
Взаимодействие со средой разработки
Объект CustomActions
Определение размеров фильма и величины окна плейера
Получение информации об использующемся аппаратном и программном обеспечении