- Что такое семантическая вёрстка и зачем она нужна
- Почему семантика важна
- Основные семантические теги HTML
- Как разметить страницу с точки зрения семантики
- Сомневаюсь, какие теги использовать
- Как точно не нужно делать
- Материалы по теме
- Секреты семантического HTML5 для структурирования документа
- Почему следует использовать семантический HTML 5?
- Как выглядит семантический HTML?
- Как правильно использовать семантические теги HTML
- Какие теги HTML являются семантическими?
Что такое семантическая вёрстка и зачем она нужна
Давным-давно (лет пятнадцать назад) почти все делали сайты и не переживали о том, что под капотом. Верстали таблицами, использовали всё, что попадётся под руку (а попадались в основном и ) и не особо заморачивались о доступности. А потом случился HTML5 и понеслось.
Семантическая вёрстка — подход к разметке, который опирается не на содержание сайта, а на смысловое предназначение каждого блока и логическую структуру документа. Даже в этой статье есть заголовки разных уровней — это помогает читателю выстроить в голове структуру документа. Так и на странице сайта — только читатели будут немного другими.
Почему семантика важна
Чтобы сделать сайт доступным. Зрячие пользователи могут без проблем с первого взгляда понять, где какая часть страницы находится — где заголовок, списки или изображения. Для незрячих или частично незрячих всё сложнее. Основной инструмент для просмотра сайтов не браузер, который отрисовывает страницу, а скринридер, который читает текст со страницы вслух.
Этот инструмент «зачитывает» содержимое страницы, и семантическая структура помогает ему лучше определять, какой сейчас блок, а пользователю понимать, о чём идёт речь. Таким образом семантическая разметка помогает б_о_льшему количеству пользователей работать с вашим сайтом. Например, наличие заголовков помогает незрячим в навигации по странице. У скринридеров есть функция навигации по заголовкам, что ускоряет знакомство с информацией на сайте.
Чтобы сайт был выше в поисковиках. Поисковики не разглашают правила ранжирования, но известно, что наличие семантической разметки страниц помогает поисковым ботам лучше понимать, что находится на странице, и в зависимости от этого ранжировать сайты в поисковой выдаче.
Классический пример — расписание поезда «Сапсан» в выдаче Google.
Семантика прописана в стандартах. Многие разработчики по старинке пользуются конструкциями типа для обозначения навигации или других структурных элементов страницы. Тем временем в стандарте HTML есть несколько семантических тегов, которые рекомендуется использовать для разметки страниц вместо и span . В спецификации для каждого семантического элемента описана его роль.
Ну и представьте, насколько проще читать вместо . Или вот такой код. Смотрите, и сразу понятно, что тут и зачем.
Основные семантические теги HTML
Но в актуальной версии HTML Living Standard есть семантические теги почти для всех основных частей сайта, и лучше пользоваться ими. Вот несколько примеров семантических тегов.
- Значение: независимая, отделяемая смысловая единица, например комментарий, твит, статья, виджет ВК и так далее.
- Особенности: желателен заголовок внутри.
- Типовые ошибки: путают с тегами и .
- Значение: побочный, косвенный для страницы контент.
- Особенности: может иметь свой заголовок. Может встречаться несколько раз на странице.
- Типовые ошибки: считать тегом для «боковой панели» и размечать этим тегом основной контент, который связан с окружающими его элементами.
- Значение: навигационный раздел со ссылками на другие страницы или другие части страниц.
- Особенности: используется для основной навигации, а не для всех групп ссылок. Основной является навигация или нет — на усмотрение верстальщика. Например, меню в подвале сайта можно не оборачивать в . В подвале обычно появляется краткий список ссылок (например, ссылка на главную, копирайт и условия) — это не является основной навигацией, семантически для такой информации предназначен сам по себе.
- Типовые ошибки: многие считают, что в может быть только список навигационных ссылок, но согласно спецификации там может быть навигация в любой форме.
- Значение: вводная часть смыслового раздела или всего сайта, обычно содержит подсказки и навигацию. Чаще всего повторяется на всех страницах сайта.
- Особенности: этих элементов может быть несколько на странице.
- Типовые ошибки: использовать только как шапку сайта.
- Значение: основное, не повторяющееся на других страницах, содержание страницы.
- Особенности: должен быть один на странице, исходя из определения.
- Типовые ошибки: включать в этот тег то, что повторяется на других страницах (навигацию, копирайты и так далее).
- Значение: заключительная часть смыслового раздела или всего сайта, обычно содержит информацию об авторах, список литературы, копирайт и так далее. Чаще всего повторяется на всех страницах сайта.
- Особенности: этих элементов может быть несколько на странице. Тег не обязан находиться в конце раздела.
- Типовые ошибки: использовать только как подвал сайта.
Как разметить страницу с точки зрения семантики
Процесс разметки можно разделить на несколько шагов с разной степенью детализации.
- Крупные смысловые блоки на каждой странице сайта. Теги: , , .
- Крупные смысловые разделы в блоках. Теги: , , , .
- Заголовок всего документа и заголовки смысловых разделов. Теги: — .
- Мелкие элементы в смысловых разделах. Списки, таблицы, демо-материалы, параграфы и переносы, формы, цитаты, контактная информация и прогресс.
- Фразовые элементы. Изображения, ссылки, кнопки, видео, время и мелкие текстовые элементы.
Более подробно методика создания семантической разметки описана в навыке «Создание семантической разметки по макету» и профессиональных курсах HTML Academy.
Сомневаюсь, какие теги использовать
Есть простые правила для выбора нужных тегов.
- Получилось найти самый подходящий смысловой тег — использовать его.
- Для потоковых контейнеров — .
- Для мелких фразовых элементов (слово или фраза) — .
- Можете дать имя разделу и вынести этот раздел на другой сайт? —
- Можете дать имя разделу, но вынести на другой сайт не можете? —
- Не можете дать имя? Получается что-то наподобие «новости и фотогалерея» или «правая колонка»? —
Как точно не нужно делать
Не используйте семантические теги для красоты. Для этого есть CSS.
Может показаться, что некоторые теги подходят для того, чтобы сделать страницу покрасивее, подвигать текст или добавить ему интервалов. Но то, что браузер по умолчанию отображает теги как-то, как вам нужно, не значит, что это нужно использовать. Посмотрим на пример.
Здесь сразу несколько ошибок:
А любое выделение, сдвиг или иные превращения текста можно выполнить с помощью CSS.
Поэтому используйте семантические теги по назначению.
Материалы по теме
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Секреты семантического HTML5 для структурирования документа
На приведенном ниже графике видно, насколько быстро HTML5 набирает популярность. В этой статье мы рассмотрим использование семантического HTML5 для структурирования веб-документов.
Семантические теги предоставляют поисковым роботам более точную информацию о том, какой контент более важен, какой является вспомогательным и многое другое.
Семантические теги HTML5 четко указывают браузерам на то, какой тип контента содержит этот тег.
Например, тег типа
является как семантическим, так и презентационным. Данный тег сообщает браузерам, что это абзац текста, а также поясняет, как его необходимо отображать.
Но такие теги как и , не являются семантическими, поскольку они определяют только внешний вид текста (жирный и курсив), но ничего не сообщают о типе контента.
Яркими примерами семантических тегов HTML являются теги , , и .
Почему следует использовать семантический HTML 5?
Поисковые роботы не видят и не различают части веб-страницы: меню, основной контент, футер. Поэтому важно сообщить краулерам о различных типах контента и какую роль они играют роль.
Семантические теги делают структуру контента сайта полностью понятной для браузера. Эта ясность также позволяет Google правильно представлять ваш контент в поисковой выдаче.
Как выглядит семантический HTML?
К основным семантическим тегам HTML5 относятся , и . Также существует большое количество других семантических тегов. Но мы поговорим о тех, которые нужны для разбиения содержимого веб-страницы на основные части:
Определение роли каждой части контента с помощью семантических тегов позволяет поисковым системам правильно и быстро проиндексировать страницы сайта.
Как правильно использовать семантические теги HTML
Многие вебмастера допускают ошибки при использовании следующих семантических тегов:
- Применение тега для добавления отступа к тексту, который не является цитатой. Так как цитаты по умолчанию выделяются отступом. Вместо этого лучше использовать CSS-свойство margin.
- Применение
для добавления разрывов между элементами веб-страницы. Но этот тег предназначен для определения абзаца текста. Для добавления разрывов лучше применять CSS-свойства padding или margin.
- Применение
- для добавления отступа к тексту. Это семантически неверный и неправильный HTML-код, так как теги
- используются только вместе с
- .
Какие теги HTML являются семантическими?
- — сокращение/аббревиатура.
- — акроним.
- — длинная цитата.
- — определение.
- — адрес автора (авторов) документа.
- — цитата.
- — часть кода.
- — блочный элемент.
- — контейнер для встроенного стиля;
- — удаленный текст.
- — добавленный текст.
- — акцент, выделение.
- — сильный акцент.
- — заголовок первого уровня.
- — заголовок второго уровня.
- — заголовок третьего уровня.
- — заголовок четвертого уровня.
- — заголовок пятого уровня.
- — заголовок шестого уровня.
-
— тематический разрыв;
- — названия клавиш.
- — предварительно отформатированный текст.
- — короткая встроенная цитата;
- — пример вывода.
- — подстрочный текст.
- — надстрочный текст.
- — переменная или пользовательский текст.
Пример использования семантических тегов HTML5 приведен ниже.