Заголовки: h1–h6
Элементы
<h1>–<h6>— иерархия заголовков HTML-документа, задающая структуру содержимого для браузеров, screen readers и поисковых систем.
Зачем нужно
Заголовки — основа навигации по документу. Screen reader позволяет пользователям перемещаться по заголовкам (клавиша H в NVDA/JAWS) и получать оглавление страницы. Поисковые системы используют иерархию заголовков для понимания темы и структуры страницы. Нарушение иерархии (пропуск уровней, несколько <h1>) ухудшает и a11y, и SEO.
Где используется
- Структура контентных страниц (статьи, документация)
- Разделы лендингов и корпоративных сайтов
- Карточки с заголовком (товары, посты)
- Форумные темы и комментарии
Иерархия и правила
<!-- Правильная иерархия -->
<h1>Руководство по HTML</h1> <!-- Тема всей страницы (один раз) -->
<h2>Основы</h2> <!-- Главный раздел -->
<h3>Структура документа</h3> <!-- Подраздел -->
<h3>Метатеги</h3>
<h2>Семантика</h2>
<h3>Заголовки</h3>
<h4>Правила иерархии</h4> <!-- Под-подраздел -->
<h3>Формы</h3>
<h2>Доступность</h2>
<h1> — главный заголовок страницы
<main>
<h1>Введение в HTML5</h1>
<p>Первый параграф статьи...</p>
</main>
- На странице должен быть ровно один
<h1> - Он описывает тему всей страницы
- Совпадает или близок к
<title>в<head>
Заголовки в компонентах
Уровень заголовка зависит от контекста, а не от компонента:
<!-- Список карточек — заголовок каждой карточки <h2> -->
<main>
<h1>Каталог товаров</h1>
<ul>
<li>
<article>
<h2>MacBook Pro 14</h2>
<p>189 990 ₽</p>
</article>
</li>
<li>
<article>
<h2>MacBook Air 15</h2>
<p>149 990 ₽</p>
</article>
</li>
</ul>
</main>
Визуальный стиль vs семантика
Если нужен визуальный вид <h2>, но уровень <h4> — менять CSS, не HTML:
<!-- Плохо: нарушение иерархии ради вида -->
<h1>Заголовок страницы</h1>
<h4>Следующий раздел</h4> <!-- пропуск h2, h3 -->
<!-- Хорошо: правильная иерархия + CSS -->
<h1>Заголовок страницы</h1>
<h2 class="h4-style">Следующий раздел</h2>
.h4-style { font-size: 1rem; font-weight: 600; }
ARIA-заголовки (когда нет <h>)
<!-- Если семантически заголовок нужен, но в DOM не должен быть -->
<div role="heading" aria-level="2">Заголовок без тега h</div>
Использовать только в крайних случаях.
Частые ошибки
| Ошибка | Почему плохо | Как правильно |
|---|---|---|
Несколько <h1> на странице |
Непонятно, какова тема страницы | Один <h1> — одна тема |
Пропуск уровней (<h1> → <h4>) |
Screen reader теряет структуру | Соблюдай последовательность |
Использование <h> для стилизации размера текста |
Нет смысловой структуры | Используй CSS-классы |
<h> в <header> сайта вместо логотипа |
<h1> только для контента страницы |
Логотип — <a> + <img> |
Связанные темы
- Семантическая разметка
- header, nav, main, footer
- article, section, aside
- SEO -- основы для разработчика
- _MOC HTML