Семантическая вёрстка
Зачем это на собесе
Семантика — основа доступности, SEO и поддерживаемой вёрстки. Вопрос «зачем не div на всё?» задают часто.
Объяснение
Семантические теги описывают смысл содержимого, а не вид.
| Тег | Назначение |
|---|---|
header, footer | шапка/подвал страницы или секции |
nav | основная навигация |
main | основное содержимое (один на страницу) |
article | самостоятельный блок (пост, карточка новости) |
section | тематическая секция с заголовком |
aside | второстепенное (сайдбар, врезка) |
h1–h6 | иерархия заголовков (один h1, без пропусков уровней) |
figure / figcaption | иллюстрация с подписью |
time, address, mark, abbr | смысловые вставки |
ul/ol/li, dl, table | списки и таблицы (не для вёрстки) |
button, a | действие и переход |
<body>
<header><nav aria-label="Основная"><a href="/">Главная</a></nav></header>
<main>
<article>
<h1>Заголовок</h1>
<p>Опубликовано <time datetime="2025-06-12">12 июня 2025</time></p>
</article>
<aside>Связанные материалы</aside>
</main>
<footer>© 2025</footer>
</body>Выгоды: экранные читалки понимают структуру (landmarks), поисковики извлекают смысл, меньше CSS-классов, работает встроенное поведение (клавиатура, фокус).
Нюансы и подводные камни
divсonclickвместоbuttonне фокусируется и не активируется клавишей — потеря доступности.<a>безhref— не ссылка; переходы —a, действия —button.- Пропуски уровней заголовков (
h1→h4) ломают навигацию по структуре. sectionбез заголовка — бессмысленныйdiv.- Таблицы для раскладки — устаревший подход.
Практика
- Перевёрстайте страницу на
divв семантическую разметку. - Проверьте структуру заголовков расширением/DevTools Accessibility.
- Найдите в проекте
div-кнопки и замените наbutton.
Вопросы с ответами
Зачем семантическая вёрстка?
Доступность, SEO, читаемость кода и встроенное поведение элементов.
Чем
articleотличается отsection?
article— самодостаточный фрагмент, который имеет смысл отдельно;section— тематический раздел внутри страницы.
Сколько
h1на странице?Как правило один — главный заголовок страницы.