3.1.1.1 (K)Ein Offscreen Model für SUE

Aus SUE

Wechseln zu: Navigation, Suche

Die Einführung grafischer Benutzeroberflächen brachte große Probleme für Screenreader und demzufolge für sehgeschädigte Computernutzer. Zuvor, zu Zeiten textbasierter Mensch-Maschine-Interaktion, konnten Informationen relativ leicht aus dem Textbuffer ausgelesen und per Sprache oder Braille ausgegeben werden. Mit den GUIs jedoch enthielt der Buffer plötzlich nur noch einzelne Pixel, die aufwändig zu Objekten zusammengesetzt werden mussten. Man erstellte virtuelle Kopien des Bildschirms (Virtual Screen Copy, VISC), Datenbanken, die Informationen über die einzelnen Pixel enthielten und Auskunft darüber gaben, zu welchen Zeichen sie gehörten. Manipulierte Videotreiber oder OCR, auf das Videosignal oder den Videospeicher angewendet, konnten bestenfalls lexikalische Informationen über Bildschirminhalte sammeln, aber keine Auskunft über die eigentlichen Objekte liefern. Ein Strukturmodell musste her, das sogenannte Offscreen Model (OSM), das die Objekte meist baumartig angeordnet vorhält und bei Änderungen des Bildschirminhaltes entsprechend angepasst werden muss. Ein Filtermodul stellt die (einheitliche) Schnittstelle zwischen der jeweiligen Anwendung, dem Offscreen Model und dem Screenreader dar, sammelt Informationen aus unterschiedlichen Quellen (Hooks, Patches, (erweiterten) Grafischen Toolkits) ein und leitet sie eventbasiert gemäß unterschiedlicher Strategien an OSM und Screenreader weiter.

Hieraus entwickelten sich Bemühungen um einheitliche Accessibility APIs. Definierte Kochanek 1994 Offscreen-Modelle als Datenbanken [1], die die Struktur des Bildschirminhaltes nachbilden, so zählen Blenkhorn und Evans [2] neben der Datenbank auch assoziierte APIs zu den Bestandteilen des Offscreen-Modells. Kraus et al. [3] sprechen sogar von einem Framework, das alternative Repräsentationen von Elementen grafischer Benutzeroberflächen vorhält und verwaltet. Neben den Hooks werden auch hier Accessibility APIs erwähnt, zu denen unter Linux, speziell im Zusammenhang mit dem GNOME-Desktop und Corba, AT-SPI zählt. Das Toolkit-unabhängige Service Provider Interface (SPI) stellt über das GNOME Accessibility Framework eine konsistente und stabile API bereit, mit der Informationen aus laufenden Applikationen eingeholt werden können.

Dazu beschreibt das Accessibility Toolkit (ATK) diejenigen Interfaces, die GUI-Komponenten implementieren müssen, um accessible zu werden. Gail (GNOME Accessibility Implementation Library), die ATK-Implementierung für GTK-Widgets, kann als Bibliothek von einer GTK-Anwendung bei Bedarf dynamisch hinzugeladen werden. Sobald dies geschehen ist, sind Standard-GTK-Widgets grundsätzlich zugänglich.

Sie werden, zusammen mit anderen zugänglichen Widgets, im Accessible-Baum vorgehalten und können über das AT-SPI (beispielsweise aus Python-Code heraus über pyatspi) abgefragt und manipuliert werden. Dazu melden die Applikationen sich bei der ATSPI-Registry an, die sie in einer Liste verwaltet. Hilfstechnologien wie SUE informieren die Registry darüber, für welche Ereignisse der registrierten Anwendungen sie sich interessieren. Vermittelt über Remote Procedure Calls und Object Request Broker, die für jede Anwendung vorgehalten werden, können Hilfstechnologien so bei Auftreten der gewünschten Ereignisse direkt mit der Anwendung interagieren. Das händische Erstellen eines Offscreen-Modells ist nicht mehr nötig.

Damit diese Infrastruktur auch anderen Toolkits (z.B. Qt oder Mono) zur Verfügung steht, muss das ATK für diese Toolkits implementiert werden. Eine Nutzung auf anderen Desktops, speziell KDE, ist dann möglich, wenn eine D-Bus-Portierung für AT-SPI existiert [5].

Quellen:

[1] D. Kochanek: Designing an OffScreen Model for a GUI. In: W. Zagler, G. Busby, R. Wagner (Eds.) Proc. ICCHP'94. LNCS, Springer, Heidelberg (1994).

[2] P. Blenkhom, G. Evans: Architecture and requirements for a Windows screen reader. In: IEE Seminar on Speech and Language Processing for Disabled and Elderly People, S. 1-1ff. IEEE Press, New York (2000).

[3] M. Kraus, Th. Völkel, G. Weber: An Off-Screen Model for Tactile Graphical User Interfaces. In: K. Miesenberger, J. Klaus, W. Zagler, A. Karshmer (Eds.) Proc. ICCHP 2008. LNCS, Springer, Heidelberg (2008).

[4] GNOME Accessibility Project: GNOME Accessibility for Developers, 2002. http://developer.gnome.org/projects/gap/guide/gad/

[5] GNOME Accessibility Project: Investigation into AT-SPI D-Bus migration, 2008. http://live.gnome.org/GAP/AtSpiDbusInvestigation/Background

Persönliche Werkzeuge