Семантические теги HTML: address и search

<address> и <search> - два семантических тега с узким назначением: address - это НЕ любой физический адрес, а контактная информация автора текущей страницы или статьи, а search - обёртка именно для формы поиска или фильтрации, а не для самих результатов.

Заметь: контакты автора курсивом внутри address - это про автора страницы, а не про адрес офиса компании. А форма поиска обёрнута в search - это уже готовая landmark-роль для скринридера, без единого ARIA-атрибута в коде.

Контакты автора: address

<address> предназначен ТОЛЬКО для контактной информации ближайшего <article> или <body> - то есть для того, кто написал текущую страницу или статью: email, ссылка на профиль, телефон, физический адрес автора. Это НЕ тег для произвольного почтового адреса на странице - например, для адреса магазина в каталоге или списка филиалов компании, никак не связанных с авторством текста. Внутрь address нельзя класть ничего, кроме контактных данных (дата публикации - отдельный <time>, а не часть address), нельзя вкладывать address в address, а также нельзя класть внутрь заголовки или секционирующие теги вроде article/section/header/footer. По умолчанию браузер показывает address курсивом - как i или em, - но смысл у него совершенно другой.

<footer><address>Автор: Николай. <a href="mailto:info@htmlicss.com">info@htmlicss.com</a></address></footer> - контакты автора страницы.

<address>Магазин на ул. Ленина, 10</address> - обычный физический адрес магазина, никак не связанный с автором страницы - address здесь не подходит.

<search> - самый молодой тег из всех, что встречались в этом курсе: он вошёл в спецификацию HTML только 24 марта 2023 года. До этого для landmark-роли поиска приходилось вручную писать <div role="search"> - из восьми стандартных ARIA-ролей для ориентиров у семи уже были собственные HTML-теги (например, nav), и только у поиска не было своего тега вплоть до 2023 года. Внутрь search кладут форму поиска или фильтрации - поля, чекбоксы уточнения, кнопку отправки, - но НЕ сами результаты поиска: результаты по-прежнему относятся к основному контенту страницы, а не к самому блоку поиска.

<search><form><input type="search"><button>Найти</button></form></search> - форма поиска внутри search.

<search><ul><li>Результат 1</li><li>Результат 2</li></ul></search> - сами результаты поиска внутри search быть не должны.

Частые ошибки новичков

ОшибкаЧто происходитКак исправить
Оборачивать в address любой физический адрес (например, адрес магазина в каталоге) address предназначен только для контактов автора текущей страницы/статьи, а не для произвольных адресов Для обычных почтовых адресов, не связанных с авторством, использовать обычную разметку (p, ul и т.п.)
Класть в address дату публикации или другую непричастную информацию address должен содержать только контактные данные Дату выносить в отдельный time, а не смешивать с address
Вкладывать address внутрь address или класть внутрь заголовки/секции Нарушает модель содержимого address Держать внутри address только "плоское" содержимое - текст и ссылки
Класть внутрь search сами результаты поиска search предназначен только для формы и органов управления, а не для вывода результатов Результаты показывать в основном контенте страницы, вне search
Продолжать вручную писать div role="search" вместо нового тега Работает, но требует знания ARIA и лишнего атрибута Использовать нативный тег search - он уже сам даёт нужную landmark-роль

Шпаргалка

Тег/задачаЧто нужно знать
<address>Контакты автора страницы/статьи - не любой почтовый адрес; курсив по умолчанию
<search>Блок поиска/фильтрации - готовая landmark-роль search без ARIA-атрибутов
Произвольный физический адрес (не про автора)Обычная разметка (p/ul), не address
Результаты поискаОсновной контент страницы, не внутри search
История searchВ спецификации с 24 марта 2023, поддержка браузеров - с осени 2023

Коротко: отвечаем на вопросы

Можно ли использовать address для любого почтового адреса на странице?

Нет. address предназначен только для контактной информации автора текущей страницы или статьи - email, телефона, ссылки на профиль. Для произвольного физического адреса, не связанного с авторством (например, адреса магазина в каталоге), нужно использовать обычную разметку, а не address.

Можно ли вложить address внутрь другого address?

Нет, вложенность address в address не допускается. Также внутрь address нельзя класть заголовки или секционирующие теги вроде article, section, header и footer - только текст и ссылки, относящиеся к контактной информации.

Чем search лучше, чем div role="search"?

Тот же landmark для скринридера получается без единого ARIA-атрибута в коде - тег search сам по себе несёт нужную роль. Его специально ввели в спецификацию в 2023 году, чтобы закрыть последний из восьми стандартных ARIA-ландмарков, у которого раньше не было собственного HTML-тега.

Можно ли положить результаты поиска внутрь search?

Нет, по спецификации внутрь search кладут только форму поиска или элементы фильтрации - поля ввода, чекбоксы, кнопку отправки. Сами результаты поиска остаются частью основного контента страницы, а не блока search.

Категория
Поделиться в социальных сетях

Отправить комментарий

0 Комментарии

Отправить комментарий (0)

#buttons=(Хорошо) #days=(20)

Мы используем файлы cookie для улучшения работы сайта. Подробнее
Хорошо
×