[Homeros] I: AT-SPI без Гнома

Michael Pozhidaev msp на altlinux.ru
Вс Авг 3 10:28:49 MSK 2014


Привет всем!

Новые дела, но снова только для разработчиков. Как известно, Гном не
является необходимым для работы функций вспомогательных приложений в
оконной среде. Другое дело, что сама Орка сильно привязана к нему. На
деле это очень неудобно, потому что эффективно работать в Гноме тяжело,
а совсем без Орки теряются Скайп, Firefox и прочее.

Большой соблазн разорвать цепочку atspi-Орка. Поэтому ниже по ссылке
есть гит проекта GuideCraft.  В нём путём экспериментов установлено
общение с AT-SPI для отловли событий из него. На деле по замыслу
GuideCraft должен состоять из двух больших компонент - AT (в смысле
Assistive Technology) и WM (в смысле Window Manager), и если последний
пока только в виде черновых фрагментов кода, то первый можно
развивать. У меня он уже читает меню и ловит некоторые виджеты при
обозрении форм. На деле это, наверно, последняя версия, которую можно
смотреть в минимальном объёме без лишних хвостов. Далее речь будет
посылаться в libdbusspeech (см. моё предыдущее сообщение), будут завязки
на locale, конфиг и пр.

Чтобы активировать ключевые механизмы нужно:

1. В ~/.bash_profile добавить 
export GTK_MODULES=atk-bridge:gail

2. В ~/.xinitrc нужно добавить запуск at-spi2-registryd, самого
guidecraft и либо запуск xterm напрямую, либо какого-нибудь тривиального
оконного менеджера, у меня это dwm. То есть должно быть что-то вроде:

exec &> /tmp/log.txt 
/usr/libexec/at-spi2-registryd &
~/git/guidecraft/build/guidecraft &
exec /usr/bin/dwm 

Далее если запустить gedit, то он уже будет реагировать. Когда AT-SPI
работает, он своим клиентам шлёт массу событий, которые привязаны к
некоторому объекту. Каждый объект должен поддерживать несколько
интерфейсов (Component, Action, Selection, EditableText и др.), и все
поддерживают Accessible. Разбор этого делается в классе
EventConsumer. По существу разбирается неплохо, вопрос только чтобы
добавить обработчики на все события, которые давали бы полноценную
работу. 

Сразу скажу, что firefox не заговорит, потому что ему нужно отдельно
сказать включить функции невизуального доступа. 

Ссылка на git:

http://git.altlinux.org/people/msp/public/guidecraft.git 

За сим пока всё! Надеюсь, будут ещё новости. Вопросы и предложения, а
главное патчи, приветствуются. :))

-- 
Michael Pozhidaev. Tomsk, Russia.
Russian info page: http://www.marigostra.ru/
English info page: http://www.marigostra.com/


Подробная информация о списке рассылки Homeros