edubun
Русский

Смысловая структура страницы

У большинства страниц похожая общая форма: шапка, меню, основное содержимое и подвал. Для каждой части в HTML есть свой элемент, и экранные дикторы позволяют сразу к ним переходить.

От «каши из div» к ориентирам

Годами страницы строили из элементов <div> с именами классов вроде header или menu. <div> является универсальной коробкой без всякого смысла, так что единственной подсказкой было имя класса, и видели его только те, кто читал код. Теперь в HTML есть элементы, которые говорят, чем является каждая область. Их понимают браузеры, поисковики и вспомогательные технологии, а пользователи экранных дикторов могут открыть список этих областей, называемых ориентирами (landmarks), и перейти к нужной, так же как зрячий пользователь окидывает взглядом вёрстку.

Обычная форма страницы. Стандартны только подписи; расположение задаёт CSS, и на телефоне оно может меняться.

Главные области

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

Эти элементы описывают смысл, а не положение. <nav> не обязан стоять наверху, а <aside> не обязан быть справа; на телефоне aside обычно оказывается под основным содержимым. Положение задаёт CSS. Выбирай элемент, спрашивая себя, чем является содержимое, так же как ты выбирал уровни заголовков по структуре, а не по размеру.

article или section?

Спроси себя: будет ли эта часть понятна сама по себе в другом месте, например в приложении для чтения новостей или если поделиться ссылкой? Если да, это <article>. Если она понятна только как часть чего-то большего, как раздел «Ингредиенты» в рецепте, это <section>. Обычно оба должны начинаться с заголовка. Статьи могут содержать разделы, а раздел может содержать статьи, например раздел «Последние записи» с несколькими карточками записей.

Для div и span ещё есть место

Когда ни один элемент не подходит, используй <div> для блока и <span> для нескольких слов внутри строки. Они полезны как зацепки для CSS, например <div class="cards">, который раскладывает карточки сеткой. Правило такое: сначала берись за смысловой элемент и переходи к универсальному, только когда содержимое ничем не описать. Страница из одних div работает, но прячет свою структуру от всех, кто не смотрит в код.

Быстрая проверка: открой страницу с выключенным CSS или прочитай план заголовков и ориентиров, который показывает расширение браузера. Если страница по-прежнему читается в разумном порядке, с понятной шапкой, меню, основным содержимым и подвалом, структура делает своё дело.

Сначала родные элементы, потом ARIA

Ты можешь встретить атрибут role из стандарта W3C под названием WAI-ARIA, например <div role="navigation">. Он придаёт универсальному элементу смысл для вспомогательных технологий. Руководство W3C по ARIA начинается с простого правила: если в HTML уже есть родной элемент с нужным смыслом, используй его. <nav> короче, работает везде, и его нельзя забыть в одном месте и вспомнить в другом. То же касается кнопок: настоящий <button> бесплатно получает фокус по Tab и нажимается Enter или пробелом, а кликабельному <div> для того же нужен дополнительный код.

headerВводное содержимое: название сайта, логотип, часто меню
navОсновные навигационные ссылки
mainСодержимое, уникальное для страницы; один на страницу
articleСамостоятельная часть, понятная сама по себе
sectionТематическая часть, обычно с заголовком
asideСвязанное, но отдельное содержимое, например боковая колонка
footerЗавершающие сведения: автор, авторские права, контакты
ориентир (landmark)Область страницы, к которой может перейти пользователь экранного диктора
  1. Сколько видимых элементов main должно быть на странице?
  2. Запись в блоге, которой можно поделиться отдельно, является
    • article
    • section
    • aside
  3. Часть «Ингредиенты» в статье-рецепте является
    • section
    • article
    • nav
  4. Какой элемент хранит меню сайта?
  5. Обязан ли aside стоять справа?
    • Нет, положение задаёт CSS
    • Да
    • Только на широких экранах
  6. Что означает div?
    • Ничего; это универсальная коробка
    • Раздел документа
    • Сетку для вёрстки
  7. Какой элемент без смысла отмечает несколько слов внутри строки для оформления?
    • span
    • div
    • strong
  8. Куда помещаются авторские права и контактные ссылки?
    • footer
    • header
    • main
  9. Чем ориентиры помогают пользователям экранных дикторов?
    • Можно перечислить области и перейти к одной из них
    • Они делают текст громче
    • Они прячут меню
  10. Можно ли поместить main внутрь header?
    • Нет
    • Да
    • Только с заголовком
Главное
  • header, nav, main, article, section, aside и footer называют области страницы.
  • Выбирай по смыслу; положение решает CSS.
  • Используй div и span, только когда не подходит ни один смысловой элемент.
Источники курса (10)
  • WHATWG, HTML Living Standard (html.spec.whatwg.org, checked 2026-10-17)
  • MDN Web Docs, Learn web development: Structuring content with HTML, and the HTML element reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content and developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements, checked 2026-10-17)
  • MDN, HTML images (alt text guidance, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree, checked 2026-10-17)
  • CERN, A short history of the Web (home.cern/science/computing/the-birth-of-the-web/short-history-web/, checked 2026-10-17)
  • W3C and WHATWG memorandum of understanding, 28 May 2019 (w3.org/2019/04/WHATWG-W3C-MOU.html, checked 2026-10-17)
  • W3C, Using ARIA, first rule of ARIA use (w3.org/TR/using-aria/, checked 2026-10-17)
  • W3C Markup Validation Service (validator.w3.org, checked 2026-10-17)
  • MDN, Viewport meta element (checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Проверено: 2026-10-17