form
Ein Landmark für ein Formular — eine Sammlung von Eingabeelementen, die Daten übermitteln. Ein <form>-Element wird NUR dann als Form-Landmark exponiert, wenn es einen zugänglichen Namen besitzt. Ohne Namen ist es lediglich ein Formular, kein Landmark.
Verwendung
Für ein inhaltlich bedeutsames Formular — Registrierung, Checkout, Kontakt, Profilbearbeitung — das als Landmark navigierbar sein soll. Wie bei region wird das <form>-Element NUR dann zu einem Form-Landmark hochgestuft, wenn es einen zugänglichen Namen besitzt (aria-label oder aria-labelledby).
Der zugängliche Name eines Formulars sollte seinen Zweck beschreiben: „Kontaktformular“, „Registrierung“, „Profil bearbeiten“. Generische Bezeichnungen wie „Formular“ sind zu vermeiden — sie sind redundant mit der Rollenansage.
Handelt es sich um ein Suchformular, ist stattdessen <search> (oder role="search") zu verwenden — der Search-Landmark ist spezifischer.
Ein einfaches Newsletter-Abonnement mit einem Eingabefeld oder ein einzelnes Suchfeld rechtfertigt den Form-Landmark nicht. Er sollte Formularen mit mindestens drei aussagekräftigen Eingaben und einem klar definierten Zweck vorbehalten bleiben.
Beschriftung
Immer erforderlich — ohne Namen wird das <form> nicht zum Landmark. Bei mehreren Formularen auf einer Seite (ein Kommentarformular UND ein Newsletter-Abonnement) MUSS jedes einen eigenen, eindeutigen Namen erhalten.
aria-labelledby mit Verweis auf eine sichtbare Überschrift ist gegenüber aria-label vorzuziehen, da es den sichtbaren Titel mit der Landmark-Ansage verknüpft.
Häufige Fehler
<form>ohnearia-label/aria-labelledby. Kein Landmark — Nutzende können es nicht per Landmark-Navigation ansteuern.aria-label="Formular"— redundant.<form role="search">kombiniert mitaria-label="Suche". Der Search-Landmark deckt das bereits ab; die Form-Rolle würde einen Konflikt erzeugen.- Login- und Registrierungsformular beide mit der Bezeichnung „Anmelden“ — im Landmark-Menü nicht unterscheidbar.
- Ein einzelnes Eingabefeld in
<form>einschließen und als Form-Landmark auszeichnen. Zu weit gefasst; der Landmark bietet keinen Mehrwert.
Beispiel
<form aria-labelledby="contactHeading">
<h2 id="contactHeading">Kontakt</h2>
<label>Name <input type="text" name="name" required></label>
<label>E-Mail <input type="email" name="email" required></label>
<label>Nachricht <textarea name="message" required></textarea></label>
<button type="submit">Senden</button>
</form>