Семантическая вёрстка

↑ 1.2 HTML · → Следующая

Желательно~3 мин чтенияУровень: junior

Зачем это на собесе

Семантика — основа доступности, 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.
  • Таблицы для раскладки — устаревший подход.

Практика

  1. Перевёрстайте страницу на div в семантическую разметку.
  2. Проверьте структуру заголовков расширением/DevTools Accessibility.
  3. Найдите в проекте div-кнопки и замените на button.

Вопросы с ответами

Связанные темы