В начале сентября 2021 года, независимо друг от друга были запущены два проекта разработки новых программ экранного доступа для графических окружений операционных систем семейства Linux. В анонсах обоих проектов их инициаторы высказывают критику в отношении программы Orca и декларируют своё намеренье разработать более функциональную, производительную и универсальную альтернативу, хотя при этом признавая, что пока их проекты находятся скорей на этапе предварительного исследования и проектирования, а сами они не имеют достаточного опыта в соответствующей области и пока лишь изучают технологический стек интерфейса специальных возможностей AT-SPI.
Первой инициативой из этой группы является проект программы экранного доступа Yggdrasil, запущенный парой технических энтузиастов из Румынии и Великобритании. Он позиционируется следующим образом:
«Доступность в Linux исторически была недостаточно развита, недостаточно поддерживалась и, как следствие, приобрела среди людей с ограниченными возможностями репутацию довольно болезненного решения для повседневного использования. Мы хотим это изменить.
Yggdrasil - это новый проект, целью которого является создание улучшенной программы экранного доступа для Linux, написанной на Rust. С помощью этого проекта мы стремимся обеспечить лучший опыт экранного доступа, чем тот, который сейчас есть у нас с Orca. Это программа экранного доступа со всеми современными функциями, которые пользователь Windows или macOS ожидает от своих компьютеров, в том числе:
- Навигация по объектам;
- Оптическое распознавание символов (OCR);
- Настраиваемые команды навигации;
- Мощный механизм дополнений;
- И другое.»
Название проекта является отсылкой к германо-скандинавской мифологии, в которой Иггдрасиль - это исполинский ясень, в виде которого древние скандинавы представляли себе вселенную. Разработчики Yggdrasil, отождествляют свою миссию с подобным мировым деревом:
«Он рассматривается как объединитель всего, поскольку его корни достигают центра Земли. Он настолько велик, что его части существуют в других вселенных.
Мы считаем, что доступность должна объединять людей со всего мира, чтобы они могли пользоваться продуктом, и инвалидность больше не будет препятствием для эффективно использующего его человека. Люди с ограниченными возможностями должны уметь пользоваться технологиями не хуже, если вообще не лучше, чем человек без инвалидности.»
Впрочем, пока у проекта есть лишь красиво написанная миссия, а в репозитории организации на GitHub есть исходники веб-сайта проекта и набросок подсистемы синтеза речи. Хотя разработчики утверждают, что у них есть уже предварительная проектная документация, в том числе в виде систематизации данных о некоторых плохо документированных аспектах AT-SPI. Однако никакого исходного кода самой программы экранного доступа ещё нет, а лишь декларация запланированной функциональности:
- Первоклассная поддержка дополнений
- Мы хотим, чтобы наши пользователи могли делать всё, что захотят, с помощью нашей программы экранного доступа. В идеале улучшение поддержки конкретных программ должно быть осуществимо без изменения основного кода Yggdrasil.
Мы планируем упростить написание дополнений в первую очередь на Lua, но с возможностью использования других языков, таких как Rust, в будущем для повышения производительности.- Гибкая система ввода и жестов
- Точно так же добавление новых функций, таких как новые клавиатурные команды, должно быть достаточно простым, без необходимости возиться с исходным кодом программы экранного доступа. Будет доступно ручное редактирование конфигурационных файлов, а также интуитивно понятная графическая программа для изменения жестов и определения новых действий.
- Современные паттерны навигации
- В идеальном мире приложения будут доступны просто автоматически, однако этого почти никогда не бывает. Таким образом, люди с ослабленным зрением полагаются на дополнительные инструменты, предоставляемые их программой экранного доступа, такие как навигация по объектам, способ изучить дерево доступности приложения, не полагаясь на фокус, и затем иметь возможность обнаруживать нефокусируемые элементы, которые, тем не менее, содержат важную информацию. У нас это есть в NVDA и других программах экранного доступа, но не в Orca и вообще не на Linux. Yggdrasil займётся этим.
В остальном всем интересующимся предлагается следить за проектом, чтобы "увидеть более интересные новости и документацию". У Yggdrasil есть официальная страница, а также организация на GitHub.
Второй инициативой из этой группы является проект программы экранного доступа Harpoon, запущенный студентом Университета Джорджа Мейсона Хантером Джозвиаком (Hunter Jozwiak). Он позиционируется более широко, как программа экранного доступа для Linux и, возможно, других Unix-подобных операционных систем, но главное с более универсальной поддержкой графических окружений, нежели у существующей Orca.
Название проекта, по всей видимости, является данью традиции взаимных подначек разработчиков программ экранного доступа. В своё время, разработчики программы JAWS, чьё название является акронимом фразы "Job Access With Speech" (доступ к работе с помощью речи), стали активно обыгрывать его прочтение в виде просто слова "Jaws" ("Челюсти"), которое в англоязычной среде устойчиво ассоциируется с одноимённой книгой Питера Бенчли и снятого по её мотивам фильма Стивена Спилберга про гигантскую белую акулу-людоеда. Позже, создатель свободной программы экранного доступа для Linux решил назвать её Orca, потому что единственный естественный враг белых акул - это дельфин косатка, который по-латински называется orcinus orca. То есть название Orca является намёком на то, что эта программа способна "прикончить" JAWS. Ну и вероятно в продолжение этой шутливой пикировки проект Harpoon, чьё название переводиться как "гарпун", намекает на то, что он способен "загарпунить" Orca, а при случае возможно и JAWS.
По сравнению с Yggdrasil у проекта Harpoon нет настолько же пафосно прописанной миссии, но зато его разработчик сформулировал более конкретное техническое описание своих целей:
«На данный момент у меня есть три основные цели в отношении проекта:
- Во-первых, было бы интересно получить дополнительную документацию о том, как работает стек специальных возможностей. Несмотря на трудности реализации, я намерен исправить это, выполнив документирование различных частей стека. Например, какая связь между ATK и AT-SPI? Является ли прежняя реализация специфичной для GNOME или поддерживает другие графические окружения? Последнее - это основа, на которой всё строится? На мой взгляд, большая часть этих знаний принадлежит разрозненным людям, поскольку вам нужно знать кого-то, кто это знает, чтобы научиться их применять, хотя, возможно, это записано где-то в блоге, который я ещё не нашёл.
- Во-вторых, Harpoon будет спроектирован с учётом скорости, правда на этой ранней стадии я не имею чётких представлений, как будет выглядеть архитектура реализации, хотя я остановился на Rust для основной работы и, возможно, на Lua для плагинов.
- Наконец, было бы неплохо иметь программу экранного доступа, которая не привязана к одному конкретному графическому окружению, а именно к GNOME и дружественным проектам, поскольку именно там Orca работает лучше всего, а KDE - достойный конкурент. Я не совсем уверен, как это будет работать; я подозреваю, что это было бы похоже на функцию времени компиляции, определяющей, на какое графическое окружение нужно ориентироваться. Дополнительным бонусом будет поддержка некоторых менее известных фреймворков, таких как приложения Motif или TK.
Таким образом, Harpoon стремится устранить путаницу в отношении стека специальных возможностей в целом, быть спроектированным для скорости и быть максимально независимым от платформы.»
Правда в техническом отношении Harpoon пока ушёл не сильно дальше Yggdrasil. У проекта есть открытый репозиторий на GitHub, за которым и предлагается следить всем интересующимся. В нём есть шаблон проекта на Rust без какой-либо проектной документации и практически без хотя бы начального исходного кода. Заинтересованные смогут насладиться разве что уже добавленным в репозиторий этическим кодексом сообщества проекта.
Таким образом, оба проекта новых программ экранного доступа для графических окружений Linux пока не могут предложить не то что работоспособный прототип, но и даже сколько-нибудь существенный материал для предметного технического рассмотрения. Однако злым языкам стоит помнить пример программы экранного доступа NVDA, которая на начальном этапе также была мишенью для множества язвительных заявлений, сарказма и скепсиса, но в конечном итоге стала одним из лидирующих продуктов в сфере вспомогательных технологий, существенно изменив ландшафт всего рынка. Кроме того, возникновение подобных альтернативных проектов, декларирующих намеренье создать альтернативу устоявшимся решениям, часто бывает полезно даже просто как благодатная среда для предметных технических дискуссий, которые могут хорошо высвечивать реальные недостатки других проектов и, как минимум, обращать на них внимания и создавать импульс для их исправления. Разумеется, при условии конструктивного управления проектом и его информационного обеспечения.
Сама реализация слоя доступности графических интерфейсов в свободных Unix-подобных операционных системах изначально содержит ряд объективных препятствий для обеспечения того же уровня стабильности и функциональности, которым характеризуются программы экранного доступа на Windows и macOS. Однако ряд критических заявлений инициаторов проектов Yggdrasil и Harpoon в отношении Orca вполне справедлив и действительно указывает на те моменты, которые обуславливаются не столько объективными особенностями операционных систем, сколько приоритетами, в разное время субъективно определёнными и определяемыми лидерами проекта Orca.
И если в области консольных программ экранного доступа для Linux существует сразу несколько решений, таких как BRLTTY, Fenrir, SBL, eSpeakup/Speakup, tdsr или YARS, и даже в области доступности текстовой среды Emacs есть выбор между Emacspeak и speechd-el, то в области программ экранного доступа для графических окружений на сегодняшний день нет никакой актуальной альтернативы Orca, так как проекты типа Gnopernicus или Linux Screen Reader (LSR) уже давно закрыты. В этих условиях некоторая конкуренция идей и концепций вполне могла бы пойти на пользу индустрии вспомогательных технологий на Linux и других Unix-подобных операционных системах, пускай и за счёт запуска проектов, которые послужат лишь площадкой для отработки и демонстрации каких-то решений и подходов.
Проекты Yggdrasil и Harpoon могут быть признаны полезными для индустрии даже в том случае, если они выполнят хотя бы начальный запланированный этап в виде более подробного документирования различных нюансов интерфейса AT-SPI. По этой причине стоит пожелать удачи их инициаторам и по возможности следить за их развитием, может быть даже с рассмотрением возможности предложения помощи кому-то из них.
Социальные сети