Очень немногим известно, что существуют программы экранного доступа (скрин-ридеры), которые озвучивают любое производимое действие, любой объект под курсором мыши, любую нажатую клавишу с помощью синтезатора речи. В последнее время пресса пытается освещать этот вопрос, но во всех случаях упоминается одна программа экранного доступа — «JAWS for windows», обладающая скромными возможностями и высокой ценой.
На самом деле, существует множество подобных программ на некоммерческой основе, функционал которых иногда даже превышает возможности платных аналогов. Однако речь в статье пойдёт не об этом, а о том, как различные гаджеты помогают людям с нарушениями зрения в быту и о доступности многих приложений и сервисов для программ экранного доступа.
Немного истории
Когда появились первые компьютеры, никто и не задумывался о том, как ими будут пользоваться незрячие. Компьютер был устройством для избранных, требовал серьёзной подготовки, огромной базы знаний и навыков. Но когда компьютеры стали доступны для рядового пользователя и начали появляться в домах у каждого третьего, встал вопрос о том, как, не видя экрана, пользоваться всеми возможностями устройства. На ум сразу приходят два ответа: на слух и наощупь. И оба эти варианта были воплощены в жизнь. На слух компьютером стало возможно пользоваться с помощью тех самых программ экранного доступа, а наощупь — при помощи так называемых «дисплеев Брайля». Это название само по себе многим может быть непонятно, ведь не все знают, что такое шрифт Брайля. Это шрифт, в котором каждому символу соответствует комбинация из одной или нескольких (до шести, а в компьютерном варианте — до десяти) точек. Но дисплеи Брайля довольно громоздки и требуют специфических драйверов, поэтому их используют чаще на компьютерах в специализированных учреждениях для людей с нарушениями зрения. А вот экранные ридеры работают почти везде, и не требуют ни мощного процессора, ни драйверов. На этом с историей закончим и перейдём к основной проблеме, головной боли всех незрячих — к доступности приложений для программ экранного доступа.
Немного про способы отображения информации
Те, кто участвовал в создании хотя бы одного приложения с графическим интерфейсом, знают, что существует, по сути, два способа отображения контента на экране: средствами окружения, в котором выполняется программа (Windows Forms в Windows, XML и HTML в Android, ...) и вывод информации собственными средствами программы. Если первый вариант полностью поддерживается программами экранного доступа, так как они используют системные метаданные, то второй способ абсолютно недоступен для скрин-ридеров. Для них экран остаётся девственно чистым, потому что виртуальный курсор скрин-ридера не может найти ни одного объекта, описание которого можно получить.
Но, к сожалению, многие разработчики следуют именно по второму пути. Это происходит по разным причинам: кто-то стремится сделать своё приложение более комфортным визуально, чего не всегда можно добиться системными методами, кто-то хочет минимизировать использование платформозависимого кода.
Больше конкретики
Возьмём несколько программ из разных категорий.
Навигатор
Незрячему человеку нужно уметь самостоятельно перемещаться по городу: ходить за продуктами, приезжать в гости к друзьям, посещать музеи и т.д. Он, научившись пользоваться смартфоном, сразу пытается скачать качественный навигатор с максимально подробной информацией о маршруте.
Первые два приложения в Play Market по запросу «навигатор» — это «Яндекс Навигатор» и «CityGuide». Cтавим оба.
Открываем для начала Яндекс Навигатор. Визуально все очень удобно: комфортное меню, красивые иконки, приятная глазу карта. Для незрячего, который всего этого не видит, главный экран приложения представляет собой строку поиска, даже не подписанную как «поиск», и кнопку непонятного назначения, тоже никак не названную.
Хорошо, открываем CityGuide. В целом все то же самое: удобное, приятное глазу приложение. Однако для слепого это приложение представляет собой абсолютно пустой экран. Если Яндекс Навигатор хотя бы даёт возможность попытаться ввести адрес, то в CityGuide это невозможно.
В итоге, для человека с нарушениями зрения остаются два приложения с очень посредственным пешеходным режимом: Google Maps и OsmAnd.
Клиенты социальных сетей
Всем хочется общения, и слепые — не исключение.
ВКонтакте
Стандартный клиент VK был довольно удобен, как визуально, так и для незрячих, но последнее крупное обновление снизило его доступность почти до нуля. Вызывают трудности главное меню, вызываемое свайпом от левого края экрана, меню новостей или записей на стене, вызываемое свайпом от определённой точки правого края экрана (эту точку нужно ещё увидеть). В общем, приходится пользоваться сторонним приложением «Kate Mobile», разработчик которого очень трепетно отнёсся к доступности с самого начала, и сейчас прислушивается к советам со стороны незрячих.
Web-версия VK, кстати, неплохо оформлена с точки зрения читаемости экранными дикторами, и здесь у меня лично претензий нет.
Telegram
Не все им пользуются, но почти все о нём слышали. Позиционирует себя, как одна из самых комфортных для общения социальных сетей. Но с доступностью здесь совсем беда. Web-версия нечитаема скрин-ридерами больше чем на две трети. Мобильные приложения для iOS и Android ещё менее доступны. Главное меню читается одним контейнером, вся главная страница и страница с чатами тоже прочитывается как единый текст, из которого просто не выбрать нужную строку.
WhatsApp и Viber
Большое спасибо разработчику WhatsApp, доступность на высоте. Озвучивается даже большинство смайликов. Почти так же доступен Viber.
Facebook и Facebook Messenger
Оба эти приложения сделаны по одинаковой схеме и имеют одинаковые проблемы: слишком частое и бессмысленное обновление экрана, сбивающее и заставляющее зависать виртуальный курсор скрин-ридера, и неправильные подписи на некоторых кнопках. Пользоваться можно, но есть затруднения.
Skype
До последнего крупного обновления всё было ужасно: безумные зависания, как со скрин-ридером, так и без него, частые и бессмысленные обновления экрана, неподписанные кнопки… Но после обновления всё стало гораздо лучше. Ничего не тормозит, всё читается, и даже то самое некомфортное, открывающееся прямо поверх чатов меню теперь тоже читается.
Windows-версия приложения доступна примерно на 95%, что не может не радовать. Но Linux-версия имеет огромные проблемы с доступностью.
Приложение с множеством возможностей и с почти нулевой доступностью. Проблемы всё те же, что и у скайпа с фейсбуком.
KakaoTalk
Корейцы на высоте. Приложение даже имеет режим специальных возможностей, в котором всё, что недоступно стандартными способами, программа сама направляет напрямую скрин-ридеру. Наверное, самое комфортное после «Kate Mobile» приложение для общения.
Браузеры
Сами по себе браузеры ругать или хвалить почти нет смысла. Полностью доступны Chrome и Firefox на Android, Safari на iOS, Firefox на Windows. Почти полностью озвучивается также Chrome для Windows, но имеет известные проблемы, которые никто не спешит исправлять.
Здесь нужно, скорее, обратить внимание на доступность отдельно взятых сайтов. Например, портал «Госуслуги» с точки зрения доступности почти нулевой. Работать с ним можно, но проблемы есть, а когда речь идёт о документах и деньгах, очень не хочется нажать что-нибудь не так. По факту, сайты многих частных компаний, онлайн игр, крупных и даже мелких производителей озвучены в разы лучше, чем государственный ресурс.
Администрирование и программирование
Да, среди слепых тоже есть программисты, и им тоже хочется комфортно работать. Такая известная среда разработки, как Visual Studio, доступна не более, чем на 50%. Ещё один популярный редактор — QT Creator — озвучивается лишь на 10%, в нём доступны только меню и некоторые кнопки.
Текстовые редакторы
Microsoft office полностью адаптирован для программ экранного доступа, и к нему претензий нет. А вот на Android и iOS всё грустно. Polaris office недоступен совсем, другие программы от абсолютно разных разработчиков тоже не озвучиваются. Я не говорю о написании огромных текстов и расширенном форматировании, но просто прочитать документ тоже нереально.
Итоги
Подведём итоги. Смартфоны и компьютеры очень помогают незрячим в жизни, расширяют их возможности. Но разработчикам многих известнейших приложений стоит обратить внимание на доступность их продуктов для программ экранного доступа.
Комментарии (13)
Mellorn
06.08.2017 22:56+1В целом, хорошая статья и всё достаточно объективно. Но вставлю свои пять копеек. Из первых рук, так сказать.
Не назвал бы Viber достаточно доступным. Во всяком случае, приложение для Windows. Буквально в прошлом месяце решил установить протестировать. Впечатления не самые приятные.
Да, возможно, потанцевав немного с бубном и можно было бы добиться приемлимого результата. Но т.к. он мне был, в принципе, на windows не нужен, устанавливал его чисто из интереса, то в тот же день и снёс.
Насчёт Skype несогласен полностью. По моему, Скайп всегда имел нормальный уровень доступности. Да, были свои бока, но некритично. Я сам пользуюсь Skype с какой-то из третих версий. И особых неудобств никогда не испытывал. Да, где-то что-то приходилось подшаманить в настройках, но это было дело пары минут. Хотя, и сейчас кое-что приходится поднастраивать. А насчёт последней глобальной обновы, тут согласен. Подписали многие элементы управления, ну и вообще стало более комфортно. Но повторюсь, что ситуацию со Skype я не назвал бы ужасной и в старых версиях.
По браузерам… Да, всё так и есть. Единственное, всё же от браузера зависит не меньше, чем от сайта. Так что браузеры есть смысл и ругать и хвалить. В Firefox доступность на высоте. А вот Windows версию Chrome я бы не стал юзать даже на идеальном с точки зрения доступности сайте. Если есть альтернатива, разумеется. В целом, в Chrome вполне можно работать под скринридером, но не торт, как говориться.
Что касается инструментов для разработки/администрирования, тут беда, конечно. Собственно, Notepad++ рулит, как бы это смешно не звучало в 2017 году. Я сам занят в web-разработке. Почти во всех редакторах кода, которые мне приходилось пробовать, были какие-то проблемы с доступностью. Но уверен, что многие ещё и не пробовал, так что скорее всего есть достойные варианты. Из SSH-клиентов, лично я остановился на PuTTY. Там, конечно, есть свои проблемы, но я их уже считаю, скорее, фичами))).
Если смотреть на ситуацию вцелом, то web более доступен, чем приложения. Даже на сайте с самой хреновой доступностью возможно будет работать. не удобно, но возможно. Особенно, если юзер хорошо знает свой скринридер и имеет хороший опыт, а не вчера сел за комп. А вот в приложениях всё более печально. Как правило, приложение либо работает, либо нет.
К рекомендациям по улучшению доступности тоже стоит относиться с изрядной долей опаски/критики. Переизбыток вспомогательной информации иногда хуже, чем её недостача. + некоторые вещи не дают никакого эффекта, или работают не так, как можно предположить. А некоторые вещи наоборот могут сломать всю доступность.
Классический пример. Берём документацию по Bootstrap-3, в частности, модали. Рекомендуется добавлять к модали role=«dialog». И в такой модали сразу ломается навигация стрелками. Можно перемещаться по элементам только табом. Если в вашей модали есть какая-то формочка, это ещё как-то будет работать, можно будет ходить табом по элементам формы. Но всё остальное уже недоступно. Например, ходить стрелками по тексту мы уже не сможем. Если role=«dialog» не добавлять, модаль будет полностью читабельной. Но скринридер уже не будет воспринимать её как модаль. Т.е. мы сможем легко выйти за её пределы и делать что-то на основной странице. Так что подобные моменты всегда нужно учитывать.slonpts
07.08.2017 08:47Судя по всему, вы имеете опыт как использования, так и создания программ / сайтов с точки зрения незрячих людей. Можете дать рекомендации (или добавить к тому, что напишет cyrmax ) по тому, как лучше делать на тех технологиях, с которыми сталкивались? Наверняка ведь, как обычно, 20% усилий дают 80% результата, и что-то важное можно сделать очень быстро и просто.
Как максимально просто протестировать доступность (на тех платформах, где знаете)?
Когда картинки надо подписывать, а когда лучше не надо. Например, логотип — надо ли?
Есть ли какие-то анализаторы кода типа lint / rubocop / dialyzer или плагина к Idea / Android Studio / WebStorm / Visual Studio, которые бы выводили/выделяли самые распространенные ошибки доступности?cyrmax Автор
07.08.2017 08:53анализаторы кода я никогда не использовал, так как только начинаю заниматься серьёзным программированием. но в данной ситуации мне анализатор не нужен, я сам незрячий и могу все проблемы доступности ощутить в полной мере.
у меня скорее возникает проблема с «доступностью» интерфейса для обычных пользователей. вернее не доступность, а удобство использования. на данном этапе я умею делать абсолютно доступный, но абсолютно не юзабельный интерфейс.
JeStoneDev
07.08.2017 06:22+1По факту, сайты многих частных компаний, онлайн игр, крупных и даже мелких производителей озвучены в разы лучше, чем государственный ресурс.
А все потому, что государственные организации платят программистам значительно меньше, чем частные компании. Найти хороших специалистов на такую зарплату очень сложно. Соответственно и сидят там часто недавние студенты и люди, для которых работа «лишь бы была». Ни у тех ни у других обычно нет необходимых навыков.
Это не говоря уже о том, что для гос. организаций зачастую выполнение требований закона гораздо важнее конечного результата. Какой еще WCAG? Зачем проверять доступность с клавиатуры и со скринридером? В приказе №483 Минсвязи сказано, что на сайте должны быть кнопки для изменения размера и цвета шрифта, вот и делайте это. А удобно конечному пользователю или нет, мало кого волнует.cyrmax Автор
07.08.2017 08:49полностью с вами согласен на тему государственных сайтов. я бы и сам, если честно, не пошёл бы работать на гос ресурсе, так как оплата труда абсолютно другая.
DollaR84
07.08.2017 08:56+1Здравствуйте. Много лет читаю хабрахабр, но специально зарегистрировался чтобы поблагодарить за статью. Постоянно сталкиваюсь с данными проблемами доступности, особенно много в сфере программирования перепробовал много разных IDE и текстовых редакторов для программирования на python. В итоге остановился на Notepad++ как самом удобном в этом плане. Очень интересны статьи на данную тему, так как тема действительно мало обсуждаема. Спасибо, что поднимаете данную тему, пишите еще, очень интересно.
belonesox
09.08.2017 07:45Если вы интересуетесь этой темой, наверняка вы знаете о Михаиле Пожидаеве (незрячий программист, разрабатывающий DE для незрячих), если вдруг нет — посмотрите его доклады, там есть и демонстрация живьем.
sfi0zy
Во фронтенде все так же, как и в мобильных приложениях. На многих сайтах не то, что читалки плохо понимают происходящее, там даже клавиатурой прокликать по навигации нельзя. Переодически кто-то приходит и говорит, что у нас все плохо, что надо что-то делать, все обсуждают это, соглашаются с ним, а потом через неделю забивают. В основном по той причине, что очень мало информации по теме. Все, что у нас есть — это рекомендации от w3c, которые малость оторваны от дизайнерской реальности и требуют шевеления мозгами для применения их на практике, и статьи вроде «пять советов о том, как улучшить доступность», в которых говорят о том, что навигация должна иметь role=navigation, но как-то умалчивается о работе с выпадающими меню и другими прелестями жизни. А самому разбираться долго, да и зачем… Остаются единицы, которые пытаются что-то делать. Было бы интересно почитать практические советы в стиле «1. Имеем бяку. 2. Делаем вот так. 3. Бяка уже не такая большая».
cyrmax Автор
Как раз в этом направлении я и собираюсь писать дальше. С доступностью всё плохо, надо что-то делать, а статей на эту тему почти нет, во всяком случае в рунете точно. Вобщем, статьи будут обязательно.
Спасибо за развёрнутый комментарий.
kranid
Вот тут набор советов по решению практически всех возможных бяк.
cyrmax Автор
спасибо большое. я думаю эта ссылка будет полезна не только мне.
и надо будет сделать качественный перевод этой статьи на русский, ну или что-то своё на её основе.
вобщем, спасибо!
dumistoklus
Могли бы вы написать еще одну краткую статью с ответами на следующие вопросы. Если некоторые вопросы некорректны, прошу прощения.
Я думаю узнать ответы на эти вопросы было бы полезно для всего сообщества разработчиков. Также интересно выслушать ответы на данные вопросы от других пользователей.
cyrmax Автор
Спасибо большое за тему для следующей статьи. Уже начал писать, осталось обновить свои знания в html.