Hinweis: Folgende Designerweiterungen sind für 1.1 nicht für Entwicklung und Testing vorgesehen:
#1614 ; #1819 ; #1864 ; #1992 ; #2171 ; #2246 ; #2290; #2317 ; #2319 ; #2336; #2536
Folgende übergreifende Themen sind für 1.1 nicht für Entwicklung und Testing vorgesehen:
Jedes Formular besteht aus einer Kopfzeile (Header), dem Inhalt und einer Fußzeile (Footer). Diese müssen als Regionen ausgezeichnet werden:
Das Formular ist im Code als Region gekennzeichnet, deren Beschriftung sowohl den Formulartitel als auch den Badgetext beinhaltet im Format “[Formulartitel] – [Badgetext]”.
Innerhalb eines Formulars werden Elemente entsprechend der visuellen und inhaltlich logischen Reihenfolge mit der Tabulatortaste fokussiert.
Optional können auf-/zuklappbare Zwischensektionen (Akkordeons) oder Formularfeldgruppen (siehe unten: Formularfeldgruppen) verwendet werden.
Formulare sind entweder direkt auf, der in der Regel, hellgrauen Hintergrundfläche positioniert, oder als Modal zentriert in der Fenstermitte.
Bei Anzeige auf dem grauen Hintergrund besteht jeweils ein Abstand von 48 Pixeln nach oben und unten zum nächsten Element. In der Vertikalen fügen sie sich an das jeweilige Seitenlayout ein (siehe Raster und Breakpoints).
Bei Anzeige in der Modalansicht wird der Hintergrund mit einer halb transparenten Fläche abgedunkelt. Elemente im Hintergrund sind dann nicht mehr mit der Tastatur erreichbar und sind auch mit der Maus nicht mehr bedienbar.
Falls der Inhalt des Modals zu hoch ist, so dass Scrollen erforderlich ist, bleibt ein Abstand von 48 Pixeln zum oberen und unteren Fensterrand bestehen.
Das Modale Formular hat eine Maximalbreite von 800 Pixeln. Bei Bildschirmbreiten unter 800 Pixeln bleibt ein Abstand zum Fensterrand von 32 Pixeln nach rechts und links bestehen.
Bei Bildschirmbreiten oder -höhen unter 560 Pixeln nimmt das Formular die komplette Bildschirmbreite und -höhe ohne Abstand zum Rand ein.
Ab einer Formularhöhe unter 672 Pixeln ist der Header des Formulars nicht mehr sticky, d.h. er verschwindet beim Scrollen. Der Footer bleibt sticky.
Unterhalb von 432 Pixeln Formularhöhe bleibt auch der Formularfooter nicht mehr sticky.
Im Formular gelten in der vertikalen folgende Abstandsregeln zwischen Elementen (gültig für alle Formularbreiten):
Header
Akkordeons
Eingabe-/Auswahlfelder
Element-Gruppen
Tabellen/Listen
Zwischenüberschriften
Hinweistexte (Hinweise Typ 3)
Formularfeldunabhängige Validierungsfehler
Footer
(immer wenn hier von “Eingabe-/Auswahlfeldern” gesprochen wird, werden hier alle Typen einzeilig/mehrzeilig/durchsuchbar/... gemeint einschließlich der Elemente Radiobutton, Checkboxen, Toggle-Elemente)
Stickieness
Innerhalb des Formularbereichs wird ein vom Seitenlayout abweichendes Grid verwendet (siehe Raster & Breakpoints)
Das Formularraster besteht aus 12 Spalten mit einem fixen Spaltenabstand von jeweils 16 Pixeln. Der Abstand zum Formularrand beträgt bei allen Formularbreiten überhalb von 720 Pixeln 88 Pixel. Die Spaltenbreiten passen sich dementsprechend an (je nach Gesamtbreite des Formularbereichs).
Innerhalb einer Formulargruppe wird erneut ein 12-Spaltiges Raster angewendet, in dem Formularfelder platziert werden können. Spaltenabstände je 16px.
Durch die im folgenden definierten Maximal- und Minimalbreiten von Formularfeldern ist sichergestellt, dass mögliche Validierungsfehler noch unter dem Feld dargestellt werden können. Sie gelten für alle diese Formularelemente:
Folgende Elemente füllen unabhängig von der Formularbreite immer alle 12 Spalten des Formularrasters:
Somit können nie zwei Elemente dieser Typen nebeneinander angeordnet werden.
Einzelne Buttons (außer sie gehören zu einer Komponente, wie beispielsweise der Entfernen-Button von Formularfeldern oder Gruppen) werden immer in einer eigenen Zeile platziert.
Bei semantisch zusammenhängenden Feldern wie Beispielsweise Straße + Hausnummer oder Postleitzahl + Ort ist darauf zu achten, dass diese sich in mehrspaltigen Layouts (alle Formularbreiten über 480 Pixel) für alle Screengrößen nebeneinander befinden und nicht voneinander getrennt umbrechen.
TABLE
Die unterstützte Minimalbreite von Formularfeldern beträgt 320 Pixel.
Falls in einer Zeile mehrzeilige Labels, Hinweistexte am Feld oder Validierungsfehler vorkommen, so wird das Element entsprechend höher und die darauf folgende Zeile rutscht als ganzes nach unten.
Einzelne Buttons in Formularen rutschen immer in eine eigene neue Zeile und werden nicht neben anderen Eingabe/Auswahlelementen angezeigt. Eine Ausnahme bilden Buttons, die Teil einer Komponente sind (wie beispielsweise Entfernen-Buttons an Formularfeldern oder Formularfeldgruppen) – diese dürfen auch neben anderen Elementen platziert sein.
Durch die Auswahl eines Wertes in einem Auswahlfeld, können Folgefelder eingeblendet bzw. aktiviert werden. Wurden die Folgefelder befüllt und der Wert im ersten Auswahlfeld wird anschließend geändert, so wird der Inhalt der Folgefelder standardmäßig zurückgesetzt/geleert. Dies geschieht im Standardfall ohne, dass vor Zurücksetzen eine Sicherheitsabfrage erscheint.
Die Aktualisierung der Folgefelder findet erst dann statt, wenn ein Nutzer den entsprechenden Wert in der Auswahlliste ausgewählt hat. Die Aktualisierung erfolgt nicht beim Navigieren in der Auswahlliste.
Wird der Initialzustand durch Auswahl des Wertes “–” (wenn kein Pflichtfeld) oder mit der Rückgängig-Funktion wiederhergestellt, so werden die Folgefelder wieder geleert und deaktiviert bzw. ganz ausgeblendet.
Sonderfall, wenn es sich bei dem Feld mit Konsequenzen für Folgefelder um ein durchsuchbares Auswahlfeld handelt: Wurde bereits ein Wert ausgewählt und die Folgefelder befüllt und anschließend wird in dem durchsuchbaren Auswahlfeld ein ungültiger Wert eingegeben und das Feld wird verlassen, so wird der entsprechende Fehler am Feld angezeigt (siehe Element durchsuchbares Auswahlfeld). Die nachfolgenden Felder bleiben befüllt, werden jedoch als deaktiviert dargestellt. Wird anschließend im durchsuchbaren Auswahlfeld ein neuer gültiger Wert ausgewählt, so werden die Folgefelder zurückgesetzt. Wird der alte Wert wieder ausgewählt, so bleiben die vorherigen Werte bestehen und die Felder werden wieder aktiviert.
Werden Felder zurückgesetzt/geleert, an denen vorher Validierungsfehlermeldungen bestanden, so werden auch die Fehlerzustände an den geleerten Feldern entfernt. Dies gilt auch für die Standardmeldung “Pflichtfeld nicht befüllt.” Wurden diese Fehler zu dem Zeitpunkt bereits im Fehlermeldungsbanner am Formularkopf angezeigt, so werden die entprechenden Einträge im Meldungsbanner deaktiviert.
Wichtig: Durch eine Wertänderung im Auswahlfeld dürfen immer nur nachfolgende Felder aktualisiert werden. Eine Wertänderung darf sich nie auf darüberliegende Elemente auswirken.
Falls Abhängigkeiten zwischen Feldern über mehrere Formularebenen hinweg bestehen, also zwischen Eltern- und Kindformularen, können Absprünge in Kindformulare temporär verhindert werden, wenn im Elternformular Eingaben entfernt oder Fehler generiert werden, welche mit dem Kindobjekt in Verbindung stehen.
Im Fall eines erzeugten Fehlers an einem solchen Formularelement im Elternformular wird standardmäßig zum Zeitpunkt der Wertübernahme der Akkordeoninhalt, in dem die Unterobjekte gelistet sind (als Tabelle oder als Karten) temporär durch einen Platzhalter ersetzt (Details zu Platzhalter siehe Akkordeons). Der Platzhalter weist darauf hin, dass die Inhalte des Akkordeons und damit die Absprünge in die Unterobjekte erst wieder nach Erfüllung einer Bedingung, z. B. der Befüllung eines Pflichtfeldes oder Behebung von Fehlern, sichtbar und bearbeitbar sind. Im Hinweistext ist so genau wie möglich zu beschreiben, welche Nutzeraktion zum Reaktivieren der Akkordeoninhalte erforderlich ist. Nach Ausführen der entsprechenden Nutzeraktion, bspw. dem Beheben der zuvor erzeugten Fehler im Hauptformular, verschwindet der Platzhalter und die Unterobjekte werden wieder sichtbar und bearbeitbar.
Wann das temporäre Erscheinen des Platzhalters vorkommt, welche Feldbearbeitung dieses auslösen kann und welche Bearbeitung den Platzhalter wieder entfernt, wird durch die Fachlichkeit definiert und ist daher in Userstories im Detail zu beschreiben.
Falls es fachlich gewünscht ist, so können Werte in den Folgefeldern bei einer Wertänderung auch übernommen werden. Falls dies der Fall sein soll, so ist dies in den Userstories zu beschreiben. Dies ist nur dann zu empfehlen, wenn die Folgefelder identisch sind (gleiche Bezeichnung).
Falls bei einer Wertänderung eine Sicherheitsabfrage erscheinen soll, so ist dies ebenfalls in den Userstories zu beschreiben. Dies ist zum Beispiel dann sinnvoll, wenn durch die Wertänderung sehr viele Daten zurückgesetzt werden, muss aber je nach fachlicher Relevanz im Einzelfall entschieden werden. Details zum Anzeigezeitpunkt, Fokussetzung und Verhalten (siehe Modialog: Sicherheitsabfrage) sowie bezüglich der Formulierung der Sicherheitsabfrage (siehe Meldungskonzept: Sicherheitsabfragen - Formulierungsregeln) sind in den entsprechenden Abschnitten zu finden.
Der Formular Header kann folgende Elemente beinhalten:
Die Ausgabereihenfolge für den Screenreader ist: Zuerst Formulartitel, dann der Status-Badge, dann der “Weitere Aktionen”-Button.
Der Formular Header ist bis zu einer Formularhöhe von 672 Pixeln sticky. Bei kleineren Formularhöhen verschwindet er beim Scrollen.
Ein Sonderfall ist der Status “Auskunfssperre” bei einer Person. Da diese sehr wichtige Information von Nutzenden zuerst gelesen werden und sofort ins Auge stechen muss, ist dieses Badge über dem Formulartitel positioniert und der komplette Formular Header färbt sich außerdem gelb. Außerdem ertönt beim Öffnen eines Formulars ein akustischer Signalton vom Typ Hinweis/Warnung (siehe Akustische Signale).
Damit die wichtige Information für Nutzer:innen sofort erkennen ist, wird das “Auskunftssperre-Badge” am Anfang des Formulartitels hinterlegt und gemeinsam ausgelesen. Die Hauptüberschrift des Formulars setzt sich also in diesem Fall aus Badge und Formulartitel zusammen. Die Ausgabereihenfolge für den Screenreader ist: Zuerst Status-Badge, dann Formulartitel, dann “Weitere Aktionen”-Button.
Während der Formulartitel normalerweise bei unter 672 Pixeln nicht mehr sticky ist, bleibt das Label “Auskunftssperre” auch bei kleineren Screengrößen sticky und somit immer sichtbar.
Der Formular Header ist bis zu einer Formularhöhe von 672 Pixeln sticky. Bei kleineren Formularhöhen verschwindet er beim Scrollen.
Der Formular Footer enthält verschiedene Aktionsbuttons zum Bearbeiten oder Schließen des Formulars:
Kann ein Formular nicht mehr durch eine Nutzeraktion bearbeitet werden (Beispiele: GVPs, welche sich bereits im Status “In Verwendung” befinden; Formulare in Verfahren, welche bereits den Status “Weggelegt” haben), so wird im Formular Footer nur noch der Schließen-Button angezeigt und alle Formularfelder werden im Read-only-Zustand angezeigt.
Wenn ein Formular generell editierbar ist, nur der Nutzer keiner Bearbeitungsrechte dafür besitzt, werden Primär- sowie Rückgängig- und Wiederholen-Button dauerhaft deaktiviert angezeigt und alle Formularfelder werden ebenfalls im Read-only-Zustand angezeigt.
Sobald in einem Formular mindestens ein Zeichen hinzugefügt/entfernt oder geändert wurde, wird der primäre Aktionsbutton aktiv und klickbar. Gleichzeitig wird auch der Rückgängig-Button (Undo) im Footer des Formulars aktiv und klickbar – Im Fall von Änderungen in Eingabefeldern allerdings erst bei Verlassen des Feldes. Nachdem eine oder mehrere Eingabe/n rückgängig gemacht wurde, wird der “Wiederholen”-Button (Redo) aktiv.
Nachdem die Aktion “Schließen” ausgeführt wurde, wird das Formular geschlossen und Änderungen werden nicht gespeichert. Falls ungespeicherte Änderungen vorliegen und die Aktion “Schließen” ausgeführt wird, erscheint eine Meldung vom Typ Sicherheitsabfrage.
Wenn Änderungen durchgeführt wurden und die Primäraktion im Footer eines Haupt- oder Nebenformulars (Anlegen/Speichern/Zuordnen) ausgeführt wird, so läuft im Button eine Animation ab, welche den Fortschritt des Speichervorgangs anzeigt (siehe unten: Erfolgsindikatoren):
Wenn Änderungen durchgeführt wurden und die Primäraktion im Footer eines Unterformulars (Hinzufügen/Übernehmen) ausgeführt wird, so gibt es keine Animation im Button und keinen Bestätigungston. Falls Validierungsfehler im Unterformular festgestellt werden, wird das entsprechende Fehlerbanner angezeigt (Details siehe unten: Validierungsfehlern an Formularen).
Je nach dem, ob es sich beim Formular um ein Haupt-/Unter-/Nebenobjekt handelt und ob es eine Neuanlage oder Bearbeitung ist, ist der primäre Aktionsbutton im Formular verschieden benannt. (Details siehe Navigationskonzept innerhalb GeFa: Übersicht der Objekttypen). Die sekundäre Aktion lautet immer “Schließen”.
Wenn das Laden von Formularinhalten länger dauert, so wird anstelle des Formulars ein Platzhalter mit Ladesymbol angezeigt.
Beispiel: Nutzende befinden sich im Splitview und haben das Formular von Person 1 geöffnet. Klicken Sie auf eine andere Person in der Personenliste, so wird das Ladesymbol anstelle des Formulars angezeigt, bis die Daten vollständig anzeigbar sind.
Der Ladezustand des Formulars ist fokussierbar, damit Nutzende den Ladezustand wahrnehmen können, wenn sie mit Enter oder Tab-Taste von der Liste aus ins Formular navigieren (Tastaturbedienung der Liste siehe Liste: Tastaturbedienung).
Sobald die Daten des Formulars vollständig geladen sind, verschwindet das Ladesymbol, alle Formularelemente werden angezeigt und der Tastaturfokus liegt auf dem ersten interaktiven Element im Formular.
Während Inhalte des Breadcrumbs noch nicht vollständig geladen sind, wird an Stelle des Pfades eine Ladeanimation angezeigt. (Details siehe Pfadnavigation: Ladezustand).
Durch Gruppen können innerhalb von Formularen Elemente gruppiert werden, bei denen ein inhaltlicher Zusammenhang besteht.
Der Gruppen-Kopf besteht aus:
Deaktivierte Formulargruppen enthalten jeweils:
Teilweise ist es auch möglich, weitere Gruppen hinzuzufügen. In der Regel ist es möglich, Gruppen nach Erstellung wieder zu entfernen. Teilweise muss mindestens eine Gruppe bestehen bleiben (je nach fachlicher Anforderung). Der Entfernen-Button wird in diesen Fällen entfernt, wenn nur noch eine Gruppe vorhanden ist.
Für die Darstellungsreihenfolge von Gruppen gilt:
Wird ein Formular im Read-Only-Zustand geöffnet, weil Nutzende beispielsweise keine Bearbeitungsrechte für das Formular besitzen, so werden die Entfernen-Buttons an Gruppen sowie die Hinzufügen-Buttons, sofern vorhanden, als deaktiviert dargestellt.
(siehe auch globale Definition zur Darstellung nicht verfügbarer Funktionalitäten)
Es ist auch möglich eine Gruppe zu deaktivieren. Nachdem eine Gruppe deaktiviert wurde, wird der Badge “Deaktiviert” dem Gruppentitel hinzugefügt. In der Regel werden interaktive Elemente wie Eingabefelder durch deaktivieren der Gruppe zu Read-Only-Feldern (je nach fachlicher Anforderung). Interaktive Elemente wie Links bleiben weiterhin klickbar. Wird die Gruppe wieder aktiviert, so verschwindet der Badge "Deaktiviert" wieder und Eingabeelemente werden ggf. wieder interaktiv.
Deaktivierte Formulargruppen sind auf-/zuklappbar. Die Aktion kann durch das Klicken des Akkordeon-Pfeil-Button rechts neben dem Gruppentitel durchgeführt.
Nachdem eine Formulargruppe deaktiviert wurde, bleibt sie aufgeklappt. Wenn Nutzende ein Formular öffnen, welches deaktivierte Gruppen enthält, werden sie standardmäßig zugeklappt dargestellt.
Bei Entfernen einer Gruppe erscheint in der Regel keine Sicherheitsabfrage, da die Aktion über den Formularfooter wieder rückgängig gemacht werden kann. Wenn durch Entfernen der Gruppe eine deaktivierte Gruppe wieder aktiviert wird, so erscheint beim Entfernen eine Meldung vom Typ Sicherheitsabfrage, in der auf die Konsequenzen des Entfernens (Reaktivierung der deaktivierten Gruppe) aufmerksam gemacht wird. Nur nach erneutem Bestätigen in der Meldung, verschwindet die Gruppe wieder und eingegebene Inhalte werden gelöscht. (Details zur Fokussetzung nach Entfernen einer Elementgruppe siehe Navigationskonzept innerhalb GeFa: Löschen und Entfernen)
Die Gruppen sollten im Code als Formularfeldgruppe ausgezeichnet werden. In der Screenreaderausgabe muss zusätzlich zum Label des in der Gruppe enthalteten Eingabe-/Auswahlelementes jeweils der Gruppentitel mit vorgelesen werden (Ausgabe: “[Gruppentitel (ggf. inkl. Badges] [Label]”). Beispiel:
Die Gruppe heißt “Kontoverbindung 1”. Darin enthalten sind die Formularfelder IBAN und BIC. Ausgelesen wird “Kontoverbindung 1 IBAN” und “Kontoverbindung 1 BIC”.
Innerhalb einer Elementgruppe wird erneut ein 12-Spaltiges Raster angewendet, in dem Formularfelder platziert werden können (Spaltenabstand je 16px).
Formulargruppen füllen immer die ganzen 12 Spalten im Formularlayout. Es dürfen keine 2 Formulargruppen nebeneinander platziert sein.
Eine Elementgruppe innerhalb einer Elementgruppe (Verschachtelung) ist nicht erlaubt.
Gruppen werden automatisch nummeriert. Der Gruppentitel besteht aus der Gruppenbezeichnung und der fortlaufenden Nummer. Die Nummer der Gruppe wird durch die Laufzeitkomponente bestimmt.
Die älteste Gruppe wird zuerst angezeigt und hat die Nummer “1”. Alle Gruppen werden aufsteigend und ohne Lücken nummeriert. Wird eine Gruppe hinzugefügt oder entfernt, werden die Zähler aller nachfolgenden Gruppen sofort angepasst.
Wenn in den Teilprojekten eine abweichende Logik
benötigt wird, muss diese in den Stories beschrieben werden.
Mit diesem Element können zusätzliche Eingabe-/Auswahlfelder zu einem Formular hinzugefügt werden. Standardmäßig können die von Nutzenden manuell hinzugefügten Felder auch wieder entfernt werden, falls die Felder zu einem späteren Zeitpunkt nicht mehr benötigt werden oder falls sie fehlerhaft hinzugefügt wurden.
Die hinzugefügten Felder können sein:
Das entfernbare Element zusammen mit den Entfernen-Button nimmt immer genau eine Zeile ein. NICHT erlaubt ist:
Falls aus fachlichem Grund mindestens ein Feld in der Feldliste bestehen bleiben muss, so ist dies in Userstories zu erwähnen. In diesem Fall wird der Entfernen-Button disabled dargestellt, sobald nur noch ein Feld vorhanden ist. Wird dann wieder ein weiteres Feld hinzugefügt, so wird mit Erscheinen des neuen Feldes auch der Entfernen-Button an beiden Elementen wieder aktiviert.
Falls fachlich eine Mindestanzahl von Feldern bestehen bleiben muss, die größer als 1 ist, so ist dies Nutzern über einen Hinweistext (Typ je nach Anwendungsfall, siehe Hinweistexte in Formularen) über dem ersten Feld mitzuteilen, die Entfernen-Buttons werden aber nicht automatisch beim Erreichen dieser Mindestzahl deaktiviert (erst bei 1). Nach Ausführen der Primäraktion im Formularfooter erscheinen ggf. Validierungsfehlermeldungen, falls die Mindestanzahl an Feldern unterschritten wird (sind in Userstories zu beschreiben).
Wenn die in den Listen enthaltenen Felder (beispielsweise durch die fehlenden Bearbeitungsrechte eines Nutzers nur Read-Only angezeigt werden, dann wird der Entfernen-Button neben dem Feld deaktiviert dargestellt. Gleiches gilt für den Hinzufügen-Button (falls vorhanden).
(siehe auch globale Definition zur Darstellung nicht verfügbarer Funktionalitäten)
Das Plus-Symbol im “[Eintrag] hinzufügen” Button ist als Layoutgrafik zu deklarieren.
Pro Maske dürfen innerhalb eines Inhaltsabschnitts nicht mehrere Felder mit identischer Bezeichnung vorkommen. Daher wird bei Feldern mit gleicher Bezeichnung im gleichen Inhaltsabschnitt standardmäßig entweder eine laufende Nummer an allen gleichnamigen Feldern angehängt oder es muss vom Nutzer eine Zusatzbezeichnung, welche die Felder unterscheidbar macht, definiert werden:
Der Hinzufügen-Button bezeichnet genau einen zusätzlichen Eintrag. Der Buttontext lautet dann “[Label des Feldes] hinzufügen”. Nach Klicken des Buttons gibt es zwei Möglichkeiten:
Sobald das neue Feld entfernt wird, ist der Hinzufügen-Button wieder sichtbar.
Werden mehrere Felder mit gleicher Bezeichnung in einem Inhaltsabschnitt hinzugefügt, so wird nach Hinzufügen eines weiteren Feldes dem Feldlabel jedes mehrfach vorkommenden Feldes eine laufende Nummer, beginnend mit 1 angehängt. Wird ein Feld aus der Liste entfernt, so wird die Nummerierung aller folgenden Felder angepasst, sodass lückenlos nummeriert ist. Wird das vorletzte Feld entfernt, so wird auch die Nummer am ersten Feld entfernt, werden, da dann keine Felder mehr doppelt vorkommen.
Über den Hinzufügen-Button kann mehr als ein Eintrag hinzugefügt werden und Nutzende müssen zunächst eine Auswahl treffen. Der Button ist mit dem Text “[Eintragstyp] hinzufügen” bezeichnet. In diesem Fall öffnet sich nach Klicken des Buttons ein Modal, in dem Nutzende zusätzliche Eingaben machen müssen:
Nach dem Schließen des Modals befindet sich der Fokus im neu hinzugefügten Feld. Außerdem wurden die Eingaben aus dem Modal folgendermaßen ins Feld übernommen:
Um die Bezeichnung oder den Feldtyp nach Schließen des Modales zu ändern, muss das Feld entfernt und neu hinzugefügt werden.
Wird ein Read-Only-Feld in einem Formular angezeigt, zum Beispiel weil es sich um einen automatisch generieren Wert handelt oder weil diese Information an anderer Stelle gesetzt wurde, so kann, je nach fachlicher Anforderung, die Möglichkeit bestehen, den Wert mit einem oder mehreren manuell eingegebenen Werten zu ersetzen. Dafür wird nach dem Read-Only-Feld ein tertiärer Button mit dem Label “[Label] bearbeiten” angezeigt.
Nachdem der Button “[Label] bearbeiten” geklickt wurde, erscheint darunter:
Am ursprünglichen Feld wird der Text „(deaktiviert)” dem Feldlabel hinzugefügt und der enthaltene Wert wird durchgestrichen dargestellt. Wird der „Entfernen”-Button neben dem neu hinzugefügten Feld bzw. an der Gruppe geklickt, so wird der Ursprungswert wieder aktiviert, so verschwindet der Labelzusatz „(deaktiviert)" wieder und die Schrift wird nicht mehr durchgestrichen dargestellt.
Trennlinnien können in Formularen verwendet werden, um Inhaltsbereiche zu separieren. Sie können sowohl im Hauptinhaltsbereich von Formularen, als auch in Formulargruppen vorkommen.
Sie dienen in der Regel nur zur visuellen Darstellung, jedoch nicht zur semantischen Untergliederung des Formulars.
Falls eine semantische Untergliederung erzielt werden soll, sind Zwischenüberschriften oder das Element “Formularfeldgruppe” einzusetzen.
In der Regel werden Trennlinien immer dann eingesetzt, wenn in einem Block von Eingabe- und Auswahlfeldern weitere Felder erst erscheinen, wenn eine bestimmte Auswahl getätigt wurde. Kann nur ein einziges Feld erscheinen, so muss keine Linie verwendet werden.
Die Linie befindet sich dann über den neu hinzugekommenen Feldern. Vor Erscheinen der zusätzlichen Felder wird noch keine Trennlinie angezeigt.
Erscheint durch eine Auswahl ein neuer Abschnitt von Feldern mit einer darüberliegenden Zwischenüberschrift oder ein weiteres Akkordeon im Formular, so wird (auch nach Erscheinen dieser Abschnitte) keine Trennlinie angezeigt.
Um den Inhalt von Formularen semantisch zu untergliedern können Zwischenüberschriften verwendet werden.
Die Überschriften sind so kurz und präzise wie möglich zu formulieren. Mehrzeiligkeit ist zu vermeiden. Bei sehr kleinen Screengrößen brechen sie jedoch wenn nötig um. Der Schrifttyp von Zwischenüberschriften ist “Subhead”. Die Überschriftenhierarchie im Code ist je nach
Aufbau der entsprechenden Maske von Designer:innen festzulegen.
Wird eine Zwischenüberschrift eingesetzt, so wird ein Abstand von 48 Pixeln zum darüberliegenden Element gesetzt.
Handelt es sich bei der Überschrift um das erste Element innerhalb des Formular- oder Akkordeoninhalts, wird kein zusätzlicher Abstand eingefügt.
Nicht eingesetzt werden können Zwischenüberschriften innerhalb von Elementgruppen, da diese bei aktiven Screenreader die Gruppenüberschriften überschreiben (siehe oben: Verhalten von Elementgruppen).
In Ausnahmefällen kann eine Zwischenüberschrift fokussiert angezeigt werden. Anwendungsfall: Bei Rückkehr aus einem Neuanlage-Modal in ein Formular mit Tabelle und darüberliegender Zwischenüberschrift bzw. Tabellentitel muss das über der Tabelle liegende Element fokussiert sein, damit Nutzende den geänderten Tabelleninhalt wahrnehmen können.
Die Überschrift ist in diesem Fall nur im Moment der Rückkehr fokussiert. Verschieben Nutzende den Fokus dann zu einem anderen Element, so kann der Fokus nicht wieder auf die Überschrift zurückgelegt werden (nur durch erneutes Öffnen des Neuanlage-Modals und anschließender Rückkehr).
Karten werden in Formularen eingesetzt, um Daten aus Unterformularen zusammenzufassen. Karten enthalten selbst keine bearbeitbaren Elemente (im Unterschied zur Komponente “Elementgruppe”).
Karten sollten nur eingesetzt werden, wenn für den Anwendungsfall weniger als 6 Objekte erwartet werden. Werden im Schnitt mehr als 6 Objekte angelegt, sollten diese z.B. in einer Tabelle aufgelistet werden.
Jede Karte besteht aus einem Kopf- und einem Inhaltsbereich:
Das einzige interaktive Element im Kartenkopf ist ein Sekundärbutton mit Icon. Dieser öffnet das Unterformular des Objekts auf einer neuen Seite oder in einem modalen Dialog. Je nach dem, ob das Unterformular bearbeitbar ist, oder nur lesend geöffnet werden kann, enthält der Button ein Stift-Symbol (Alternativtext “[Titel der Karte] bearbeiten”) oder ein Auge-Symbol (Alternativtext “[Titel der Karte] anzeigen”).
Die Mindesthöhe des Kopfbereichs beträgt 88 Pixel. Der Wert ergibt sich aus der Höhe des Buttons (40 Pixel) und einem äußeren Abstand von 24 Pixel.
Bei einem mehrzeiligen Titel, wird der Kopfbereich entsprechend höher.
Der Inhaltsbereich der Karte kann bis zu vier Elemente im Status “Read-Only” aufnehmen, jedoch mindestens ein Element.
Pro Zeile kann ein Element platziert werden. Die Inhalte werden vom Screenreader zeilenweise von oben nach unten ausgegeben.
Die Höhe des Inhaltsbereichs ergibt sich aus den angezeigten Elementen.
In Formularen können verschiedene Arten von Hinweismeldungen vorkommen. Je nach fachlicher Anforderung und Wichtigkeit des Hinweises ist zu entscheiden, welcher Typ eingesetzt wird. Generell sollten Hinweise sparsam und nur für wichtige Informationen verwendet werden.
Typ 1 Hinweise, die sich auf das gesamte Formular beziehen sind je nach fachlicher Anforderung entweder als graues Banner am Anfang des Formulars (unter dem Formularheader) oder am Formularende (über dem Formularfooter) positioniert. Es darf dabei nur eine der beiden Meldungen pro Formular vorkommen (oben oder unten).
Typ 2 Hinweise, die sich auf den gesamten Inhalt einer Akkordeon-Zwischensektion beziehen, sind als graues Banner unter dem Akkordeon-Header positioniert.
Typ 3 Hinweise, die sich nur auf Teilbereiche eines Formulars bzw. Teile eines Akkordeoninhalts beziehen, sind als grauer Text dargestellt. Sie befinden sich immer vor dem Element bzw. den Elementen, auf die sich der Hinweis bezieht. Bei Hinweisen zu einzelnen Formularelementen, wie z. B. Eingabe- oder Auswahlfeldern, die bereis einen programmatisch verknüpften Hinweisbereich enthalten, ist dieser zu nutzen.
Typ 1 und 2 werden jeweils als graues Banner dargestellt, welches die gesamte Formularbreite füllt. TYP 3 besteht aus reinem Text ohne Hintergrundfläche und fügt sich ins Formularraster ein (über alle 12 Spalten).
Hinweismeldungen bleiben beim Scrollen nicht sticky.
Hinweismeldungen aller Typen sind, falls vorhanden, direkt beim Öffnen des Formulars sichtbar.
Alle Hinweistypen sind folgendermaßen aufgebaut: “Hinweis: [Hinweistext]”
Optional kann darunter bei den Typen 1 und 2 eine Liste mit Links vorkommen.
Links (1-n): Es handelt sich um eine Liste. Jeder der Links springt zu einer neuen Seite.
Der Bereich der Hinweismeldungen 1 und 2 muss im Code als Region ausgezeichnet werden und die Beschriftung "Hinweis" erhalten. Typ 3 enthält keine Regionsauszeichnung.
Mehrere Hinweismeldungen im gleichen Bereich (form oben/unten) sollten nicht vorkommen. Es wäre aber theoretisch möglich, dass oben im Formular ein Hinweis angezeigt wird und unten ebenfalls.
Da in jedem Formular Validierungsfehler auftreten können (siehe unten: Validierungsfehlern an Formularfeldern), ist es auch möglich, dass ein Hinweis-Meldungsbanner und ein Fehlermeldungsbanner zur gleichen Zeit sichtbar sind. In diesem Fall sollte das Fehlerbanner über dem Hinweisbanner angeordnet sein.
Es wird unterschieden zwischen folgenden Arten der Validierung:
Details zum Validierungsverhalten siehe:
Bei allen Einzelelementen wie Eingabe-, Auswahlfeldern, Radio Button- und Checkboxen-Gruppen können Validierungsfehler vorkommen.
Es handelt sich hier um Fehler, die sich auf exakt eines dieser Element beziehen und durch die Korrektur dieses Elements behoben werden können.
Beispiele:
Nach Wertänderungen findet die tatsächliche Wertübernahme zu folgenden Zeitpunkten statt und in diesem Moment werden auch Frontendvalidierungen am Element durchgeführt:
Pflichtfeldvalidierungen ohne Wertänderung werden immer erst nach Ausführen der Primäraktion im Formularfooter durchgeführt.
Backendvalidierungen werden im Regelfall erst nach Ausführen der Primäraktion im Hauptformular und vorheriger Frontendprüfung angezeigt (siehe auch bei "Ablauf Front-/Backendvalidierung" und "Übergreifende Validierung zwischen Haupt- und Unterformularen").
Das Ausrufezeichen-Symbol neben der Meldung ist immer als Layoutgrafik zu deklarieren.
Zusätzlich zu den Validierungs-Fehlermeldungen, die an Einzelelementen wie Eingabe-, Auswahlfeldern, Radio Button- und Checkboxen-Gruppen vorkommen können, können auch von diesen Elementen unabhängige Validierungsfehler in Formularen auftreten.
Es handelt sich hier um Fehler, die nicht an exakt einem Element hängen, sondern aus einer Kombination aus getätigten oder fehlenden Eingaben entstehen. Sie können ab Befüllung des letzten zu vergleichenden Feldes, spätestens jedoch nach Ausführen der Primäraktion im Formularfooter erscheinen (Details zum Validierungszeitpunkt siehe oben bei "Fehler- und Erfolgsmeldungen in Formularen: Frontend-Cross-Validierungen"). Die Formularfeldunabhängigen Fehlermeldungen werden nach Ausführen der Primäraktion im Formularfooter auch im Fehlermeldungsbanner am Anfang des Formulars gelistet und können darüber direkt angesprungen werden.
Beispiele:
Das Ausrufezeichen-Symbol neben der Meldung ist immer als Layoutgrafik zu deklarieren.
Validierungsmeldungen für eine Gruppe von Elementen sind immer oberhalb des ersten betroffenen Elements platziert. Es kann sich dabei um eine oder mehrere Meldungen handeln.
Um die Meldungen aus dem Meldungsbereich direkt mit der Tastatur ansteuern zu können, sind sie fokussierbar.
Wichtig ist eine eindeutige Formulierung der Fehlertexte, so dass möglichst genau daraus hervorgeht, an welchen Feldern bzw. Gruppen Änderungen vorgenommen werden müssen. Beispiele:
Bei Tabellen mit fehlerhaften Unterobjekten ist in der formularfeldübergreifenden Fehlermeldung jeweils der Name des Unterobjekts (Text in Rowheader) zu nennen im Format “[Unterobjektname] – [Feldlabel]: [Fehlertext]” Beispiel:
Bei Fehlermeldungen in Formularen müssen zwei Fälle unterschieden werden:
Auf dieser Ebene kann beispielsweise geprüft werden:
Auf fehlerhafte Eingabe werden Nutzende direkt bei der Wertänderung bzw. beim Verlassen eines geänderten Feldes angezeigt (Details zum Validierungszeitpunkt pro Elementtyp siehe unten: Validierungsfehler an Formularfeldern) – sowohl visuell als auch über ein akustisches Signal (siehe Spezifikationen zum jeweiligen Eingabe- und Auswahlfeldtyp).
Auf fehlende Eingaben (unbefüllte Pflichtfelder) werden Nutzende nicht direkt bei Verlassen eines Feldes hingewiesen, wenn keine Wertänderung stattgefunden hat, sondern erst nach Klick auf den Primärbutton im Formularfooter. Ausnahme: War ein Pflichtfeld bereits befüllt und Nutzende entfernen den Inhalt und verlassen dann das Feld, so wird die Pflichtfeldvalidierung direkt bei Verlassen angezeigt (da Wertänderung durchgeführt).
Nach Klick auf den Primärbutton “Speichern/Anlegen/Hinzufügen/Übernehmen” im Formular-Footer werden alle im Formular gefundenen, im Frondend validierbaren Fehler (fehlerhafte sowie fehlende Eingaben) in einem Banner unter dem Formularheader angezeigt und das Formular scrollt gleichzeitig ganz nach oben. Gleichzeitig ertönt ein akustisches Signal: Fehlermeldung (siehe Akustische Signale). Liegen die gefundenen Fehler innerhalb von zugeklappten Akkordeons in diesem Formular, so werden diese Akkordeons mit Erscheinen des Fehlermeldungsbanners ausgeklappt.
Der Fehlermeldungsbereich sollte als Region ausgezeichnet werden. Diese ist als “Fehlermeldung” beschriftet. Die Ausrufezeichen-Grafik ist als Layoutgrafik zu deklarieren.
Die Meldung beinhaltet eine detailierte Auflistung der einzelnen gefundenen Fehler (aus Front- und Backend-Validierung). Die Auflistung besteht aus tertiären Buttons (Detailbeschreibung zu dessen Status, siehe Button). Jeder einzelne der Buttons lässt bei Klick den Fokus zum entsprechenden Formularfeld springen bzw. zu der entsprechenden Fehlermeldung, wenn es sich um formuarlfeldunabhänige Fehler handelt.
Die Reihenfolge der Fehlerauflistung orientiert sich an der Reihenfolge, in der die Eingabefelder im Formular vorkommen.
Der entsprechende Button im Fehlerbanner wird deaktiviert, sobald eine Änderung am betroffenen Feld erfolgt ist und das entsprechende Feld verlassen bzw. das betroffene Feld gelöscht oder disabled wird. In Ausnahmefällen, falls durch eine andere im Formular ausgeführte Aktion ein Formularfeldfehler behoben wird, wird der entsprechende Eintrag im Fehlerbanner ebenfalls deaktiviert. Dies ist in den Userstories fachlich zu beschreiben. Entsteht durch die Eingabe ein neuer Frontend-Fehler, so wird dieser bei Verlassen des Feldes unter diesem angezeigt. Das Meldungsbanner wird nur durch den erneuten Klick auf “Speichern/Anlegen/...” aktualisiert, nicht während der Durchführung von Änderungen (bis auf die Deaktivierung der Einträg). Wird der letzte Eintrag im Fehlerbanner deaktiviert, so wird mit ihm auch die Überschrift “[Aktion] nicht möglich” als deaktiviert dargestellt (30% Opacity). Wird der Screeenreaderfokus auf diese deaktivierte Überschrift gesetzt, so wird dieser weiterhin ausgegeben mit dem Zusatz “Alle fehlerhaften Felder bearbeitet”.
Erst wenn alle im Frontend validierbaren Fehler behoben wurden und auf “Speichern/Anlegen” geklickt wird, werden die Daten zur Validierung an das Backend geschickt. Es wird dann noch zusätzlich geprüft, ob auf Datenbankebene Fehler entstehen. Beispiele:
Werden Fehler gefunden, so erscheint wieder ein Fehlermeldungsbanner mit dem exakt gleichen Verhalten (wie oben beschrieben). Zusätzlich tauchen an den betroffenen Feldern aussagekräftige Fehlermeldungen auf. Auch bei Backend-validierten Fehlern hier wird ein Eintrag im Fehlerbanner entfernt, sobald eine Änderung am betroffenen Feld erfolgt ist. Entsteht durch die geänderte Eingabe ein neuer Frontend-Fehler, so wird dieser bei Verlassen des Feldes am Feld und (falls nicht vorher korrigiert) nach erneutem Klick auf “Speichern” auch im Meldungsbanner angezeigt. Entsteht durch die Änderung ein gleicher/anderer Backend-Fehler, so wird dieser erst nach erneutem Klick auf Speichern wieder im Meldungsbanner sowie am betroffenen Feld angezeigt.
Der Speichern-Button ist auch im Fehlerfall immer aktivierbar.
Beispiele:
Bei Formularen mit Unterobjekten kann es vorkommen, dass auf dem Hauptformular Validierungen durchgeführt werden, bei denen Fehler in Unterobjekten gefunden werden. Dies kann durch Abhängigkeit zwischen den Haupt-/Unterobjekten entstehen oder dadurch, dass erst bei Ausführen der Aktion Speichern/Anlegen Backend-Validierungen durchgeführt werden. Die Korrektur der Fehler kann durch Änderugen im Haupt- oder Unterobjekt erfolgen.
Beispiele:
Hinweis: Cross-Validierungen zwischen Eltern- und Kindformular können, sofern fachlich sinnvoll, auch bereits auf Unterformularebene durchgeführt werden, statt erst bei Ausführen der Primäraktion im Hauptformular (Standardfall). Beispiel: Bei Ausführen der Primäraktion in einem Unterformular kann bereits validiert werden: “Die Eingaben in dessen Unterformular darunter passen nicht zu den Eingaben im aktuell geöffneten Unterformular”. Es gilt dann das gleiche Verhalten, wie oben zwischen Haupt- und Unterformular beschrieben: Im Fehlermeldungsbanner des Unterformulars, werden die Cross-Validierungsfehler der darunterliegenden Unterformulare gelistet, die fehlerhaften Elemente können über das Banner angesprungen werden und werden nach Bearbeitung wieder als deaktiviert angezeigt.
Titel des Fehlerbanners:
“[Bezeichnung primärer Button] nicht möglich” wird verwendet, wenn…
“Fehlerhafte Eingaben” wird verwendet wenn…
Buttontext in der Fehlerliste darunter setzt sich jeweils zusammen aus:
Beispiel.
Synchrone Erfolgsbenachrichtigungen (direktes Feedback auf eine Nutzeraktion) werden Nutzenden sofern möglich im Kontext des Elements mitgeteilt.
Header und Footer des Formulars sind bei ausreichend großem Bildschirm sticky und somit beim Scrollen durch das Formular immer sichtbar.
Ab einer Formularhöhe unter 672 Pixeln ist der Header des Formulars nicht mehr sticky, d.h. er verschwindet beim Scrollen. Der Footer bleibt sticky.
Unterhalb von 432 Pixeln Formularhöhe bleibt auch der Formularfooter nicht mehr sticky.
Sobald nicht das komplette Formular im sichtbaren Bereich liegt und Scrollen erforderlich ist, ist die Scrollbar permanent sichtbar.
Der Formularfooter ist bis bis zu einer Formularhöhe von 432 Pixeln sticky. Bei kleinerer Formularhöhe ist er nicht mehr permanent sichtbar.
Sobald der horizontale Platz nicht mehr ausreicht, um alle Buttons, mit je 16px Abstand zueinander, nebeneinander darzustellen, werden “Rückgängig-” und “Wiederholen-Button”, in einem “Weitere Aktionen”-Button zusammengefasst (siehe Pop-Up-Menü). Der Alternativtext des Buttons lautet: “Weitere Aktionen”.
Der “Rückgängig-/Wiederholen-Button” im Pop-Up-Menü ist wie folgt bezeichnet:
Wenn der Weitere-Aktionen-, der Schließen- und der primäre Aktionsbutton (z. B. Speichern) nicht mehr nebeneinander Platz finden, wird der Schließen-Textbutton zu einem Button mit X-Symbol ohne Text. Der Alternativtext/Tooltip des Icon-Buttons lautet dann entsprechend “Schließen”.
Sollte der Buttontext des primären Buttons so lang sein, dass dieser mit dem verfügbaren Platz nicht mehr vollständig dargestellt werden kann, so wird der Button mehrzeilig und der Footer wird entsprechend höher.
Bei wenig Platz oder langen Gruppentiteln bzw. längeren/mehreren StatusBadges brechen Titel und Status-Badges um und werden mehrzeilig. Der Entfernen-Button richtet sich “bottom aligned” zum Titel aus.
Der Abstand zwischen der Gruppentitel-Textbox (inkl. Badges) und dem Entfernen-Button beträgt 16 Pixel. Sobald der Gruppentitel (inkl. Badges) in der Breite bei Skallieren des Fensters keine 200px Platz mehr erreichen kann, wird aus dem Entfernen-Button mit Icon und Text ein reiner Icon-Button (Entfernen-Symbol).
Abhängig von der Formularbreite können bis zu drei Karten nebeneinander angezeigt werden. Gibt es mehr Karten, als in einer Zeile Platz finden, wird eine weitere Zeile erzeugt, bis alle Karten verteilt wurden.
Karten werden am Formulargrid ausgerichtet. Für den Inhaltsbreich der Karte gibt es kein eigenes Umbruchverhalten.
Kartenbreite (in Bezug zur Formularbreite):
Sortierung:
Details zur Navigation und Fokussetzung siehe unten bei "Tastaturbedienung" und Navigationskonzept innerhalb GeFa: Unterobjekte entfernen).
Bei mehreren Karten pro Zeile:
Der Alternativtext des “Weitere Aktionen” Buttons lautet: “Weitere Aktionen”.
Bei Formularheadern ist die Ausgabereihenfolge für den Screenreader: Zuerst Formulartitel, dann der Status-Badge, dann der “Weitere Aktionen”-Button.
Der Alternativtext für die Buttons Undo & Redo lautet:
Sonderfall: Bei Feldern innerhalb von Elementgruppen lautet der Alternativtext:
Bei Wertebereichsfeldern lautet der Alternativtext:
Bei Wertebereichsfeldern innerhalb von Elementgruppen lautet der Alternativtext:
Bei Hinzufügen einer Gruppe/eines weiteren Feldes:
Falls es sich bei der durchgeführten Aktion, nicht um ein Eingabe- oder Auswahlfeld gehandelt hat, wird statt dem Eingabefeldtitel verwendet:
Bei durchgeführten Aktionen mit Kindobjekten:
Für Spezifizierungen zu den verschiedenen Button-Status siehe Button: Zustände.
Für Details zum Undo-/Redo-Konzept siehe Navigationskonzept innerhalb GeFa: Undo & Redo.
Der Alternativtext des Ladesymbols lautet “Formularinhalte werden geladen”. Dieser wird auch als Tooltip angezeigt, wenn mit der Maus exakt über dem Lade-Icon gehovert wird.
Der Ladezustand ist im Code als Überschrift der Hierarchiestufe gekennzeichnet, die der Formulartitel im jeweiligen Seitenlayout hätte, damit die Inhaltsstruktur der Seite auch beim Laden konsistent bleibt (in der Regel H2, siehe Seitenaufbau).
Der Alternativtext des Ladezustands wird automatisch vom Screenreader ausgegeben, auch wenn sich der Fokus nicht auf dem Icon befindet. Allerdings wird er, um Audionoise zu vermeiden, erst dann ausgegeben, wenn 2 Sekunden nach Öffnen der Seite die Formularinhalte noch nicht vollständig geladen sind. Falls das Laden noch länger dauert, wird alle 10 Sekunden erneut der Alternativtext des Ladesymbols “Formularinhalte werden geladen” ausgelesen, unabhängig davon, wo sich der Fokus auf der Seite zu der Zeit befindet.
Nach vollständigem Laden der Formularinhalte wird der Text “Formularinhalte geladen” vom Screenreader ausgegeben. Dies wird nur ausgegeben, wenn das Laden davor länger als 2 Sekunden gedauert hat und die Ergebnisse nicht vorher sichtbar wurden. Die Ausgabe erfolgt unabhängig davon, wo sich der Fokus auf der Seite zu der Zeit befindet.
Der Tooltip des Entfernen-Buttons lautet “[Bezeichnung des Eingabefeldes] entfernen”. Dies entspricht auch der Screenreaderausgabe.
Das Plus-Symbol im “[Eintrag] hinzufügen” Button ist als Layoutgrafik zu deklarieren.
Der Tooltip des Löschenbuttons lautet “[Bezeichnung des Eingabefeldes] entfernen”. Dies entspricht auch der Screenreaderausgabe.
Vom Screenreader werden Trennlinien nicht ausgegeben.
Die Zwischenüberschrift wird (anders als bei der Elementgruppe) nicht bei jedem untergeordneten Element vom Screenreader mit ausgelesen. Daher ist darauf zu achten, dass die Benennung der auf die Überschrift folgenden Elemente eindeutig bleibt.
Der Titel wird im Code als Überschrift ausgezeichnet Visuell wird der Schrifttyp H4 verwendet.
Die Überschriftenebene in der Code-Auszeichnung ist abhängig vom jeweiligen Seitenlayout. Alle Karten des selben Formularabschnitts erhalten die gleiche Überschriftenebene:
Die Ausgabereihenfolge für den Screenreader ist: Zuerst Kartentitel, dann der Status-Badge, dann der Button.
UNDO/REDO:
SEKUNDÄRAKTION
PRIMÄRAKTION