2006-12-05 23:50:24

by Samuel Thibault

[permalink] [raw]
Subject: SAK and screen readers

Hi,

BrlTTY is a screen reader: it is a deamon run as root on machines used
by blind users for getting the content of the screen via braille or
speech.

BrlTTY, like other screen readers (susebl, yasr, ...) needs to open
/dev/tty0 for performing various actions, namely:

- VT_ACTIVATE
- GIO_UNISCRNMAP
- GIO_UNIMAP
- KDFONTOP
- VT_GETHIFONTMASK
- VT_GETSTATE
- KDGETMODE
- TIOCSTI
- KDGKBMETA
- KDGKBMODE

The problem comes when using SAK: brltty gets killed because it owns an
fd on /dev/tty0. This is a problem since the blind user then just can't
use her computer any more...

Some of the actions above are not directly related to the current VT, so
these could use a generic VT handle ; but at least KD* and TIOCSTI need
to be directed to the current VT, so brltty really needs to have an fd
on the current VT tty.

Could there be a solution for brltty yet not being killed by SAK? (like
letting brltty just nicely close his fd for the current VT, and then
re-open it later)

Samuel


2006-12-06 00:28:42

by Thomas Tuttle

[permalink] [raw]
Subject: Re: SAK and screen readers

On December 05 at 18:50 EST, Samuel Thibault hastily scribbled:
> The problem comes when using SAK: brltty gets killed because it owns an
> fd on /dev/tty0. This is a problem since the blind user then just can't
> use her computer any more...
> <snip>
> Could there be a solution for brltty yet not being killed by SAK? (like
> letting brltty just nicely close his fd for the current VT, and then
> re-open it later)

How about this?

brltty launches a child process that opens the VT and pipes data back
and forth to the parent process via pipes or fifos.

When the SAK is pressed, the child process will die, and the parent
process will simply relaunch it.

It seems like any solution that involves the kernel not killing brltty
will compromise the (admittedly rudimentary) security that the SAK
offers.

Hope this helps,

Thomas Tuttle


Attachments:
(No filename) (840.00 B)
(No filename) (189.00 B)
Download all attachments