Семантическая разметка HTML5: понятное руководство с примерами

Семантическая разметка HTML5: понятное руководство с примерами

Семантическая разметка HTML5: понятное руководство с примерами

Если вы вбили запрос вроде «семантическая разметка HTML5» и хотите быстро понять, какие теги использовать и зачем — вы по адресу. Ниже кратко и практично разберём ключевые семантические элементы, покажем, как ими заменить дивосуп, и дадим чеклист для проверки верстки перед релизом.

Что такое семантическая разметка

Семантическая разметка — это использование тегов по смыслу, а не ради стилей. Она улучшает читаемость кода, помогает SEO и повышает доступность (a11y). Поисковики и ассистивные технологии лучше понимают структуру страницы, если вы используете правильные теги.

Базовые семантические теги HTML5 и когда их применять

  • <header> — вводная часть для страницы или секции: логотип, заголовок, краткое описание, интро.
  • <nav> — блок навигации: основное меню, хлебные крошки, пагинация.
  • <main> — основное уникальное содержание страницы. На странице должен быть только один <main>.
  • <section> — тематический раздел с заголовком. Часто внутри страницы: блок «О нас», «Преимущества» и т. п.
  • <article> — самостоятельный, самодостаточный блок, который можно распространять отдельно: пост, новость, отзыв, карточка статьи.
  • <aside> — боковой или дополнительный контент: сайдбар, блок «Похожие статьи», промо-блоки.
  • <footer> — нижняя часть страницы или секции: копирайт, ссылки, контакты.
  • Практика: «скелет» типичной страницы на семантике

    <!doctype html>
    <html lang="ru">
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>Магазин кофе — Главная</title>
      <meta name="description" content="Кофе свежей обжарки. Доставка по России. Семантическая разметка и правильные теги HTML5.">
    </head>
    <body>
      <a class="skip-link" href="#content">Перейти к содержимому</a>
    
      <header class="site-header">
        <div class="logo">CoffeeTime</div>
        <nav aria-label="Основная навигация">
          <ul>
            <li><a href="/">Главная</a></li>
            <li><a href="/catalog">Каталог</a></li>
            <li><a href="/blog">Блог</a></li>
            <li><a href="/contacts">Контакты</a></li>
          </ul>
        </nav>
      </header>
    
      <main id="content">
        <section aria-labelledby="promo-title">
          <h1 id="promo-title">Свежая обжарка каждую неделю</h1>
          <p>Выбирайте зерно под любой способ заваривания.</p>
        </section>
    
        <section aria-labelledby="hits-title">
          <h2 id="hits-title">Хиты продаж</h2>
          <div class="grid">
            <article>
              <h3>Эфиопия Сидамо</h3>
              <p>Яркая кислотность, ягоды, цитрус.</p>
              <a href="/product/sidamo">Подробнее</a>
            </article>
            <article>
              <h3>Колумбия Супремо</h3>
              <p>Шоколад, орех, карамель.</p>
              <a href="/product/colombia">Подробнее</a>
            </article>
          </div>
        </section>
      </main>
    
      <aside aria-label="Промо и подписка">
        <section>
          <h2>Скидка 10% на первый заказ</h2>
          <p>Подпишитесь на рассылку — получите промокод.</p>
        </section>
      </aside>
    
      <footer class="site-footer">
        <nav aria-label="Хлебные крошки">
          <ol>
            <li><a href="/">Главная</a></li>
            <li aria-current="page">Магазин кофе</li>
          </ol>
        </nav>
        <p>© 2025 CoffeeTime</p>
      </footer>
    </body>
    </html>
    

    Section или Article: как выбрать

    Запомните простое правило: если блок «живёт» и понятен вне контекста страницы (можно отправить в RSS, закинуть в соцсети) — это <article>. Если это тематический раздел внутри страницы — <section>.

    <!-- Неверно: статья оформлена как section -->
    <section>
      <h2>Как выбрать кофе для воронки</h2>
      <p>...текст...</p>
    </section>
    
    <!-- Верно: самодостаточный материал -->
    <article>
      <h2>Как выбрать кофе для воронки</h2>
      <p>...текст...</p>
    </article>
    

    Доступность и навигационные ориентиры (landmarks)

    Теги <header>, <nav>, <main>, <aside>, <footer> создают «маяки» для экранных читалок. Если на странице несколько навигаций, различайте их с помощью aria-label. Добавляйте ссылку пропуска к основному контенту (skip link).

    <header>
      <nav aria-label="Навигация по сайту">...</nav>
      <nav aria-label="Навигация по разделу">...</nav>
    </header>
    
    <a class="skip-link" href="#main">Сразу к контенту</a>
    <main id="main">...</main>
    

    Переводим «дивосуп» в семантику

    <!-- Было -->
    <div class="top">...логотип, меню...</div>
    <div class="content">
      <div class="block">...заголовок и текст...</div>
      <div class="block">...карточка статьи...</div>
    </div>
    <div class="bottom">...контакты...</div>
    
    <!-- Стало -->
    <header>...</header>
    <main>
      <section>...</section>
      <article>...</article>
    </main>
    <footer>...</footer>
    

    Типичные ошибки и как их исправить

  • Несколько <main> на странице. Должен быть один. Остальные блоки — <section> или <div>.
  • <nav> без списка. Внутри меню используйте <ul>/<ol> для логичной структуры ссылок.
  • <section> без заголовка. У раздела должен быть явный заголовок (<h2>/<h3>…). Если заголовок не нужен — возможно, достаточно <div>.
  • Путаница article/section. Самодостаточный контент — <article>, тематическая группа — <section>.
  • Дублирование ролей. Не назначайте role=»navigation» для <nav>: элемент уже семантичен. Добавляйте role только когда семантики не хватает (например, для <div role=»navigation»> в легаси-коде).
  • Отсутствие skip link. Добавьте ссылку «Перейти к содержимому» для клавиатурной навигации и скринридеров.
  • Заголовки и SEO: короткие правила

  • На странице один <h1> — главный смысл. Далее иерархия: <h2> для разделов, <h3> для подразделов и т. д.
  • Текст заголовка должен описывать содержимое блока. Избегайте пустых «Маркетинговых» заголовков без смысла для поисковика.
  • В <title> и <meta name=»description»> используйте ключевые фразы, например: «Семантическая разметка HTML5 — руководство и примеры».
  • Мини‑чеклист перед публикацией

  • Один <main> на страницу, корректные <header>/<footer> у страницы и крупных секций при необходимости.
  • <nav> снабжён aria-label, если навигаций несколько; ссылки упорядочены списком.
  • <section> имеет заголовок; самодостаточные блоки — <article>.
  • Есть «skip link» к основному контенту, логичная иерархия h1–h6.
  • Описание в <meta name=»description»> отражает суть страницы и включает ключ «семантическая разметка HTML5».
  • Что дальше

    Освоение семантики — база для чистой, поддерживаемой и доступной вёрстки. Хотите быстро закрепить знания на практике, сверстать несколько страниц и получить обратную связь? Попробуйте интенсив: Прокачать HTML и вёрстку на практике (пошаговый курс с проектами).

    Итог: используйте теги по смыслу, проверяйте иерархию заголовков и добавляйте ориентиры для доступности. Так ваш HTML станет понятным людям, поисковикам и вам самим через полгода после релиза.

    Источник

    НЕТ КОММЕНТАРИЕВ

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