[g-a-devel] AccessibleTerminal Interface ?



Hi,

For now, Terminal widgets use the AccessibleText Interface to provide
their content. However line breaks make things hard, both in the
widget's code and the screen reader. I both wrote Brltty's atspi screen
driver and had a look how libvte provide the AccessibleText interface;
and what I wrote and read seemed quite uselessly tricky to my mind.

And it will be as much tricky for every xterm-like program. I had a
look at a lot of them, they usually consider a terminal as an matrix of
char, or as an array of variable-length lines of chars (so as to cope
with double-width caracters for instance). BTW, I am not aware of any
tty that would be capable to split and join lines (see man 5 termcap).

So I guess things would be a *lot* simpler for everybody with a
line-oriented AccessibleTerminal interface. The interface could even be
as simple as something like:

long AccessibleTerminal_getLineCount(AccessibleTerminal *obj);
long AccessibleTerminal_getCaretLine(AccessibleTerminal *obj);
AccessibleText *AccessibleTerminal_getLineText(AccessibleTerminal *obj, long int line);
SPIBoolean AccessibleTerminal_addSelection(AccessibleTerminal *obj, long int startLine, long int startOffset, long int endLine, long int endOffset);

and remaining selection and extents functions, and add-line,
remove-line, caret-moved and selection-changed events.

Maybe this could be discussed on irc some time?

BTW, having only insert and remove events is most often _not_ efficient
for terminals: having a replace event would be much useful to avoid
spurious refresh.

Regards,
Samuel



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]