Rolle Widget
searchbox
Kennzeichnet ein Element als Texteingabe für eine Suchaufgabe. Bevorzugt wird <input type="search"> – es bietet in den meisten Browsern einen Löschen-Button und die Such-Semantik von Haus aus. role="searchbox" kommt nur auf einem benutzerdefinierten contenteditable-Suchfeld zum Einsatz.
Verwendung
Empfohlen wird <input type="search">. Browser zeigen einen Button zum Leeren des Felds an, mobile Tastaturen wechseln zur „Suchen“-Eingabetaste, und das Eingabefeld wird von Screenreadern als „Suchfeld“ angesagt.
role="searchbox" tritt nur in zwei Fällen auf:
- Eine benutzerdefinierte Sucheingabe basiert auf einem
contenteditable-Element (komplexe Tokens, eingefügte Bilder, komplexe Abfragesyntax). - Die gesamte Suchfunktion ist in einem
<search>-Landmark oder einerrole="search"-Region eingebettet, und das enthaltene Eingabefeld verwendet weiterhin das nativetype="search".
Für eine Suche mit Autovervollständigung wird role="combobox" auf dem Suchfeld empfohlen, das mit einer role="listbox" für Vorschläge kombiniert wird – searchbox selbst unterstützt kein Popup.
Häufige Fehler
role="searchbox"auf einem Button. Die Rolle gehört auf das Eingabefeld, nicht auf den daneben stehenden Such-Button.- Sucheingabe ohne zugänglichen Namen. „Suchen“ sollte in einem
<label>,aria-labeloderaria-labelledbystehen – nicht nur im Platzhaltertext. - Ein Suchformular, das Eingabefeld und Button nicht in einem
<search>-Landmark oderrole="search"einschließt. Screenreader-Nutzer navigieren per Landmark und verlieren sonst die Suchfunktion. role="searchbox"für ein „Tabelle filtern“-Feld. Das ist keine seitenweite Suche;textboxodercomboboxist dort genauer.- Formular sendet bei jedem Tastendruck ohne Entprellung ab – das löst bei assistiver Technologie kontinuierliche Ankündigungen aus.
Beispiel
<search>
<form role="search" action="/search">
<label for="q">Search the site</label>
<input id="q" type="search" name="q">
<button type="submit">Search</button>
</form>
</search>