foundation

Landmarks и заголовки

Представляйте области страницы и иерархию заголовков, чтобы assistive tech и краулеры понимали страницу.

Landmarks — `header`, `nav`, `main`, `aside`, `footer` — описывают области страницы. Заголовки задают иерархию содержимого, а не размер шрифта. Вместе они позволяют пользователям клавиатуры и screen reader перемещаться по странице и помогают краулерам понять связи секций.

На странице один `main`. Уровни заголовков не пропускают ради стилей. Повторяющимся nav полезен `aria-label`, если подпись не видна.

					<body>
  <header>...</header>
  <nav aria-label="Основная навигация">...</nav>
  <main>
    <h1>Настройки аккаунта</h1>
    <section aria-labelledby="profile-heading">
      <h2 id="profile-heading">Профиль</h2>
    </section>
  </main>
</body>
				

На интервью: один main, упорядоченные headings и когда div всё ещё уместен.

Типовые ошибки: пропуск уровней заголовков, неправильная вложенность интерактивных элементов, ARIA-роли, противоречащие нативной семантике.

Компромисс: семантическая насыщенность против удобства layout — landmarks помогают навигации, но избыточная структура путает.

Чеклист:

  • Один `main` на документ.
  • Заголовки по структуре, не по виду.
  • Именуйте повторяющиеся nav.
  • Семантические элементы важнее role.