Show TOC

Barrierefreiheit in Web-Dynpro-ABAP-AnwendungenLocate this document in the navigation structure

Verwendung

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.

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 in folgenden Fällen ein Tooltip vorhanden sein:

  • Das UI-Element hat keine Überschrift.

  • Dem UI-Element ist kein Label zugeordnet.

  • Elemente mit einer text-Property haben diese weder gesetzt noch gebunden (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.

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

Informationen zu den einzelnen UI-Elementen finden Sie unter Referenz: UI-Elemente.

Integration

Bei der Entwicklung von Web-Dynpro-ABAP-Anwendungen können Sie angeben, dass nach den Regeln der Barrierefreiheit vorgegangen werden soll. Dies ist für reine WDA-Anwendungen und in das Portal integrierte WDA-Anwendungen unterschiedlich.

  • Reine WDA-Anwendungen

    Sie haben folgende Möglichkeiten, den barrierefreien Modus einzuschalten:

    • Sie geben den barrierefreien Modus in der URL mit dem Parameter ?sap-accessibility=X an (siehe Applikationsparameter und URL-Parameter):

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

    • Sie geben Sie den barrierefreien Modus bei Ihren Benutzerparametern im System an.

      Wählen Sie dazu in der Transaktion SU01 für Ihren Benutzernamen den Parameter ACCESSIBILITY_MODE mit dem Wert X.

    • Sie geben den barrierefreien Modus bei den Applikationsparametern Ihrer Web-Dynpro-Anwendung an (siehe Applikationsparameter und URL-Parameter). Wählen Sie dazu auf der Registerkarte Parameter bei Ihrer Web-Dynpro-Anwendung WDACCESSIBILITY mit dem Wert X aus.

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

      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.

  • In das Portal integrierte WDA-Anwendungen

    Wenn Ihre WDA-Anwendung in das Portal eingebunden ist (siehe 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

Die Barrierefreiheit-Prüfungen werden nicht für Web-Dynpro-ABAP-Test-Anwendungen durchgeführt (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

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