Show TOC

TransparentContainerLocate this document in the navigation structure

Verwendung

Der TransparentContainer ist ein Oberflächenelement-Container, der keine visuelle Darstellung besitzt. Ein TransparentContainer-Oberflächenelement ist transparent und kann eine beliebige Anzahl von Oberflächenelementen aufnehmen. Zusätzlich ermöglicht das TransparentContainer-Oberflächenelement, die eingefügten Oberflächenelemente über das definierte Layout anzuordnen.

Das TransparentContainer-Element können Sie folgendermaßen verwenden:

  1. als Layout-Container (isLayoutContainer = true)

    In diesem Fall verwenden Sie dieses Element zum Layout von anderen Oberflächenelementen. Das TransparentContainer-Element selbst hat keinen Tabstopp und wird im barrierefreien Modus von einem Screenreader nicht angesagt.

  2. als gruppierender Container (isLayoutContainer = false)

    In diesem Fall verwenden Sie dieses Element zum Gruppieren anderer Oberflächenelementen. Das TransparentContainer-Element hat dann analog dem Group-Element eine semantische Bedeutung. Es hat einen Tabstopp, und es wird von einem Screenreader vorgelesen.

TransparentContainer und Barrierefreiheit

Das Vorlesen durch Screenreader im Rahmen der Barrierefreiheit ist nur sinnvoll, wenn

TransparentContainer.isLayoutContainer = false.

Der Text für die Barrierefreiheit wird bei einem TransparentContainer aus den Werten, die für die Eigenschaften tooltip und accessibilityDescription des TransparentContainer definiert sind ermittelt.

  • Wenn die unter 1. genannten Eigenschaften nicht gesetzt sind, dann wird für die Barrierefreiheit der Text der Werte für die Eigenschaften tooltip und text des UI-Elements SectionHeader verwendet.

  • Wenn weder die unter 1. noch die unter 2. genannten Eigenschaften gesetzt sind, wird für die Barrierefreiheit der Text der Werte für die Eigenschaften tooltip und text des Label-UI-Elements verwendet, das zu dem TransparentContainer gehört.

TransparentContainer und SectionHeader

Um die Überschrift eines TransparentContainer von einem Screenreader vorlesen zu lassen, setzen Sie TransparentContainer.isLayoutContainer = false. Dies bedeutet, dass der TransparentContainer selbst semantische Informationen enthält.

Zusätzlich verwenden Sie im TransparentContainer einen SectionHeader.

Use Cases

TransparentContainer als Layout für ein Formular

Sie können den TransparentContainer als gruppierendes Element für ein Formular verwenden, indem Sie als Titel den SectionHeader einfügen und darunter weitere UI-Elemente.

Zusätzlich legen Sie folgendes fest: TransparentContainer.isLayoutContainer = false. Damit definieren Sie, dass der TransparentContainer an sich wichtig ist und semantische Bedeutung hat.

Wenn Sie das TransparentContainer-Element unter dem Aspekt der Barrierefreiheit als gruppierenden Container verwenden, dann können Sie den Titel dieser Gruppe folgendermaßen vergeben:

  1. Wenn es keinen sichtbaren Gruppentitel geben soll, dann setzen Sie Werte für TransparentContainer.accessibilityDescription und TransparentContainer.tooltip.

  2. Mit dem SectionHeader-Element als sichtbaren Gruppentitel, das dann die Eigenschaft accessibilityDescription ersetzt bzw. repräsentiert.

In den diskutierten Fällen gehen Sie wie nachfolgend vor:

Gruppieren ohne Titel

Setzen Sie die Eigenschaft isLayoutContainer=false.

Stellen Sie einen Text, der den Gruppentitel repräsentiert, in der Eigenschaft accessibilityDescription zur Verfügung.

Gruppieren mit Titel

  1. Verwenden Sie das Element SectionHeader als Titel für das TransparentContainer-Element.

  2. Verwenden Sie die Eigenschaft labeledBy, um das TransparentContainer-Element mit dem Element SectionHeader zu verbinden.

Der Text und der Tooltip des SectionHeader-Elements werden automatisch als accessibilityDescription des TransparentContainer-Elements ausgegeben, falls dessen accessibilityDescription und tooltip leer sind.

TransparentContainer als Melting-Group-ähnliches UI-Element

Sie können einen TransparentContainer als Klammer verwenden, um festzulegen, dass mehrere Felder inhaltlich zusammengehören, z.B. bei Währungsangaben.

Beispiel

Sie finden ein Beispiel im System im der Component DEMO_UIEL_LAYOUT in der Applikation DEMO_UIEL_MELTING_GROUP.

Ein TransparentContainer wird zu einem Melting-Group-artigen UI Element, falls folgende Bedingungen erfüllt sind:

  1. keine Schachtelung weiterer Container im TransparentContainer

    Im TransparentContainer sollten nur UI-Elemente wie InputFields, DropDown-Listen, TextViews, etc. angeordnet sein

  2. die Eigenschaft isLayoutContainer muss auf FALSE gesetzt werden

    Da der TransparentContainer inhaltlich zusammengehörige Felder verbindet müssen Sie hier festlegen, dass TransparentContainer.isLayoutContainer = FALSE.

  3. es sollte ein Label mit Property islabelFor = <D des TransparentContainer> geben

    Sie setzen den Label vor den TransparentContainer. Der Label muss auf den TransparentContainer verweisen. Die entsprechenden Eigenschaften des Label werden dann für die Barrierefreiheit-Texte verwendet.

    Beispiel

    Beispiel zum barrierefreien Gruppieren:

    Wenn Sie beispielsweise einen Prüftext in einem TextView-Element hinter einem InputField-Element ausgeben möchten, verwenden Sie ein TransparentContainer-Element mit MatrixLayout (kein FlowLayout!), um das InputField-Element und dessen nachfolgenden Text zu gruppieren. Um das Ganze im Rahmen des bislang Gesagten barrierefrei zu machen, binden Sie noch ein Label an das TransparentContainer-Element (mit der Eigenschaft labelFor) und geben dem Feld und dem Prüftext noch einen zusätzlichen Tooltip. Der Tooltip wäre im Fall des Feldes hier optional, aber beim TextView-Element unbedingt erforderlich.

TransparentContainer nur für Layouting-Zwecke

In diesem Fall verwenden sie den TransparentContainer lediglich für reines Layouting.

Zusätzlich legen Sie fest, dass TransparentContainer.isLayoutContainer = true. Der Screenreader liest die Eigenschaft accessibilityDescription in diesem Fall nicht vor

Ordnen Sie bei der Verwendung als Layoutcontainer die Elemente so an, dass sich keine unerwarteten Verschiebungen der Tabulatorsequenz ergeben. Mit anderen Worten: Schachteln Sie TransparentContainer stets so, dass die Tabulatorsequenz nicht zwischen verschiedenen Gruppierungen hin- und herspringt.

Achtung

Verwenden Sie keine zu hohe Verschachtelungstiefe.

Implementierungsdetails

Laufzeit-Klasse

CL_WD_TRANSPARENT_CONTAINER

Eigenschaften im View Designer

Name

Typ

Anfangswert

Bindbar

id

STRING

(automatisch)

nein

accessibilityDescription

Übersetzbarer Text

ja

ariaLandmark

WDUI_ARIA_LANDMARK

None

ja

contextMenuBehaviour

WDUI_CONTEXT_MENU_BEHAVIOUR

inherit

nein

contextMenuId

WDY_MD_UI_ELEMENT_REFERENCE

nein

defaultButtonId

WDY_MD_UI_ELEMENT_REFERENCE

ja

enabled

WDY_BOOLEAN

true

ja

explanation

Übersetzbarer Text

nein

handleHotkeys

WDY_BOOLEAN

false

nein

height

STRING

ja

isLayoutContainer

WDY_BOOLEAN

true

nein

labeledBy

WDY_MD_UI_ELEMENT_REFERENCE

nein

scrollingMode

WDUI_SCROLLING_MODE

none

ja

scrollLeft

I

0

nein

scrollTop

I

0

nein

styleClassName STRING   ja

tooltip

Übersetzbarer Text

ja

visible

WDUI_VISIBILITY

visible

ja

width

STRING

ja

Aggregationen im View Designer

Name

Kardinalität

Typ

Element

0..n

UIElement

Hinweis

Weitere Eigenschaften, die über Vererbung zur Verfügung stehen, sind in den dazugehörigen übergeordneten Klassen definiert. Die dazugehörigen Oberflächenelemente sind:

Dynamische Programmierung

Für die dynamische Programmierung stehen dieselben Eigenschaften, Ereignisse und Aggregationen zur Verfügung wie im View Designer. Beachten Sie dabei die unterschiedlichen Schreibweisen.

Dynamische Programmierung der Eigenschaften

View Designer Name

Laufzeitname

Typ

accessibilityDescription

ACCESSIBILITY_DESCR

WDY_MD_TRANSLATABLE_TEXT

ariaLandmark

ARIA_LANDMARK

WDUI_ARIA_LANDMARK

ariaLandmark: Application

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-APPLICATION

ariaLandmark: Article

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-ARTICLE

ariaLandmark: Banner

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-BANNER

ariaLandmark: Complementary

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-COMPLEMENTARY

ariaLandmark: Contentinfo

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-CONTENTINFO

ariaLandmark: Form

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-FORM

ariaLandmark: Main

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-MAIN

ariaLandmark: Navigation

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-NAVIGATION

ariaLandmark: None

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-NONE

ariaLandmark: Search

CL_WD_TRANSPARENT_CONTAINER=>E_ARIA_LANDMARK-SEARCH

contextMenuBehaviour

CONTEXT_MENU_BEHAVIOUR

WDUI_CONTEXT_MENU_BEHAVIOUR

contextMenuBehaviour: inherit

CL_WD_TRANSPARENT_CONTAINER=>E_CONTEXT_MENU_BEHAVIOUR-INHERIT

contextMenuBehaviour: provide

CL_WD_TRANSPARENT_CONTAINER=>E_CONTEXT_MENU_BEHAVIOUR-PROVIDE

contextMenuBehaviour: suppress

CL_WD_TRANSPARENT_CONTAINER=>E_CONTEXT_MENU_BEHAVIOUR-SUPPRESS

contextMenuId

CONTEXT_MENU_ID

WDY_MD_UI_ELEMENT_REFERENCE

defaultButtonId

DEFAULT_BUTTON_ID

WDY_MD_UI_ELEMENT_REFERENCE

enabled

ENABLED

WDY_BOOLEAN

explanation

EXPLANATION

WDY_MD_TRANSLATABLE_TEXT

handleHotkeys

HANDLE_HOTKEYS

WDY_BOOLEAN

height

HEIGHT

STRING

isLayoutContainer

IS_LAYOUT_CONTAINER

WDY_BOOLEAN

labeledBy

LABELED_BY

WDY_MD_UI_ELEMENT_REFERENCE

scrollingMode

SCROLLING_MODE

WDUI_SCROLLING_MODE

scrollingMode: auto

CL_WD_TRANSPARENT_CONTAINER=>E_SCROLLING_MODE-AUTO

scrollingMode: both

CL_WD_TRANSPARENT_CONTAINER=>E_SCROLLING_MODE-BOTH

scrollingMode: none

CL_WD_TRANSPARENT_CONTAINER=>E_SCROLLING_MODE-NONE

scrollLeft

SCROLL_LEFT

I

scrollTop

SCROLL_TOP

I

styleClassName STYLE_CLASS_NAME STRING

tooltip

TOOLTIP

WDY_MD_TRANSLATABLE_TEXT

visible

VISIBLE

WDUI_VISIBILITY

visible: none

CL_WD_TRANSPARENT_CONTAINER=>E_VISIBLE-NONE

visible: visible

CL_WD_TRANSPARENT_CONTAINER=>E_VISIBLE-VISIBLE

width

WIDTH

STRING

View Designer Name

Laufzeitname

Kardinalität

Element

CHILDREN

0..n

Beispiel

Sie finden ein Beispiel für einen TransparentContainer als Melting-Group-ähnliches UI-Element im System in der Component DEMO_UIEL_LAYOUT in der Applikation DEMO_UIEL_MELTING_GROUP.