searchbox
Contrassegna un elemento come campo di testo destinato a un'attività di ricerca. Preferire <input type="search">, che offre semantica nativa e pulsante di svuotamento senza configurazioni aggiuntive. Ricorrere a role="searchbox" solo per un campo di ricerca personalizzato basato su contenteditable.
Quando utilizzarlo
Utilizzare <input type="search">. I browser mostrano un pulsante per svuotare il campo, le tastiere virtuali dei dispositivi mobili passano al tasto «Cerca» e l’input viene annunciato dagli screen reader come «campo di ricerca».
role="searchbox" compare solo in due casi:
- Un campo di ricerca personalizzato basato su un elemento contenteditable (token complessi, immagini incollate, sintassi di query avanzata).
- Il campo di input si trova all’interno di un landmark
<search>o di una regionerole="search", ma utilizza comunque il tipo nativotype="search".
Per una ricerca con completamento automatico, utilizzare role="combobox" sul campo di ricerca e abbinarlo a un role="listbox" di suggerimenti — searchbox di per sé non gestisce un popup.
Errori comuni
role="searchbox"su un pulsante. Il ruolo è destinato al campo di input, non al pulsante con l’icona di ricerca adiacente.- Campo di ricerca senza nome accessibile. «Search» deve essere presente in un
<label>, inaria-labelo inaria-labelledby— non solo nel placeholder. - Modulo di ricerca in cui il campo e il pulsante non sono racchiusi in un landmark
<search>o in una regionerole="search". Gli utenti di screen reader navigano per landmark e perdono la funzionalità. - Utilizzo di
role="searchbox"per un campo «filtra questa tabella». Non si tratta di una ricerca a livello di sito; untextboxocomboboxsemplice è più appropriato. - Invio del modulo a ogni pressione di un tasto senza rimbalzo — genera annunci continui da parte delle tecnologie assistive.
Esempio
<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>