HTML элемент search
search — это контейнер, представляющий части веб-страницы с функциональностью поиска. в спецификации HTML появился элемент search — специализированный контейнер для интерфейсов поиска.
Элемент <search> служит семантической обёрткой для форм поиска и фильтрующих компонентов UI. Он обеспечивает лучшую доступность, чем общие элементы <div>, и разъясняет назначение связанного с поиском контента как браузерам, так и вспомогательным технологиям.
До его появления разработчики полагались на типовые элементы div с ролями ARIA для обозначения областей поиска — решение приемлемое, но не идеально. Элемент search меняет ситуацию, предоставляя собственное семантическое значение для интерфейсов поиска и фильтрации.
HTML элемент <search>
<search> <!-- NEW -->
  <form>
    <input type="search" placeholder="Search...">
    <button type="submit">Search</button>
  </form>
</search>Поле ввода type="search" предоставляет специфические для платформы возможности, такие как понятные кнопки в некоторых браузерах.
Явная метка помогает всем пользователям понять, что они ищут, а метка ARIA обеспечивает дополнительный контекст для устройств чтения с экрана.
<search>
  <h2>Filter Products</h2>
  <div class="filter-group">
    <h3>Price Range</h3>
    <input type="range" min="0" max="1000" value="500">
  </div>
  <div class="filter-group">
    <h3>Categories</h3>
    <input type="checkbox" id="electronics" name="category">
    <label for="electronics">Electronics</label>
    <input type="checkbox" id="clothing" name="category">
    <label for="clothing">Clothing</label>
  </div>
</search>Когда использовать <search>
Элемент search может показаться простым, но знание, когда его использовать, повышает эффективность:
<!-- Хорошо: Глобальный поиск по сайту -->
<search>
  <form>
    <input type="search" placeholder="Search entire site">
  </form>
</search>
<!-- Хорошо: Фильтрация товаров -->
<search>
  <form>
    <fieldset>
      <legend>Filter by price</legend>
      <input type="range">
    </fieldset>
  </form>
</search>
<!-- Не идеально: Просто текстовое поле -->
<input type="text" placeholder="Enter your name">Элемент search не предназначен для всех полей ввода. Он предназначен для интерфейсов поиска и фильтрации, в которых пользователи могут искать или ограничивать содержимое.
Элемент <search> представляет специальный раздел для поисковой функциональности — но с важной оговоркой. Хотя он идеально подходит для ввода поисковых данных и мгновенных результатов, таких как автозавершение, его не следует использовать для полноценных страниц с результатами поиска.
<!-- Хорошо: Ввод поисковой информации с быстрыми предложениями -->
<search>
  <form>
    <input type="search">
    <ul class="suggestions">
      <li><a href="/doc1">Quick result 1</a></li>
      <li><a href="/doc2">Quick result 2</a></li>
    </ul>
  </form>
</search>
<!-- Не подходит: Страница с результатами поиска -->
<search> <!-- Не делайте так -->
  <h1>Search Results for "query"</h1>
  <div class="results">
    <!-- Страница результатов поиска -->
  </div>
</search>Результаты поиска размещаются в основном содержимом страницы, обычно в элементах <main> или <article>. Элемент <search> предназначен для самого интерфейса поиска — полей ввода, фильтров и немедленной обратной связи, например, предложений автозаполнения.