В HTML появился новый элемент Search
В HTML появился элемент search, который ищет данные по документу и всему Интернету. Обсудили его важность и привели примеры использования.
3К открытий4К показов
В стандарте HTML появился новый семантический элемент search. Он представляет собой раздел, который используется для поиска или фильтрации данных.
Search
содержит элементы управления формой (такие как поле ввода текста, выпадающее окно, кнопки и т.д.), а область поиска или фильтрации может быть любой: от одного документа до всего Интернета.
Как search работает в HTML
Перед тем, как появился элемент <search>
, обычно добавляли role="search"
к тегу <form>
, чтобы испрользовать форму для поиска:
Теперь достаточно использовать тег для обёртки формы:
Увы, так как <search>
— это новый стандарт, понадобится время, прежде чем все браузеры и инструменты догонят его. До тех пор можно использовать хак, указывающий роль ARIA.
В будущем этот хак уже не понадобится, но сейчас он поможет подготовить код до тех пор, пока браузеры не начнут поддержку нового тега:
Это может показаться нелогичным: мы удаляем role="search"
, но все обертываем <search>
. Кроме того, так выходит больше кода (аж на три символа больше), ещё и увеличивается вложенность (на один уровень больше).
Это не какая-то огромная проблема, но некоторые разработчики наверняка будут жаловаться.
Варианты использования search в HTML
Есть важный момент: <search>
не обязательно должен быть текстовым вводом с кнопкой. Его можно использовать для фильтрации результатов или строк в таблицах.
Польза <search>
выходит за рамки обычных текстовых вводов и поисковых полей:
В этом примере форму поиска включили в заголовок веб-страницы:
В следующем примере на странице расположены две функции поиска.
Первая находится в заголовке веб-страницы и служит глобальным поиском по сайту. На его назначение указывает title
.
Вторая функция включена в <main>
и позволяет искать и фильтровать данные из содержимого этой же страницы. На его назначение указывает заголовок <h2>
.
Заключение
С элементом <search>
все востребованные сообществом роли ARIA landmark будут закрыты. Элемент увеличивает доступность разметки (хотя и пройдет много времени, пока все браузеры подхватят идею) и расширяет семантику языка.
Однако с точки зрения программиста кажется, что элемент мало что добавляет к существующей реализации. Например, введение тэгов типа <tabpanel>
и <tab>
было бы гораздо ценнее.
Но это не отменяет важности <search>
. Все улучшения, даже незначительные, только приветствуются. И <search>
— отличное дополнение к семейству HTML.
3К открытий4К показов