Barrierefreiheit in Web-Dynpro-ABAP-Anwendungen 
Um eine betriebswirtschaftliche Anwendung auch solchen Benutzern zugänglich zu machen, die auf Grund von Einschränkungen auf technische Unterstützung unterschiedlicher Art angewiesen sind, ermöglicht Ihnen das Web-Dynpro-Framework den Aufbau barrierefreier Anwendungen.
Eine wichtige Voraussetzung für die Gegebenheit der Barrierefreiheit ist das Vorhandensein eines Tooltips für jedes UI-Element. Jedes UI-Element bietet eine solchen Tooltip an.
Für ein UI-Element muss zur Unterstützung der Barrierefreiheit immer dann ein Tooltip gepflegt werden, wenn
das UI-Element keine Überschrift trägt
dem UI-Element kein Label zugeordnet ist
Elemente mit einer text-Property diese weder gesetzt noch gebunden haben (mit Ausnahme der Caption, bei der kein Tooltip geprüft wird). Zum Beispiel steht auf einem Button oder Link kein Text.
Für einige komplexere UI-Elemente muss immer ein Tooltip gepflegt werden, Beispiele hierfür sind die UI-Elemente Tree oder ProgressIndicator.
Beim Aktivieren Ihrer Component werden Sie durch einen entsprechenden Hinweis auf das Fehlen des Inhaltes der Tooltip-Eigenschaft aufmerksam gemacht, sofern dieser für die Barrierefreiheit der Anwendung nötig gewesen wäre. Sie haben jedoch auch die Möglichkeit, den Wert für die Tooltip-Eigenschaft dynamisch festzulegen. Diese Option wird von der Syntaxprüfung nicht mit erfasst.
Darüber hinaus soll die Tooltip-Eigenschaft natürlich immer gesetzt werden, um z.B. weiterführende semantische Informationen zum UI-Element zu vermitteln.
Fast alle UI-Elemente bieten zusätzlich die Eigenschaft accessibilityDescription an. Diese kann genutzt werden, um ersatzweise einen Titel aufzunehmen, wenn das UI-Element keinen sichtbaren Titel (Header) tragen soll oder kann. Im Gegensatz zum Tooltip, der eine semantische Erklärung des Zwecks des UI-Elements enthalten sollte, wird in der accessibilityDescription üblicherweise nur ein kurzer, Titel-ähnlicher Ausdruck eingetragen.
Hinweis
Informationen zu den einzelnen UI-Elementen finden Sie im Referenzteil dieser Dokumentation unter User-Interface-Elemente.
Bei der Entwicklung von Web-Dynpro-ABAP-Applikationen können Sie angeben, dass nach den Regeln der Barrierefreiheit vorgegangen werden soll. Dies ist für reine WDA-Applikationen und in das Portal integrierte WDA-Applikationen unterschiedlich.
Reine WDA-Applikationen
Die Angabe des barrierefreien Modus ist in die Web-Dynpro-Laufzeit integriert:
Geben Sie den barrierefreien Modus in der URL an:
...?sap-accessibility=X
Die Festlegung des barrierefreien Modus ist außerdem Bestandteil der Systemanmeldung.
Geben Sie den barrierefreien Modus bei Ihren Benutzerparametern im System an.
Wählen Sie dazu in der Transaktion SU01 für Ihren Benutzernamen den Register Parameter aus, fügen Sie die Parameter-ID ACCESSIBILITY_MODE mit dem Wert X ein und sichern Sie Ihre Eingaben.
Geben Sie den barrierefreien Modus bei den Parametern Ihrer Web-Dynpro-Applikation an. Wählen Sie dazu auf der Registerkarte Parameter bei Ihrer Web-Dynpro-Anwendung WDACCESSIBILITY mit dem Wert X aus und sichern Sie Ihre Eingaben.
Fragen Sie den barrierefreien Modus in der Web-Dynpro-Laufzeit ab:
Dazu steht in IF_WD_APPLICATION die Methode GET_IS_ACCESSIBLE zur Verfügung.
Weitere Informationen zu IF_WD_APPLICATION und den zugehörigen Methoden finden Sie im System in der Systemdokumentation.
Mit dieser Option wird intern ein Kennzeichen in der Laufzeit gesetzt, das von Anwendungen verwendet werden kann, um zusätzliche Informationen im HTML-Output-Stream auszugeben, so dass Bildschirmausleseprogramme die visuellen Informationen auf dem Bildschirm besser präsentieren können.
Nach dem Anmelden spielt dieser Parameter keine Rolle mehr.
Durch Abfragen dieses Kennzeichens können Sie prüfen, ob Barrierefreiheit erwünscht ist. Wenn die durch Web Dynpro ABAP angebotene Barrierefreiheit nicht ausreicht, beispielsweise bei der Anzeige von Grafiken, kann dann spezielle Hilfe angeboten werden.
Achtung
Beachten Sie, dass das Setzen dieses Kennzeichens keinerlei Aussagen über die Barrierefreiheit der jeweiligen Anwendung macht.
In das Portal integrierte WDA-Applikationen
Wenn Ihre WDA-Applikation in das Portal eingebunden ist (siehe auch Portal-Integration), dann können Sie den barrierefreien Modus auch im Portal angeben und abfragen.
Markieren Sie dafür im Portal in Ihren Benutzerprofil unter Allgemeine Informationen die Option Barrierefreiheit aktivieren (Screen-Reader erforderlich) und sichern Sie Ihre Eingaben. Diese Angabe wird von Web Dynpro ABAP entsprechend ausgewertet.
Standardmäßig werden während der Designzeit im Rahmen der Syntaxchecks Prüfungen auf die Barrierefreiheit durchgeführt.
Bei jeder Component gibt es dazu bei den Eigenschaften (über Doppelklick auf die Component zu erreichen) das Kennzeichen Barrierefreiheit-Prüfungen aktiv. Wenn Sie dieses Kennzeichen ausschalten, werden von der Entwicklungsumgebung während der Designzeit keine Prüfungen auf Barrierefreiheit für die entsprechende Component und ihre Views durchgeführt. Das ist jedoch nicht möglich, wenn die Component in der Transaktion SACC als barrierefrei gekennzeichnet ist.
Prinzipiell können keine semantischen Prüfungen durchgeführt werden, da das System nicht feststellen kann, ob z.B. der Inhalt eines Tooltips innerhalb eines gegebenen Kontexts sinnvoll ist oder nicht. Stattdessen wird abgeprüft, ob eine bestimmte Eigenschaft gesetzt und mit Inhalt belegt ist. Ist dies nicht der Fall, wird geprüft, ob stattdessen verwandte Eigenschaften gesetzt sind.
Hinweis
Beachten Sie, dass die Barrierefreiheit-Prüfungen nicht für Web-Dynpro-ABAP-Test-Anwendungen durchgeführt werden (temporäre Objekte im Paket $TMP). Dies gilt auch für die Anwendungen des Paketes SWDP_TEST.
Beachten Sie auch, dass diese Prüfungen nicht für die dynamische UI-Element-Programmierung gelten.
Im Folgenden sind die verschiedenen Prüfungen aufgeführt, die für die angegebenen UI-Elemente durchgeführt werden.
UI-Element-Prüfungen
UI-Element |
Art der Prüfung |
|---|---|
Wenn die text-Eigenschaft nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft tooltip statt. Eine Fehlermeldung wird ausgegeben, wenn z.B. ein Button oder ein Link mit einer Ikone weder die Eigenschaft text noch tooltip besitzt. |
|
Wenn die Eigenschaften text und label nicht gesetzt wurden, findet eine Überprüfung auf die Eigenschaft tooltip statt. Eine Fehlermeldung wird ausgegeben, wenn z.B. eine CheckBox weder die Eigenschaft text noch label noch tooltip besitzt. |
|
Wenn die Eigenschaft caption nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft accessibilityDescription statt. Eine Fehlermeldung wird ausgegeben, wenn z.B. eine Group weder die Eigenschaft caption noch accessibilityDescription besitzt. |
|
Wenn die Eigenschaften label und isDecorative nicht gesetzt wurden, findet eine Überprüfung auf die Eigenschaft tooltip statt. Eine Fehlermeldung wird ausgegeben, wenn ein tabulatorfähiges Image einen leeren tooltip besitzt. |
|
Es findet eine Überprüfung statt, ob die Eigenschaft label angegeben wurde. Wenn kein label gesetzt wurde und auch für das entsprechende gebundene Context-Element im ABAP-Dictionary kein Beschreibungstext angegeben wurde, findet eine Überprüfung auf die Eigenschaft tooltip statt. Eine Fehlermeldung wird ausgegeben, wenn z.B. ein TextEdit kein dazugehöriges label besitzt oder wenn ein DropDownByKey kein zugeordnetes label besitzt und auch im ABAP-Dictionary kein Beschreibungstext gepflegt wurde. |
|
Wenn die Eigenschaft caption nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft accessibilityDescription statt. Zusätzlich findet eine Überprüfung statt, ob für Spalten die Aggregation Header gesetzt ist bzw. ob die Aggregation Header sichtbar ist. Es findet keine Überprüfung auf die Eigenschaft tooltip statt. Eine Fehlermeldung wird ausgegeben, wenn ein Table weder eine caption noch eine accessibilityDescription besitzt oder wenn eine Spalte keinen (sichtbaren) Header besitzt. |
|
Wenn die Eigenschaft tooltip nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft accessibilityDescription statt. Eine Fehlermeldung wird ausgegeben, wenn z.B. eine CheckBoxGroup weder die Eigenschaft tooltip noch accessibilityDescription besitzt. |
|
Wenn die Eigenschaft layoutContainer nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft accessibilityDescription statt. Eine Fehlermeldung wird ausgegeben, wenn ein TransparentContainer die Eigenschaft layoutContainer=false und keine accessibilityDescription besitzt. |
|
Es findet eine Überprüfung statt, ob die Eigenschaft legendId des Legend-Elements (Calendar, DateNavigator, Table) gesetzt wurde. |
|
Es findet eine Überprüfung statt, ob die Eigenschaft tooltip gesetzt wurde. |
|
Wenn die Eigenschaft imageSource nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft text statt. |
|
Wenn die Eigenschaft description nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft tooltip statt. |
|
Es wird überprüft, ob die Eigenschaft caption.text gesetzt ist. Ist dies nicht der Fall, dann wird überprüft, ob caption.tooltip gesetzt ist. |
Sie können aus einer Web-Dynpro-ABAP-Anwendung eine andere Web Dynpro Anwendung starten. Dabei benutzen Sie z.B. einen Exit- oder Suspend-Plug. Damit auch die nachfolgende Anwendung im barrierefreien Modus läuft, müssen Sie nicht das Accessibility-Flag selbst in der URL für die nachfolgende Anwendung mitgeben. Statt dessen ist es möglich, das Feld automatisch mitzugeben, wenn die URL eindeutig für eine andere Web Dynpro ABAP Anwendung gedacht ist (Notation der Applikation in geschweiften Klammern: {App}). Dazu steht in der Methode CONSTRUCT_WD_URL der Klasse CL_WD_UTILITIES der optionale Parameter IN_FORWARD_ACCESSIBILITY_FLAG zur Verfügung.
Analog können Sie sich beim Generieren solcher URL das Feld anhängen lassen.