Textareas dienen der Eingabe größerer Mengen von Text, die üblicherweise über den in einem input type="text" zur Verfügung stehenden Platz hinausgeht.
Sofern möglich sollten Textareas immer die Größe der maximal zulässigen Textmenge haben; diese muss über die entsprechenden HTML-Attribute cols & rows gesetzt werden. Viele Browser lassen es jedoch zu, dass Nutzende eine textarea vergrößern können – wenn dies unerwünscht sein sollte, dann lässt es sich über die Vergabe der CSS-Regel textarea {resize: none} unterbinden.
Bei Textareas mit fachlich vorgegebener Mengenbegrenzung per maxlength verfügt das Element idealerweise über einen Zähler, der die verbliebene Anzahl eingebbarer Zeichen herunterzählt. Bitte beachten sie hierzu auch die Hinweise unter Barrierefreiheit.
Beschriftung
Texteingabefelder vom typ textarea benötigen zwingend eine Beschriftung, in welcher der Zweck und ggf. auch das erwartete Format beschrieben wird. Dies wird über ein implizit oder explizit verknüpftes <label> erreicht.
Wenn kein ausreichender Platz für ein sichtbares Label zur Verfügung steht (z. B. in Tabellen), dann ist auch ein äquivalentes aria-label oder ein visuell nicht sichtbares <label> zulässig. In diesem Fall muss darauf geachtet werden, dass sich der Zweck des Feldes visuell und programmatisch aus dem Kontext ergibt, wie zum Beispiel in Tabellen über einen entsprechend betexteten Spalten- oder Zeilen-Kopf.
Tooltips
Textareas können ein zugeordnetes Tooltip erhalten, das entweder Bestandteil der Feldbeschriftung ist, oder programmatisch verknüpft nach dem Formularelement steht.
Inaktive Elemente
Inaktive Elemente mit disabled-Attribut sind visuell deutlich als solche gekennzeichnet, z. B. wenn sie in der Applikationslogik aufgrund fehlender vorhergehender Auswahlen noch nicht aktiv sein können. Sie beinhalten keine Daten.
Rein darstellende Elemente mit readonly-Attribut sind bereits serverseitig mit Daten befüllt, die nicht mehr editierbar sind, und erhalten eine eigenständige Gestaltung, die ihren Zweck visualisiert. Optional können readonly-Felder zugeordnete weitere Inhalte haben, mit denen die Herkunft der vorbefüllten Daten vermittelt wird, z. B. durch ein ELSTER-Logo.
Do’s and Dont’s
So:
Dimensionen entsprechen den maximal eingebbaren Zeichen
So nicht:
Fälle in denen sehr kurze Eingaben zu erwarten sind
Design
Typografie
default
Die initiale Darstellung ohne Interaktion durch die Nutzenden. Hier ist der Hintergrund immer Weiß und die Textfarbe ist #1F3347; Formularelemente werden immer im Basisschriftgrad 1rem implementiert.
Spalte 1 enthält die Ziffern aus der Abbildung zu den nach Elementen gruppierten Regeln in Spalten 2 bis 4.
In den überwiegenden Fällen haben Eingabefelder keine definierten Breiten in sich, sondern richten sich nach den Spalten des Gestaltungsrasters, in denen sie eingesetzt werden (siehe Kapitel Formularelemente im Grid).
Abstände
Spalte 1 enthält die Ziffern aus der Abbildung zu den nach Elementen gruppierten Regeln in Spalten 2 bis 4.
Bei Interaktion mit der Maus erhalten Eingabefelder vom Typ textarea eine deutlich sichtbare Hervorhebung.
focus
Bei Interaktion per Tastatur oder Setzen der Einfügemarke per Maus erhalten Eingabefelder vom Typ textarea einen noch deutlicheren Tastatur-Fokus, der über den hover-Effekt hinausgeht und somit Tastaturnutzer in der Orientierung unterstützt.
readonly
Rein darstellende Textareas mit readonly-Attribut sind per Maus oder Tastatur fokussierbar, der enthaltene Text ist auswählbar.
disabled
Inaktive Textareas mit disabled-Attribut und deren Labels erhalten neben der optisch zurückgenommenen grauen Gestaltung auch einen Maus-Cursor vom Typ not-allowed und reagieren auf keine Interaktionen.
Spalte 1 enthält die Ziffern aus der Abbildung zu den nach Elementen gruppierten Regeln in Spalten 2 bis 4.
Textareas als Pflichtfeld, in denen die Validierung falsche oder fehlende Eingaben identifiziert hat, erhalten einen Rahmen in Rot #CD1408 anstatt des ursprünglichen Rahmens und zusätzlich einen Fehlerhinweis wie bei Feldern vom Typ input type=text. Interaktionen mit einem fehlerbehafteten Feld per :hover und :focus entsprechen den zuvor beschriebenen Rahmenstärken, solange der Fehler nicht behoben wurde. Nicht eingefärbt werden das Label und bereits eingegebene Texte im Feld (inkl. Platzhaltertexten). Die Inhalte selbst werden nicht clientseitig validiert, da es sich in der Regel um ein Freitextfeld z. B. in einem Kontaktformular handelt, dessen Inhalt mit Ausnahme Sicherheits-relevanter Sonderzeichen nicht maschinell prüfbar ist.
Spalte 1 enthält die Ziffern aus der Abbildung zu den nach Elementen gruppierten Regeln in Spalten 2 bis 4.
Pflichtfelder werden mit dem required-Attribut versehen.
WAI-ARIA
Formularelemente müssen zwingend über das aria-describedby-Attribut mit den dazugehörigen Info- und Fehler-Texten verknüpft sein. Bitte beachten Sie, dass Screenreader hier typischerweise die Reihenfolge der IDs berücksichtigen und verknüpfte Texte dementsprechend in der Sortierung der IDs vorlesen, d. h. diese muss der visuellen und logischen Reihenfolge der Oberfläche entsprechen.
Bei Feldern mit Mengenbegrenzung verfügen Screenreader über eigene Methoden, um das Erreichen des Maximums auszugeben, weitere ARIA-Attribute sind hier also unnötig. Bitte beachten sie hierzu aber die Hinweise im Tab Barrierefreiheit dieser Komponente.
JavaScript
Das kennzeichnende Asterisk * am korrespondierenden label eines Pflichtfeldes wird über die Einbindung der Datei requiredInput.js oder der gesamten main.js ermöglicht.
Textareas mit Zeichenzähler
Um Textareas mit Zeichenzählern auszustatten, muss das maxlength=""-Attribut vergeben und mit einem Wert versehen werden. Der Wert des maxlength=""-Attributs wird über zusätzliche JavaScript-Logik ermittelt und darauf basierend der Code für den Counter ergänzt. Binden Sie daher entweder die textarea.js-Datei oder die gesamte main.js-Datei ein, um diese Funktion zu ermöglichen.
Das zugeordnete Label einer Textarea bildet den sogenannten „Accessible Name“ und wird von Screenreadern zusammen mit der Rolle des Elements (textbox) vorgelesen. Daher muss dieses möglichst prägnant, beschreibend, aber auch kurz betextet sein.
Inaktive Elemente sind visuell deutlich als solche gekennzeichnet, z. B. wenn sie in der Applikationslogik aufgrund fehlender vorhergehender Auswahlen noch nicht aktiv sein können. Erwartetes Verhalten in gängigen Hilfsmitteln ist, dass diese nicht Bestandteil der Tab-Reihenfolge sind, aber mit den gängigen Vorlese-Methoden erkundet werden können.
readonly
Rein darstellende Elemente sind bereits serverseitig mit Daten befüllt, die nicht mehr editierbar sind. Im Gegensatz zu disabled-Feldern sind sie Bestandteil der Tab-Reihenfolge, somit fokussierbar und erhalten eine eigenständige Gestaltung, die ihren Zweck visualisiert.
autofocus
Von der Verwendung dieses Attributs zur automatischen Fokussierung von Formularelementen durch den Browser wird in den meisten Anwendungsfällen abgeraten. Begründete Ausnahmen kann es in Fällen geben, wenn eine Maske mit hoher Wahrscheinlichkeit genau diesen einen Zweck verfolgt, wie dies zum Beispiel bei einer Such-Seite der Fall sein kann.
accesskey
Das accesskey-Attribut darf in öffentlich zugänglichen Anwendungen nicht verwendet werden, da es signifikante Probleme in der Barrierefreiheit hervorruft. Weitere Informationen dazu finden Sie bei MDN accesskey.
tabindex
Das tabindex-Attribut darf nicht mit positiven Werten verwendet werden, sondern nur zum Fokusmanagement oder zur Herstellung der Tastaturbedienbarkeit von nicht auf Standardelementen basierten Widgets (tabindex="0" oder tabindex="-1"). Weitere Informationen dazu finden Sie bei MDN tabindex.
minlength / maxlength
Die optionalen minlength bzw. maxlength-Attribute können beliebige Integer > 0 annehmen. Bei Feldern mit Mengenbegrenzung verfügen Screenreader über eigene Methoden, um das Erreichen des Maximums auszugeben. Weitere ARIA-Attribute sind hier also unnötig, da diese eine unnötige Dopplung darstellen und schlimmstenfalls mit den Screenreader-eigenen Methoden kollidieren würden. Allerdings wird das Erreichen des Maximums in verschiedenen Screenreader- / Browser-Kombinationen nur unzureichend akustisch ausgegeben. Dies stellt keinen Mangel im Sinne der BITV-Konformität dar. Daher empfiehlt es sich, bei der Verwendung von maxlength den vom Design System mitgelieferten Counter zu verwenden, sofern das Design hierfür Platz bereitstellen kann.
Testhinweise & Akzeptanzkriterien
Rolle:
Wird in den Screenreadern JAWS, NVDA und VoiceOver als „Mehrzeiliges Eingabefeld“ oder “Eingabefeld mehrzeilig“ identifiziert. Eingabefelder mit disabled-Attribut werden in JAWS und NVDA als „Mehrzeiliges Eingabefeld nicht verfügbar“, in VoiceOver als „Mehrzeiliges Eingabefeld grau dargestellt“ ausgegeben.
Tastatur- & Maus-Bedienung:
Gemeinsam mit dem zugeordneten Formular-Element, fokussiert wird immer das Control, nicht das Label. Das dem Label zugeordnete Formularelement reagiert grundsätzlich nur auf die Standard-Tasten bzw. -Tastenkombinationen der jeweiligen Betriebssysteme.
Sprachbedienung:
Der Sprachbefehl mit dem sichtbaren Label-Text fokussiert das zugeordnete Formularelement.
Zustände:
Default, Fokussiert, Disabled.
Darstellung:
Der Schriftgrad kann Browser- oder Systemseitig um bis zu 200 % vergrößert werden, ohne dass Informationen verloren gehen. Bis zu 400 % müssen Inhalte so umbrechen, dass sie ohne horizontales Scrollen verfügbar sind.