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

MSAA und MSAM - Screenreader unter Windows9x und Windows NT



Hasan Karahasan

02.06.1999

MSAA und MSAM

Microsoft's Konzepte zur Zugaenglichkeit

Accessibility-Modelle fuer Blinde unter Windows 95 / -98 und Windows NT


Vorbemerkung
------------
Die zunehmende Verbreitung von "Windows NT" bringt auch ein neues
Konzept fuerScreenreader mit sich. Dieses Konzept heisst "MSAM". "MSAM"
steht fuer "Microsoft screen access model". Es handelt sich dabei um ein
von Microsoft forangetriebenes Softwarekonzept fuer Screenreader. Da auch
die "einfachen" Anwender gelegentlich mit Begriffen aus dieser Technik
konfrontiert sein werden, moechte ich das Modell nachfolgend
beschreiben. Die Beschreibung ist nicht vollstaendig und stark
vereinfachend, damit auch Nicht-Programmierer die Zusammenhaenge
verstehen. Durch die Vereinfachung koennen technische Ungenauigkeiten
entstehen, die fuer das Grundverstaendnis jedoch belanglos sind. Auch
moechte ich nicht bewerten, sondern nur vorstellen.

Vorbemerkung
------------
In einer grafischen Benutzungsumgebung oder englisch "Gui" fuer "grafical
user interface" werden die Bildschirminformationen an bestimmten Stellen
des Betriebssystems, den sogenannten "Hooks" zu deutsch "Haken",
"abgefangen" und sprachausgaben- und braillezeilengerecht aufbereitet.
Der Screenreader erstellt eine Datenbank mit allen
Bildschirminformationen. Diese Datenbank wird gemeinhin als
"Offscreen-Modell" bezeichnet. Bildschirminformationen sind z. B. die
angezeigten Objekte wie Buchstaben, Bitmaps etc und alle zugehoerigen
Eigenschaften wie Objekttyp, Schriftfont, Schriftgroesse, Schriftschnitt,
Forder- und Hintergrundfarbe, Pixelposition, Fokusposition und weitere
Angaben.

Unter Windows 3.1 und Windows 95/98 war es ueblich, dass jeder Hersteller
von Screenreadern sein eigenes Offscreen-Modell implementiert hat. Weil
es bisher keinerlei definierte Schnittstellenstandards fuer diese
Offscreenmodelle gab, war es fuer Hersteller von Anwendungsprogrammen,
aber auch fuer Microsoft selbst schwierig, die eigenen Programme in
dieser Hinsicht zu standardisieren. Es gab kaum Moeglichkeiten, ein
Programm objektiv also unabhaengig vom Screenreader auf seine Eignung mit
Screenreadern zu testen. Jeder Screenreader verhaelt sich naemlich derart
anders, dass ein Test von Anwendungsprogrammen unter gleichen
Voraussetzungen nur schwer moeglich ist.

Daher entschloss man sich in Redmond, zukuenftig die Schnittstellen zwischen
Screenreader und Betriebssystem zu vereinheitlichen und wesentliche
Komponenten von heutigen Screenreadern gleich in das Betriebssystem zu
integrieren. Bevor wir uns mit Windows NT und MSAM beschaeftigen, sollten
wir einen Blick auf Windows 95/98 werfen.


MicroSoft Active Accessibility (MSAA)
-----------------------------------
Der erste Schritt eines Microsoft-eigenen Zugangsmodells war MSAA,
"MicroSoft Active accessibility". MSAA ist eine Technik, bei der der
Screenreader durch das Anwendungsprogramm unterstuetzt werden muss, um ein
optimales Zusammenspiel zu gewaehrleisten. MSAA arbeitet nach dem
Client/Server-Prinzip. Der Screenreader ist der Client. Er fordert bei
Bedarf Informationen vom Server an. Der Server ist das jeweilige
Anwendungsprogramm. Es stellt dem Screenreader die gewuenschten
Informationen ueber seinen Bildschirm zur Verfuegung. Screenreader und
Anwendungsprogramm kommunizieren dabei ueber eine "IAccessible" genannte
Schnittstelle miteinander.

MSAA stellt die Elemente einer Benutzerschnittstelle z. B. einer
Textverarbeitung in Form von Com-Objekten dar. Diese Objekte enthalten
sogenannte "Eigenschaften", mit denen der Name des Objektes, seine
Bildschirmposition und andere vom Screenreader benoetigte Informationen
beschrieben werden. Ferner enthalten die Objekte bestimmte Funktionen,
sogenannte "Methoden". Ein Client also der Screenreader kann diese
Methoden aufrufen, um das Objekt dazu zu "bewegen", etwas ganz
bestimmtes zu tun.

Benutzerschnittstellen, die bereits im Betriebssystem vorhanden sind,
werden dabei von MSAA selbst bereitgestellt. Dazu gehoeren Elemente wie
Menues, Bildlaufleisten und die Elemente von Dialogboxen. Anwendungen,
die diese Schnittstellen verwenden, sind daher auch ohne eigene
IAccessible-Schnittstelle zugaenglich. Ein Server braucht MSAA nur dann
selbst zu unterstuetzen, wenn er eigene Benutzerschnittstellen verwendet.

Neben IAccessible kann der Screenreader auch ueber eine weitere
Schnittstelle, dem IDispatch, mit den MSAA-Com-Objekten kommunizieren.
Dadurch kann ein Client auch dann auf die Com-Objekte zugreifen, wenn
dieser in Visual-Basic geschrieben ist. Somit ist es moeglich, kleine
Tools in VB zu entwickeln, die von fornherein eigene
Screenreader-Faehigkeiten mitbringen. Es sind Programme denkbar, die
Anwendungsprogramm und Screenreader zugleich sind. So liesse sich zum
Beispiel ein ganz spezieller Web-Browser fuer Blinde entwickeln, der
Anwendungen erschliesst, die mit einer Kombination aus herkoemmlichem
Web-Browser und Screenreader schwer zugaenglich sind.

So schoen dieses Konzept auch klingen mag, es hat gravierende Nachteile. Ein
Anwendungsprogramm muss speziell mit MSAA-Unterstuetzung entwickelt
werden. Bei Programmen, die gerade im Entstehen sind, ist dieser Umstand
kein groesseres Problem. Aber alle alten Programme profitieren kaum von
MSAA. Das hat auch Microsoft erkannt.


Microsoft screen access modell (MSAM)
-----------------------------------
Bei der Entwicklung von MSAM hat Microsoft von Anfang an die Hersteller von
Screenreadern miteinbezogen. MSAM wird als Gemeinschaftsprojekt von den
Firmen Microsoft, Baum in Deutschland, der Once in Spanien und
der Firma Eurobraille in Frankreich und Rumaenien entwickelt.

Waehrend MSAA dem Screenreader nur ein bischen auf die Spruenge hilft,
geht MSAM erheblich weiter. MSAM besteht aus mehreren Softwaremodulen,
die es den Entwicklern von Screenreadern ermoeglichen, sehr zuverlaessig
arbeitende Programme zu schreiben. MSAM registriert den
Bildschirmaufbau und speichert die Informationen in geordneter form in
einer Art Datenbank ab. Diese "Datenbank" kann dann von Screenreadern
abgefragt werden. Desweiteren bereitet MSAM die Informationen so auf,
dass sie fuer Sprachausgaben und Braillezeilen leichter zugaenglich sind.


MSAM besteht aus den folgenden Softwarekomponenten.

- screen drawing data pump "sddp"
Diese Komponente ermoeglicht einem Screenreader, die
Bildschirmoperationen zu beobachten. Sddp greift dabei auf der Ebene des
Grafiktreibers indas System ein. Es faengt quasi die Informationen am
Grafiktreiber ab und speichert sie in Form definierter Datensaetze, den
Records ab. Sddp arbeitet als sogenannter Chain-Treiber. D. h. es klinkt
sich so in das System ein, dass das Betriebssystem meint, Sddp selbst sei
der Grafiktreiber. Dieser Mechanismus hat zur Folge, dass Sddp immer nach
dem jeweiligen Grafiktreiber installiert werden muss. Wird nach der
Installation von Sddp erneut ein Grafiktreiber installiert, weil
beispielsweise eine neue Grafikkarte in den Rechner eingebaut wurde, so
geht die Chain zu deutsch "Verkettung" verloren. Sddp muss also
nachinstalliert werden.

- screen element data base "sed"
Sed bildet eine dynamische Datenbank mit Informationen zu den
Bildschirmobjekten wie Bitmaps und Textzeichen. Die Informationen
enthalten jedoch keinen kontextuellen Bezug zueinander.

- meaningful object database (mod)
Mod stellt ebenfalls eine dynamische Datenbank allerdings mit
kontextuellen Informationen zur Verfuegung. Der Screenreader kann diese
Informationen abfragen. Es stellt zu den Objekten auch Eigenschaften
und Methoden bereit und ist daher mit MSAA vergleichbar.

- bitmap library
Enthaelt eine Bibliothek mit Bitmaps fuer Anwendungsprogramme, die
von sich aus besonders zugaenglich sein wollen.

- speech application programming interface (sapi)
Sapi ist eine Schnittstelle zum Ansteuern von Sprachausgaben. Durch die
Verwendung einer "genormten" Schnittstelle ist es dem Screenreader egal,
welche Sprachausgabe verwendet wird. Es laesst sich prinzipiell jede
Sprachausgabe einsetzen, fuer die ein Sapi-Treiber existiert. Derzeit
werden nur seriell angeschlossene Sprachausgaben unterstuetzt. Parallele
und USB-Sprachausgaben sollen folgen. Eine Unterstuetzung fuer interne
Sprachausgaben am Isa oder Pci-Bus ist nicht geplant.

Eine SAPI-Sprachausgabe enthaelt als Grundbaustein die sogenannte
"Engine". Die Engine kann als der eigentliche Sprachsynthesiser
angesehen werden. In der Engine findet die Umsetzung von Text nach
Sprache abgekuerzt "TTS" fuer "Text to Speech" statt. Die Engine liefert
als Ausgabe eine oder mehrere Modes. Eine "Mode" ist sozusagen eine ganz
bestimmte Grundstimme. Eine Mode ist parametrisierbar, d. h. sie laesst
sich in ihren Eigenschaften wie Tonhoehe, Betonung, Stimmhaftigkeit und
anderen Parametern varieren. Aus einer Mode wird schliesslich die"Voice"
abgeleitet. Eine Voice ist also eine auf den persoenlichen Geschmack
eingestellte Mode.

SAPI unterstuetzt den Parallelbetrieb mehrerer Sprachen. So kann man
beispielsweise drei Sprachausgaben installieren, weil einem die Engine
der ersten in deutsch gut gefaellt, die zweite besonders gut
amerikanisches Englisch und die dritte hervorragend franzoesisch spricht.
Zwei davon sind vielleicht als Software und die dritte als
Hardwaresynthesiser an einer seriellen Schnittstelle realisiert.
Demzufolge hat man mindestens drei Engines. Aus denen lassen sich
mehrere Modes und aus den Modes mehrere Voices ableiten. Die heutigen
Screenreader erlauben es, unterschiedlichen Situationen verschiedene
Voices zuzuordnen. Dadurch kann man sich sein Stimmenorchester ganz
individuell zusammensetzen.

- braille application programming interface (bapi)
Bapi ist eine Schnittstelle zum Ansteuern von Braillezeilen. Durch die
Verwendung einer "genormten" Schnittstelle ist es dem Screenreader egal,
welche Braillezeile angeschlossen wird. Es laesst sich prinzipiell jede
Braillezeile einsetzen, fuer die ein Sapi-Treiber zur Verfuegung steht.

BAPI und SAPI koennen auf Wunsch miteinander kommunizieren, um sich
"abzustimmen", welche Information gesprochen und welche in Braille
ausgegeben werden soll.

==========================
MSAM wird zunaechst fuer Windows NT und zu einem spaeteren Zeitpunkt fuer
Windows 95 und Windows 98 verfuegbar sein. Dabei machen sich MSAA und
MSAM laut MS keine Konkurrenz, sondern sie ergaenzen sich. Die einzelnen
MSAM-Komponenten sind multi-client-faehig, d. h. ein Server-Modul, was Dienste
fuer eine Client-Componente anbietet, kann mehrere Clients gleichzeitig
bedienen.

Microsoft wird mit den zukuenftigen Versionen von Windows xx einige
kleine Programme mitliefern, die rudimentaere Funktionen eines
Screenreaders bieten. Doch sagt MS selbst, dass die Boardmittel der
Betriebssysteme auch in Zukunft keinen "ausgewachsenen" Screenreader
ersetzen werden.

Quelle: http://www.eu.microsoft.com/enable/products/default-u.htm