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 _______________________________________________ Gnome-accessibility-devel mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel
