Опубликован исходный код программы экранного доступа "Сталкер" для MS-DOS

Дата:27.03.2024
Источник:Средства невизуального доступа и смежные проекты Игоря Порецкого
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

На сайте Игоря Порецкого опубликован исходный код программы экранного доступа "Сталкер" для операционных систем MS-DOS, разработанной в 1990-х годах. Код "Сталкера" был лицензирован на условиях свободной лицензии GPL v2 ещё в 2001 году, но до недавнего времени не был легко доступен для всех желающих на каком-либо публичном ресурсе.

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

Тем не менее, в качестве забавного факта можно отметить, что в официальной документации компании Apple для разработчиков синтезаторов речи для операционных систем Mac OS X в качестве примера приводится как раз код синтезатора речи, который преобразует текст в звуковые сигналы азбуки Морзе, так что эта идея полностью не забыта, пускай и в целях упрощённых примеров.

Существенным прорывом в невизуальной доступности для русскоязычных незрячих пользователей MS-DOS стало появление программного синтезатора речи "Фонемафон-5". С его использованием вскоре был разработан комплект говорящих программ для обеспечения работы без помощи зрения в среде MS-DOS под названием "Эхо поиска". Именно это решение и стало практически первым вариантом специальной рабочей среды для незрячих, позволившей работать с операционными системами MS-DOS достаточно широкому кругу незрячих пользователей, благодаря полноценному речевому выводу, для понимания которого не требовалось длительного обучения. Синтезатор же "Фонемафон-5" стал важнейшим компонентом и остальных специальных программ для незрячих пользователей, нуждавшихся в функциональности речевого вывода. Однако подробнее об истории синтезатора речи "Фонемафон-5" рассказано в другом материале.

Со временем для обеспечения возможности работы в среде MS-DOS без помощи зрения появились и другие решения с речевым выводом. Это были и схожие по смыслу с "Эхом поиска" говорящие рабочие среды, например, такие как речевой редактор текстов RED1 или речевое автоматизированное рабочее место (АРМ) незрячего специалиста Speaker commander. Но также стали появляться и полноценные программы экранного доступа, которые уже были способны предоставлять в речевой форме информацию об интерфейсе сторонних программ общего назначения, использующих текстовый режим экрана, например, такие как "АРГУС", "ЭПАРД" или Vocal-Eyes.

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

В определённый момент в этом ряду появилась ещё одна программа экранного доступа для MS-DOS под названием "Сталкер", разработанная Игорем Порецким. По началу она также являлась проприетарным программным обеспечением и распространялась за плату, но позже по решению разработчика стала бесплатной, и в 2001 году её исходный код был раскрыт под лицензией GPL v2.

Название "Сталкер" или Stalker образовано от английских слов "Screen TALKER", обыгрывающих альтернативное прочтение смысла термина screen reader. Намёк на Стругацких является лишь игрой слов и случая.

"Сталкер" представляет собой резидентную программу, занимающую около 43 килобайта оперативной памяти. Она может быть загружена как в основную (conventional), так и в верхнюю (upper) память. "Сталкер" предназначен для работы на IBM-PC-совместимых компьютерах под управлением MS-DOS-совместимых операционных систем и способен обеспечить речевой и звуковой интерфейс практически с любыми программами, работающими в текстовых режимах, включая режимы 40*25, 80*25, 132*25, 80*30 и 80*50.

Данная программа экранного доступа в своё время не получила столь же широких известности и распространения среди незрячих пользователей MS-DOS, как некоторые из вышеупомянутых аналогов. От части это могло быть связано как с относительно высокой стоимостью на этапе коммерческого распространения в 90-х годах (100 долларов против 10 долларов у основных аналогов), а от части с некоторыми особенностями, которые, возможно, оказались сложны для быстрого освоения рядовыми пользователями, хотя были ориентированы на повышение эффективности профессиональной работы за компьютером в приложениях общего назначения. Эти особенности могут показаться непривычными и для пользователей программ экранного доступа на современных операционных системах для настольных компьютеров и ноутбуков, и они в чём-то ближе к невизуальной работе с сенсорными устройствами.

Главная характерная особенность "Сталкера", отличающая его от других программ экранного доступа, состоит в широком использовании мыши в качестве одного из основных органов управления программы. В момент загрузки "Сталкера" мышь утрачивает свою обычную функциональную нагрузку и переходит в его монопольное владение.

Мышь, перехваченная "Сталкером", управляет его специальным невидимым курсором, передвигающимся по текстовому содержимому экрана. Каждому положению мыши на коврике соответствует некоторая позиция (знакоместо) на экране. При переходе из позиции в позицию мышь издаёт характерные звуки посредством спикера. Кнопки мыши используются для переключения режима работы клавиатуры, среди которых есть прямая передача клавиатурных команд, режим получения информации о состоянии "Сталкера" и режим изменения настроек "Сталкера".

В процессе работы "Сталкер" делит экран с текстовой информацией на некие условные прямоугольные области, называемые "окнами", с которыми и осуществляется дальнейшее взаимодействие пользователя программы экранного доступа. Предполагается добиваться наиболее близкого соответствия границ этих областей с визуальными границами видимых на экране областей интерфейса программ, например, таких как панели DOS Navigator.

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

И наконец, "Сталкер" способен отслеживать изменения заданных объектов, сообщая пользователю динамическую картину содержимого экрана.

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

Все настройки, связанные с окнами, объектами, зонами слежения за событиями на экране, а также механизм автоматического отслеживания и чтения экранного вывода в "Сталкере" могут быть заданы отдельно для каждого приложения, что позволяет создавать, сохранять и автоматически применять так называемые "конфигурации". Это схоже с концепцией модулей поддержки определённых приложений в во многих современных программах экранного доступа.

Всё это позволяло, после освоения принципов работы со "Сталкером" и вдумчивого конфигурирования программы под собственные нужды, достаточно эффективно взаимодействовать с приложениями общего назначения в текстовом режиме, даже когда они обладали довольно сложными многопанельными и значительно визуализированными по тем временам интерфейсами.

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

Именно исходя из этих соображений, готовая бинарная сборка и исходный код программы экранного доступа "Сталкер" и были в 2024 году опубликованы на сайте разработчика в разделе "Дела давно минувших дней". Этот проект содержит результат достаточно объёмной исследовательской и экспериментальной работы, и теперь все, кому потребуется данная информация, смогут сократить свой путь при помощи изучения и использования готового исходного кода под свободной лицензией.

"Сталкер" написан Игорем Порецким на языке программирования Forth (стандарт Forth-83 с незначительными доработками Александра Ларионова: транслятор GP-Forth), и его основная кодовая база имеет менее двух тысяч строк. Также в его полный комплект поставки входит несколько дополнительных программ, в том числе программа редактирования файла конфигурации Stalkman, написанная Светланой Хазановой на языке Pascal. Кроме того, функциональность речевого вывода в "Сталкере" реализовывалась через резидентный речевой драйвер SDRV синтезатора "Фонемафон-5", лицензировавшийся международной лабораторией интеллектуальных систем "БелСИнт". Оригинальный бинарный драйвер SDRV для MS-DOS на сегодняшний день можно попробовать использовать со ссылкой на принципы свободного использование произведений, добросовестного использования (fair use), честного использования (fair dealing), или на другие подходящие концепции из различных юрисдикций. Исходный код альтернативной реализации синтезатора "Фонемафон-5" на языке C был в 2021 году официально опубликован под свободной лицензией MIT.


Метки


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