searchbox
Markeert een element als tekstinvoer gericht op een zoekopdracht. Gebruik eerst <input type="search"> — dat biedt een wis-knopaffordance in de meeste browsers en de zoekopdrachtsemantiek gratis. Gebruik role="searchbox" alleen op een aangepast contenteditable-zoekveld.
Wanneer te gebruiken
Gebruik <input type="search">. Browsers renderen een wis-invoerknop, mobiele toetsenborden schakelen naar een “Zoeken”-retourtoets, en het invoerveld wordt door schermlezers aangekondigd als “zoekvak”.
role="searchbox" verschijnt slechts in twee gevallen:
- Een aangepast zoekinvoerveld gebouwd op een contenteditable-element (rijke tokens, geplakte afbeeldingen, complexe querysyntaxis).
- Het omhullen van de volledige zoekmogelijkheid in een
<search>-landmark ofrole="search"-regio, waarbij het invoerveld binnenin nog steeds het nativetype="search"gebruikt.
Gebruik voor zoekopdrachten met automatisch aanvullen role="combobox" op het zoekinvoerveld en koppel dit aan een role="listbox" met suggesties — searchbox zelf heeft geen pop-up.
Veelvoorkomende fouten
role="searchbox"op een knop. De rol is voor het invoerveld, niet voor de zoekopdrachticoonknop ernaast.- Zoekinvoerveld zonder toegankelijke naam. “Zoeken” dient in een
<label>,aria-labelofaria-labelledbyte staan — niet alleen in de plaatsaanduiding. - Een zoekformulier bouwen zonder het invoerveld + de knop te omhullen in een
<search>-landmark ofrole="search". Schermlezergebruikers navigeren via landmark en missen de functie. role="searchbox"gebruiken voor een “filter deze tabel”-invoerveld. Dat is geen sitewijde zoekopdracht; een gewonetextboxofcomboboxis nauwkeuriger.- Het formulier bij elke toetsaanslag indienen zonder debouncen — veroorzaakt continue aankondigingen door hulptechnologie.
Voorbeeld
<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>