Конфигурирование JAWS для поддержки Яндекс.Браузера

Дата публикации:07.12.2014
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

Яндекс.Браузер — это обозреватель Интернет-страниц, разрабатываемый компанией «Яндекс» на базе своих технологий и открытого проекта Chromium. По состоянию на осень 2014 года он считается пятым по популярности в Рунете и регулярно используется 24 миллионами людей. Главной особенностью этого браузера является его тесная интеграция с сервисами самого Яндекса: почтой, переводчиком, Яндекс.Диском и поиском, дополняющая всю остальную традиционную функциональность современных продуктов этой категории. Кроме того, Яндекс.Браузер имеет ряд уникальных особенностей, учитывающих специфику русскоговорящих пользователей, например, исправление введённого текста при неправильной раскладке или поиск по странице с учётом морфологии русского языка, а не только простым совпадением.

К сожалению, у незрячих пользователей, работающих с помощью программ экранного доступа, выбор браузера всегда был довольно ограничен, так как далеко не все обозреватели в принципе позволяли обеспечить их невизуальную доступность и уж совсем немногие из них поддерживались со стороны разработчиков самих программ экранного доступа. До недавнего времени такие же проблемы были у незрячих пользователей и с Яндекс.Браузером, но в отличии от многих других его разработчики сочли эту ситуацию недопустимой и активно взялись за её исправление, добившись к концу 2014 года ощутимых результатов.

Состояние дел

Основные проблемы доступности любого обозревателя, в том числе и Яндекс.Браузера, могут быть разделены на две группы:

  1. Навигация по меню программы
  2. Просмотр гипертекстового содержимого страниц

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

Обеспечение же доступности гипертекстового содержимого более сложная задача, так как она не имеет универсального решения, потому что предполагает во-первых, явное встречное движение со стороны программы экранного доступа, а во-вторых, в определённой степени специфична для каждого конкретного экранного чтеца.

Как уже отмечалось, Яндекс.Браузер построен на базе технологий «Яндекса» и открытого проекта Chromium, также как и браузер Google Chrome, поддержка которого уже реализована в ряде программ экранного доступа для OS Windows, в том числе и в наиболее популярных JAWS и NVDA. В результате отдельные экранные чтецы изначально корректно обрабатывают область показа web-страницы. Так, программа NVDA по умолчанию распознаёт окно Яндекс.Браузера как унаследованное от Chrome и без проблем активирует в нём свой режим виртуального буфера. А вот с программой JAWS всё более сложно, и долгое время по умолчанию этот screenreader не активировал свой режим виртуального курсора в окне Яндекс.Браузера.

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

Таким образом, к версии 14.12 в Яндекс.Браузере были решены обе основные проблемы невизуальной доступности обозревателя, и начиная с этого релиза он получил доступность для программ экранного доступа на базовом уровне. Однако если пользователи, например, NVDA смогут просто запустить браузер и сразу начать работать, то вот пользователям JAWS до русской версии 15.0.12085 нужно будет совершить ещё ряд действий по дополнительному конфигурированию программы экранного доступа, чтобы обеспечить активацию режима виртуального курсора на гипертекстовом содержимом в окне Яндекс.Браузера.

Конфигурирование JAWS

На момент написания данной статьи JAWS для поддержки Яндекс.Браузера требует внесения нескольких дополнений в свои конфигурационные файлы, которые обеспечат, во-первых, обработку DOM в окне обозревателя посредством библиотек для Firefox, а во-вторых, загрузку соответствующих скриптов JAWS.

Исключение составляет русская локализация JAWS 15.0.12085, в которую поддержка Яндекс.Браузера уже встроена, но пользователи более ранних версий или других локализаций, как минимум, до 16.0.1516 включительно в любом случае должны будут выполнять конфигурирование вручную, так как к моменту этих релизов встроенной поддержки Яндекс.Браузера в них включено не было.

Ниже будут описаны те правки, которые необходимо внести в конфигурационные файлы программы экранного доступа JAWS, чтобы обеспечить активацию виртуального курсора в окне Яндекс.Браузера.

Опытные пользователи могут проделать все операции вручную, повторив описанные шаги, а сомневающиеся в своих силах или просто ленивые могут воспользоваться утилитой для автоматического конфигурирования, которая позволит сделать то же самое за несколько нажатий. Ссылки на загрузку утилиты, а также Яндекс.Браузера, приводятся в конце статьи.

Обращаем ваше внимание, что все операции пользователь проделывает на свой страх и риск: как в случае ручного, так и в случае автоматизированного конфигурирования. Все рекомендации и инструменты автоматизации разрабатывались с целью быть максимально полезными и были неоднократно протестированы, но приводятся без каких-либо гарантий (явных или подразумеваемых).

Утилита автоматического конфигурирования имеет открытый исходный код на условиях GPL V3, поэтому может быть подвергнута инспекции и самостоятельной сборке с целью исключения рисков НДВ, что может быть актуально ввиду того, что она требует прав администратора для внесения правок в системные файлы.

Итак, для обеспечения работоспособности виртуального курсора JAWS в Яндекс.Браузере следует проделать нижеследующие действия:

1. В общие конфигурационные файлы

(для 32-разрядной версии JAWS)

  • %PROGRAMFILES%\Freedom Scientific\Shared\FsDomSrv\6.0\FsDomSrv.ini
  • %PROGRAMFILES%\Freedom Scientific\Shared\FsDomSrv\6.0\FsDomSrvrus.ini

(для 64-разрядной версии JAWS)

  • %PROGRAMFILES%\Freedom Scientific\Shared\FsDomSrv\6.0\FsDomSrv.ini
  • %PROGRAMFILES%\Freedom Scientific\Shared\FsDomSrv\6.0\FsDomSrvrus.ini
  • %PROGRAMFILES(x86)%\Freedom Scientific\Shared\FsDomSrv\6.0\FsDomSrv.ini
  • %PROGRAMFILES(x86)%\Freedom Scientific\Shared\FsDomSrv\6.0\FsDomSrvrus.ini

необходимо добавить две секции со следующими ключами и их значениями:

; Definition for Yandex.Browser support
[Yandex.Browser]
DLLName=FSDomNodeFirefox
MappingFlags=0x200001
ModuleNameMatch=browser.dll
WindowClass=Chrome_RenderWidgetHostHWND
WindowName=
WindowName2=
MSAARole=
QueryInterface=
QueryViaServiceProvider=
StartString=
EndString=
TagName=
Param=
InteractionModeFlags=0x3

; Definition for Yandex.Browser edit fields support
[Yandex.Browser edits]
DLLName=FSDomNodeIAText
MappingFlags=0x200005
ModuleNameMatch=browser.dll
WindowClass=Chrome_RenderWidgetHostHWND
WindowAncestorClass=
WindowName=
WindowName2=
MSAARole=0x2a
QueryInterface=
QueryViaServiceProvider=
StartString=
EndString=
TagName=
Param=
InteractionModeFlags=0x2

Обращаем внимание, что наличие файла «FsDomSrvrus.ini» характерно для русской локализации JAWS. В английской версии такой файл отсутствует, а в других региональных сборках может присутствовать его аналог для соответствующего языка.

2. В конфигурационный файл, располагающийся в директории общих настроек определённой версии и определённой локализации JAWS, например, для русского JAWS 15:

%ALLUSERSPROFILE%\Freedom Scientific\JAWS\15.0\SETTINGS\rus\ConfigNames.ini

в секцию [ConfigNames] следует добавить следующую пару ключ=значение:

YaBrowser=firefox

(В приведённом примере «\15.0\» является директорией определённой версии, а «\rus\» директорией определённой локализации JAWS.)

Обращаем внимание, что если используется несколько версий JAWS и/или несколько локализаций внутри одной версии JAWS, то требуется вносить описанную правку в файлы «ConfigNames.ini» для каждой из них.

Известные проблемы и особенности

Прежде всего следует отметить, что доступность меню Яндекс.Браузера появилась в версии 14.12, которая на момент написания данной статьи находится лишь в статусе беты. Её стабильный релиз запланирован на 10 декабря 2014 года. Тем не менее, и в версии 14.12 доступность обеспечивается лишь на базовом уровне, то есть ряд исправлений и дополнений, призванных повысить accessibility, в этот релиз ещё не вошли. Часть таких добавлений ожидается в версии 15.02, бета которой появится в январе 2015 года.

На момент версии 14.12 интерфейс Яндекс.Браузера хоть и является в целом доступным, но имеет ряд нюансов. Так, многие управляющие элементы обладают нестандартным классом, в результате чего не всегда абсолютно корректно обрабатываются программой экранного доступа. Например, на отдельных флажках может не озвучиваться смена состояния при нажатии пробела и т.п.

Также в версии 14.12 пока остаются недоступны отдельные дополнительные элементы интерфейса, например, кастомизируемое табло с наиболее посещаемыми сайтами, выпадающее при клике в адресную строку.

Кроме того, следует отметить, что поскольку программа JAWS в гипертекстовых документах всегда подменяет стандартный диалог поиска своим собственным для обеспечения единообразия пользовательского опыта, то просто по команде CTRL+F будет открываться поиск JAWS. Если же пользователь хочет воспользоваться именно поиском Яндекс.Браузера, то для этого следует сначала выполнить команду пропуска нажатой клавиши по Insert+3, а уже потом открыть поисковый диалог по CTRL+F.

Ссылки для загрузки



Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2024