Show TOC

HintergrundBarrierefreiheit in Web-Dynpro-ABAP-Anwendungen Dieses Dokument in der Navigationsstruktur finden

 

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.

Barrierefreie User Interfaces
Tooltip

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.

AccessibilityDescription

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 Hinweis

Informationen zu den einzelnen UI-Elementen finden Sie im Referenzteil dieser Dokumentation unter User-Interface-Elemente.

Ende des Hinweises.
Integration

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:

    1. Geben Sie den barrierefreien Modus in der URL an:

      ...?sap-accessibility=X

      Die Festlegung des barrierefreien Modus ist außerdem Bestandteil der Systemanmeldung.

    2. 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.

    3. 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.

    4. 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 Achtung

    Beachten Sie, dass das Setzen dieses Kennzeichens keinerlei Aussagen über die Barrierefreiheit der jeweiligen Anwendung macht.

    Ende der Warnung.
  • 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.

Prüfungen während der Designzeit

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 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.

Ende des Hinweises.

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

Button

ButtonChoice

LinkToAction

LinkToURL

ToggleButton

ToggleLink

ToolBarButton

ToolBarButtonChoice

ToolBarLinkToAction

ToolBarLinkToURL

ToolBarToggleButton

BreadCrumbStep

MultipleBreadCrumbStep

LegendItem

MultipleLegendItem

TextView

TreeNodeType

TreeItemType

MenuActionItem

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.

CheckBox

RadioButton

FileDownload

TriStateCheckBox

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.

Group

Tray

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.

Image

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.

InputField

DropDownByIndex

DropDownByKey

ItemListBox

TextEdit

ToolBarDropDownByIndex

ToolBarDropDownByKey

ToolBarInputField

FileUpload

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.

Table

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.

CheckBoxGroup

RadioButtonGroupByIndex

RadioButtonGroupByKey

RoadMap

DateNavigator

PhaseIndicator

TabStrip

ToolBar

GeoMap

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.

TransparentContainer

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.

Legend

Es findet eine Überprüfung statt, ob die Eigenschaft legendId des Legend-Elements (Calendar, DateNavigator, Table) gesetzt wurde.

ProgressIndicator

ValueComparison

BusinessGraphics

GeoMap

IFrame

Es findet eine Überprüfung statt, ob die Eigenschaft tooltip gesetzt wurde.

MenuActionItem

Wenn die Eigenschaft imageSource nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft text statt.

Phase

MultiplePhase

RoadMapStep

Wenn die Eigenschaft description nicht gesetzt wurde, findet eine Überprüfung auf die Eigenschaft tooltip statt.

Tab

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.

Automatisches Weiterleiten des Kennzeichens für Barrierefreiheit

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.