Год назад, на GAAD-2015, уже публиковался подробный материал о LUWRAIN, в котором была изложена общая концепция этой рабочей среды, а также рассмотрена задача создания приложений на её базе, адаптированных для людей с нарушениями зрения, поэтому, все, кто боится потерять контекст, может предварительно ознакомиться с публикацией "Luwrain — рабочее окружение для людей с нарушениями зрения". В этот же раз речь пойдёт о тех технических задачах, которые решались в рамках LUWRAIN на протяжении прошедшего года, и о перспективах дальнейшего развития, а также читателей ждёт рассказ о том, как команда LUWRAIN угощала армянским коньяком и русской водкой своих коллег из Canonical.
Как и в прошлый раз, к написанию материала напрямую причастен руководитель проекта LUWRAIN Михаил Пожидаев, так что статья вполне может считаться официальной версией истории проекта, так как самые скандальные факты были им цинично цензурированы.
Основные задачи
Напомним, что основной целью проекта LUWRAIN является создание специализированного рабочего окружения, главным образом, адаптированного под специфические потребности пользователей с серьёзными нарушениями зрения. Идея заключается в том, что работа незрячего человека с нативным графическим интерфейсом операционных систем и приложений при помощи существующих программ экранного доступа, далеко не всегда и во всём является удобной. Существует класс задач, которые вполне реально решать в специальной рабочей среде более эффективно, а некоторые категории пользователей напрямую нуждаются в подобном решении, так как нативные интерфейсы для них оказываются чрезмерно сложными, например, это касается многих пожилых людей и людей с одновременным нарушением зрения и слуха. Да и, в конце концов, каждый имеет право просто не любить GUI, что, между нами говоря, в полной мере относится к главному идеологу LUWRAIN.
LUWRAIN предлагает достижение поставленной цели за счёт создания специализированного рабочего окружения, изначально адаптированного под специфику работы пользователей с нарушением зрения (исключительно текстовый интерфейс, полное клавиатурное управление без мышки, которая недоступна незрячим, гарантированная доступность всей экранной информации и пр.). Внутри среды LUWRAIN реализуются приложения для решения базовых задач (сёрфинг, работа с почтой, чтение новостей и пр.), а также существует API для создания дополнительных приложений сторонними разработчиками, который позволяет писать расширения, не задумываясь над задачей обеспечения их доступности, так как она решена уже на уровне LUWRAIN, являющегося как бы фреймворком для написания таких приложений.
Сам же LUWRAIN реализуется в двух вариантах: как Java-приложение для различных операционных систем и как дистрибутив Linux с LUWRAIN в качестве рабочего окружения. Вследствие этого, вся разработка LUWRAIN разбивается на несколько типов задач:
- Создание кросс-платформенного ядра среды LUWRAIN на Java;
- Разработка внутренних приложений на базе имеющегося API;
- Написание платформозависимых элементов для запуска LUWRAIN на разных системах;
- Сборка Linux-дистрибутива с наивысшей интеграцией LUWRAIN в систему.
Это довольно разноплановые задачи, которые требуют гибких подходов к их решению. В одних случаях получается воспользоваться практически готовыми open source библиотеками и только реализовать для них поддержку LUWRAIN API, как, например, в случае почтового клиента, в других, приходится писать собственные реализации с нуля, как, например, реализацию взаимодействия с MS Speech API, ну а в третьих встаёт необходимость серьёзной доработки имеющихся решений, как, например, в случае браузера.
Адаптация WebKit
LUWRAIN, безусловно, является до определённой степени эскапистским решением, но всё же не настолько, чтобы игнорировать необходимость базовой функциональности, к которой, в том числе, относится и работа в сети Интернет. Тем не менее, ещё год назад реализация доступной для незрячих web-навигации в рамках LUWRAIN представлялась практически нерешаемой задачей. Именно поэтому рассматривалась возможность использования параллельно запущенного браузера Chrome с расширением ChromeVox, предназначенным для обеспечения невизуальной работы с web-страницами. Однако это был скорей шаг отчаянья, так как изящность подобного решения, откровенно говоря, хромала, да и сам ChromeVox на тот момент имел ряд фундаментальных проблем при работе с не ASCII-символами, которые не решены и до сих пор.
В середине 2015 года было решено попробовать взять за основу браузерный движок WebKit, собранный как JNI-модуль. Его перспективность заключалась в том, что фактически он является довольно самодостаточным компонентом. То есть, будучи собранным на C++, даёт одинаковый результат на всех платформах и не тянет за собой тяжёлых зависимостей. Он также имеет Java-интерфейс, представляющий собой почти только трансляторы JNI-вызовов. Плюс у него являются разнесёнными сам движок и блок графического отображения, то есть объект визуализации вообще можно не создавать, и движок будет всё равно работать, что делает его довольно удобным решением для реализации браузера с альтернативным интерфейсом в духе LUWRAIN.
Очевидно, что после обнаружения всех этих подробностей, идея с рядом запущенным Chrome и пробросом вызовов в ChromeVox показалась ещё более непривлекательной, и было решено реализовывать собственный браузер внутри LUWRAIN на базе WebKit. Однако задача эта оказалась далеко не такой уж простой из-за определённой специфики обеспечения невизуальной доступности web-интерфейсов.
Дело в том, что у незрячих пользователей к работе с web есть ряд определённых требований:
Во-первых, просто простыня текста web-страницы не очень удобна для невизуальной работы. Необходимо обеспечить ряд дополнительных возможностей, представляющих собой варианты навигации по структурным элементам страницы (заголовкам, ссылкам, таблицам и пр.).
Во-вторых, страницы, априори разрабатывающиеся с ориентацией на визуальное восприятие, далеко не всегда и не во всём удобно выглядят в текстовом исполнении, например, навигационные или информационные боковые колонки при текстовом представлении оказываются зачастую абсолютно лишним текстом в начале или середине основного содержимого (в зависимости от их порядка в исходной структуре документа). То есть необходимо предусмотреть различные дополнительные функции для адаптации страницы под чтение незрячим (режим чтения с удалением лишних элементов, возможность настроить чтение страницы при загрузке с определённого места, а не с начала, и пр.).
В-третьих, полностью отказаться от исходного представления страницы со всеми графическими элементами также было бы неправильно, так как системой может пользоваться слабовидящий человек, способный к ограниченному визуальному восприятию, да и, к сожалению, незрячим зачастую приходиться просить зрячих людей помочь разгадать графический CAPTCHA на сайтах.
Всё это требует довольно серьёзной доработки WebKit для его использования в LUWRAIN. В частности, приходится реализовывать поверх свою собственную структуру, которая и даёт навигацию по элементам гипертекста. Причём, необходимо разбирать не просто исходный HTML, а уже дерево DOM, потому что многие элементы интерфейса появляются только после отработки JavaScript.
Здесь кроиться одна проблема WebKit, заключающаяся в том, что движок в полной мере не даёт понять, когда именно страница загружена полностью.
То есть наличие большого количество скриптов делает момент получения готовой страницы очень размытым, что очевидным образом сказывается на способности адекватно отобразить её в интерфейсе LUWRAIN.
Главным мастером этого направления в LUWRAIN стал Роман Воловодов rPman, который и сделал реальностью все эти вещи.
На сегодняшний день, работы по адаптации WebKit не закончены и браузер LUWRAIN пока ещё не может похвастаться стабильностью работы. Это по-прежнему остаётся одним из ключевых направлений развития рабочей среды. На ближайшее будущее задачей-минимум является получение реально стабильного и пригодного к пользовательской работе браузера. После этого можно будет задуматься над некоторой модульностью для расширений, в частности, прикручивания поддержки спамерских API для распознавания CAPTCHA.
Откровенно говоря, существуют некоторые сомнения в отношении возможности браузера LUWRAIN догнать по функциональности невизуальной работы существующие решения на Windows в связке с развитыми программами чтения экрана, которые, на сегодняшний день, являются лидерами индустрии в сфере обеспечения доступности web для незрячих. Однако всё это пока является скорей предметом спекуляций и дружеских холиваров внутри отрасли вспомогательных технологий, и до первой стабилизации браузера LUWRAIN выполнять какие-либо сравнения будет преждевременным.
Дистрибутивы с LUWRAIN
Как уже говорилось, одним из вариантов поставки LUWRAIN является сборка самостоятельного Linux-дистрибутива, так как несмотря на то, что среда задумана как кросс-платформенное решение, именно на Linux её возможности могут быть раскрыты в полной мере. Выбор базового дистрибутива был одним из вопросов, который возникал на этапе становления проекта, но в итоге было принято решение, что им станет Ubuntu.
Разумеется, базовый дистрибутив — это всегда довольно флеймообразующий момент, зачастую затрагивающий практически религиозные чувства, поэтому всем угодить здесь сложно. В случае LUWRAIN, выбор в пользу
Ubuntu был сделан, главным образом, из соображений наибольшей массовости и документированности. К слову, до этого момента главный разработчик сидел на ALT Linux, что, наверное, может служить некоторой защитой от обвинений в предвзятости.
Так или иначе, в 2015 году начались серьёзные работы по подготовки дистрибутива LUWRAIN, которые под самый новый год завершились релизом образов бета-версии LUWRAIN 0.5.0 на базе Ubuntu 15.10 (Wily Werewolf). На сегодняшний день актуальной является уже версия 0.5.2 от 15 марта 2016 года. Все загрузочные ISO-образы, которые могут быть использованы как для запуска LUWRAIN в режиме live CD без установки на жёсткий диск, так и для установки на ПК в качестве самостоятельной OS, доступны на официальном сайте проекта.
Существует и другой дистрибутив, в котором в качестве рабочей среды используется LUWRAIN на пару с Emacspeak — Homeros, вышедший в начале апреля 2016 года. Он также базируется на Ubuntu 15.10, но в большей степени ориентирован на опытных пользователей и решение задач разработки, в том числе самого же LUWRAIN.
В общем и целом, будущее LUWRAIN как дистрибутива тесно связывается с Ubuntu, в том числе в отношении использования всей экосистемы и прочего. Между прочем, именно интерес главного разработчика LUWRAIN к механизму Snappy привёл к неожиданным последствиям.
Контакты с Canonical
В конце 2015 года, на некоторые вопросы Михаила Пожидаева о Snappy по почте ответил Марк Шаттлворт, после чего Михаил поинтересовался правовой стороной использования Ubuntu, показав статью о LUWRAIN в Linux Journal. В конечном счёте, всё это закончилось приглашением в Лондонский офис Canonical, куда команда LUWRAIN собралась отнюдь не с пустыми руками.
Существует легенда, в том числе известная и в Великобритании, что на Ялтинской конференции Сталин предложил Черчиллю рюмку армянского коньяка, который настолько понравился британскому премьер-министру, что он стал поклонником этого напитка. В последующие годы поставки этого коньяка сэру Черчиллю контролировались лично Сталиным, а когда однажды из-за ареста одного из мастеров качество продукта изменилось, Иосиф Виссарионович распорядился его выпустить и снова вернуть на работу. Разумеется, после такого, команда LUWRAIN не могла не захватить в подарок британским коллегам бутылку армянского коньяка, которую и вручила Джону Ли и Ричарду Коллинсу со словами, что Черчилль уважал, а Марку, которого тогда не было в Лондоне, передали бутылку настоящей русской водки.
Общение именно с этими сотрудниками Canonical было не случайным. Дело в том, что Ричард Коллинс курирует телефонное направление, а Джон Ли отвечает за его дизайн.
На сегодняшний день, все основные мобильные операционные системы (Android, iOS, Tizen, BlackBerry, Windows 10 Mobile) в той или иной степени доступны для незрячих пользователей, а вот Ubuntu Touch, к сожалению, для невизуального использования остаётся абсолютно неприспособленной. Desctop-версии Ubuntu пытаются учитывать потребности незрячих, включая в себя средства чтения экрана, но по мобильному направлению система Canonical на сегодняшний день в отношении доступности ничего предложить не может. Потенциальное сотрудничество Canonical и LUWRAIN в этой области могло бы предложить незрячим ещё один вариант доступных смартфонов и планшетных компьютеров. Причём, не в виде повтора уже существующих решений, как это в массе своей происходит в уже доступных мобильных OS, а в рамках своей концепции адаптированных интерфейсов.
Международные контакты проекта LUWRAIN также поспособствовали и началу движения в сторону большей унификации и стандартизации. В частности, были начаты работы над имплементацией поддержки речевых серверов Emacspeak и Speech Dispatcher. Ранее, в LUWRAIN вывод синтезированной речи осуществлялся через речевой сервер VoiceMan, являющийся самостоятельной разработкой. Это давало некоторые преимущества, но также создавало для незрячих пользователей и определённые неудобства, а именно невозможность использовать те самые Emacspeak и Speech Dispatcher, являющиеся более распространёнными и даже стандартами де-факто для многих дистрибутивов, в том числе и Ubuntu.
Многие альтернативные вспомогательные технологии, главным образом, программа чтения экрана Orca, не работают с VoiceMan, поэтому у пользователей возникали проблемы одновременного сочетания LUWRAIN с другим адаптивным программным обеспечением на Linux, что было одним из предметов критики данной рабочей среды. Сейчас же, благодаря реализации поддержки и других речевых серверов, LUWRAIN становится более гибким и способным к комбинированному использованию.
Ближайшие планы
На ближайшее время в планы проекта LUWRAIN входит:
- До конца 2016 года завершить разработку первой стабильной версии браузера.
- К началу ближайшего учебного года создать условия для работы в рамках LUWRAIN с учебными материалами в специальном формате DAISY, адаптированном под потребности незрячих. Разумеется, в рамках проекта LUWRAIN речь идёт лишь о создании инструментария для чтения и возможно создания, а отвечать за подготовку контента должны будут соответствующие организации (коррекционные школы, библиотеки для слепых и др.).
- Реализовать доступное посредством среды LUWRAIN мобильное устройство совместно с Canonical, которым может быть как смартфон, так и планшет.
- Сдвинуть с мёртвой точки вопрос интеграции с платёжными системами, то есть реализовать возможность работы с ними в интерфейсе LUWRAIN, так как использование web-сервисов менее удобно, а зачастую и откровенно менее доступно для незрячих пользователей. Очевидно, что это крайне сложное направление работы, что обуславливается определёнными требованиями безопасности, однако есть надежда найти какие-то точки соприкосновения с соответствующими организациями.
Дополнительная информация
Проект Luwrain развивается в традициях свободного программного обеспечения и полностью открыт для сообщества. Более подробную информацию можно получить на официальном сайте. Там же доступны для загрузки существующие сборки LUWRAIN, как в виде ISO-образа, так и в виде отдельного приложения для Windows и Linux. Интересующиеся же непосредственным развитием проекта могут ознакомиться с LUWRAIN SDK, с полным перечнем репозиториев Git, а также с ночными сборками.
Дополнительно можно ознакомиться с рядом других материалов о LUWRAIN, вышедших за последний год и содержащих более подробное описание отдельных аспектов проекта:
Комментарии (7)
Damik
19.05.2016 18:08Только вчера прослушал SDcast с Михаилом! Хороший проект, обязательно нужно освоить. Приятно осознавать, что даже после потери зрения есть инструменты для работы.
Пару лет назад ресерчил, можно ли пользоваться смартфоном вслепую. Нельзя. Так что удачи ребятам, дело правое!Tseikovets
19.05.2016 18:12Вообще смартфоном вслепую пользоваться можно. Принципиально эта проблема была решена ещё много лет назад. Сейчас практически любой современный смартфон в той или иной степени доступен для тотально слепых. Причём, степень доступности довольно существенная, особенно на iOS и Android, хотя у Android могут быть неудачные оболочки.
Ценность LUWRAIN на Ubuntu Touch скорей в том, что там будет предложено альтернативное виденье реализации доступности, так как существующие решения все базируются на примерно одних и тех же принципах, предложенных Apple в iPhone 3GS в 2009 году.Damik
19.05.2016 20:47Дело в том, что все средства, что есть сейчас — ужасная попытка передать изображение с экрана в уши. Пользоваться можно, но речь о хоть каком-то комфорте не идет.
А вот от LUWRAIN хочу увидеть что-то удобное.Tseikovets
19.05.2016 21:56В принципе, если взять Mobile Accessibility под Android в режиме рабочей среды, то это по сути примерно то, как может выглядить LUWRAIN на мобильных, то есть набор адаптированных самоозвучивающихся приложений для базовых задач. Так что если этот подход вас не смущает, то с ним можно работать уже сейчас. Есть и другие подобные решения, просто они не интегрированы в платформу, как это может произойти с LUWRAIN на Ubuntu Touch.
kvaps
Ого! Должен признать — это отличная идея, и довольно интересная реализация. Текстовый интерфейс отлично подойдет для незрячих людей.
Очень понравилась идея представления обычных сайтов в удобном для восприятия на слух виде, у вас на скриншотах.
Понятное дело, что не любой сайт удастся распарсить настолько красиво, но все же это гораздо лучше чем ничего, а для популярных сайтов можно написать и приложение.
А еще, в будующем наверняка можно будет использовать LUWRAIN для создания handsfree систем.
Представьте себе, едешь себе в машине и серфайешь в инете без каких либо дисплеев.
Ребята определенно молодцы, нет слов что бы описать насколько это круто!
Tseikovets
Ну кстати, чтобы было понятно, в браузере не шаблонный парсинг. То есть сайты в адаптированную форму переводятся универсальным алгоритмом, а не по правилам, специально разработанным под каждый сайт. Таким образом, браузер должен будет уметь «распарсить настолько красиво» любой произвольный сайт, если там только не будет какого-то криминала с игнорированием здравого смысла в вёрстке, но и в этом случае браузер ещё поборется. Так это работает для незрячих на альтернативных платформах, так это должно будет работать и в LUWRAIN.