Standarder · ARIA

Roll Landmärke

search

Ett landmärke som grupperar ett sökformulär. Låter skärmläsaranvändare hoppa direkt till webbplatsens sökning. Det nativa <search>-elementet (HTML 2024) bär denna roll automatiskt; använd role="search" på ett <form> för bredare webbläsarstöd idag.

När du ska använda det

Runt webbplatsens primära sökfunktion — vanligtvis ett <form> med ett inmatningsfält och en skicka-knapp. Använd det nativa <search>-elementet om du kan; det levererar landmärket kostnadsfritt. För äldre webbläsare, lägg role="search"<form> i stället.

Syftet med landmärket är att exponera sökfunktionen i skärmläsarens landmärkesmeny så att användare kan hoppa direkt till den. Utan landmärket är sökformuläret bara ett formulär bland andra på sidan.

Fältet inuti söklandmärket bör använda <input type="search"> — det ger söksemantiken på fältet, plattformens rensa-knapp-funktion och ett “Sök”-returknapp på mobil.

När du ska märka upp det

Ett enda söklandmärke behöver ingen etikett. Om du har flera sökningar på samma sida (en global webbplatssökning i sidhuvudet OCH en filtersökning i sidinnehållet), etikettmärk varje ett — “Webbplatssökning”, “Filtrera resultat”.

Vanliga fel

  • Sökformulär utan landmärke. Användare kan inte navigera till det via landmärkesnavigering.
  • role="search" applicerat på <input> i stället för det omslutande <form> eller omslagselementet. Rollen tillhör behållaren, inte fältet.
  • Flera söklandmärken utan etiketter.
  • Söklandmärke som omsluter bara fältet men inte skicka-knappen. Användare hittar fältet men knappen sitter utanför landmärket.
  • Att använda role="search" på ett generiskt “hitta efter namn”-fält på en CRUD-sida — övertillämpat; det är ett filter, inte webbplatssökning.

Exempel

<!-- Preferred (modern HTML) -->
<search>
  <form action="/search">
    <label for="q">Search</label>
    <input id="q" type="search" name="q">
    <button type="submit">Go</button>
  </form>
</search>

<!-- Broader browser support today -->
<form role="search" action="/search">
  <label for="q2">Search</label>
  <input id="q2" type="search" name="q">
  <button type="submit">Go</button>
</form>