← Назад к вопросам
В чем разница между тегами aside, article и section?
2.3 Middle🔥 152 комментариев
#JavaScript Core
Комментарии (2)
🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
В чем разница между тегами aside, article и section
Эти семантические HTML5 теги критичны для доступности (accessibility), SEO и правильной структуры документа. Неправильное использование приводит к проблемам с читаемостью для скринридеров и парсерами.
Краткое определение
- article - независимый, самодостаточный контент (статья, пост)
- section - логическая группировка связанного контента (часть документа)
- aside - контент, связанный tangentially с основным содержимым (сайдбар, реклама)
Article - независимый контент
Article предназначен для:
- Полностью независимого и самодостаточного контента
- Контента, который имеет смысл без остального документа
- Контента, который может быть распространен отдельно
<!-- Пример 1: Пост в блоге -->
<article>
<header>
<h1>Как выучить React</h1>
<p>Published on <time datetime="2026-04-02">April 2, 2026</time></p>
</header>
<p>React - это библиотека для построения пользовательских интерфейсов...</p>
<section>
<h2>Основные концепции</h2>
<p>JSX, Components, Hooks...</p>
</section>
<footer>
<p>By John Doe</p>
</footer>
</article>
<!-- Пример 2: Комментарий на сайте -->
<article class="comment">
<header>
<h3>Alice</h3>
<time>2 hours ago</time>
</header>
<p>Отличная статья! Очень помогла мне разобраться с hooks.</p>
<footer>
<a href="#">Reply</a>
</footer>
</article>
<!-- Пример 3: Новостной пост в RSS ленте -->
<article>
<h1>Breaking: New Frontend Framework Released</h1>
<p>Today marks the release of...</p>
</article>
Section - логическая группировка
Section предназначен для:
- Семантической группировки связанного контента
- Разделения документа на логические части
- Контента, который обычно имеет заголовок (h1-h6)
- Части документа или приложения
<!-- Пример 1: Разделение страницы -->
<body>
<header>
<h1>My Portfolio</h1>
</header>
<section>
<h2>About Me</h2>
<p>I am a frontend developer with 5 years of experience...</p>
</section>
<section>
<h2>My Projects</h2>
<ul>
<li>Project 1</li>
<li>Project 2</li>
</ul>
</section>
<section>
<h2>Contact Me</h2>
<form><!-- contact form --></form>
</section>
<footer>
<p>Copyright 2026</p>
</footer>
</body>
<!-- Пример 2: Структурирование главы в книге -->
<article>
<h1>Chapter 5: Advanced React Patterns</h1>
<section>
<h2>Custom Hooks</h2>
<p>Custom hooks are a way to reuse component logic...</p>
</section>
<section>
<h2>Compound Components</h2>
<p>Compound components is a pattern that enables...</p>
</section>
<section>
<h2>Render Props</h2>
<p>Render props is a technique for sharing code...</p>
</section>
</article>
<!-- Пример 3: Разделение пользовательского интерфейса -->
<section id="search-filters">
<h2>Filters</h2>
<form>
<input type="text" placeholder="Search">
<select><option>Category</option></select>
</form>
</section>
<section id="search-results">
<h2>Results</h2>
<ul>
<!-- результаты поиска -->
</ul>
</section>
Aside - вспомогательный контент
Aside предназначен для:
- Контента, тангенциально связанного с основным содержимым
- Сайдбаров (боковых панелей)
- Рекламы и другого вспомогательного материала
- Примечаний и дополнительной информации
- Тегов, категорий и меню навигации
<!-- Пример 1: Сайдбар с рекомендациями -->
<main>
<article>
<h1>Introduction to TypeScript</h1>
<p>TypeScript is a typed superset of JavaScript...</p>
</article>
</main>
<aside>
<h2>Related Articles</h2>
<ul>
<li><a href="#">Advanced TypeScript Tips</a></li>
<li><a href="#">TypeScript with React</a></li>
<li><a href="#">Testing TypeScript Code</a></li>
</ul>
<h2>Categories</h2>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">Web Development</a></li>
<li><a href="#">Tutorial</a></li>
</ul>
</aside>
<!-- Пример 2: Aside внутри article -->
<article>
<h1>The History of Web Development</h1>
<p>In the beginning, the web was simple...</p>
<aside>
<h3>Did You Know?</h3>
<p>The first web page was created by Tim Berners-Lee in 1991.</p>
</aside>
<p>As technology evolved...</p>
</article>
<!-- Пример 3: Реклама и дополнительная информация -->
<aside class="sidebar">
<div class="advertisement">
<img src="ad.jpg" alt="Advertisement">
</div>
<div class="newsletter">
<h3>Subscribe to Newsletter</h3>
<input type="email" placeholder="Your email">
<button>Subscribe</button>
</div>
<div class="social-links">
<h3>Follow Us</h3>
<a href="#">Twitter</a>
<a href="#">LinkedIn</a>
</div>
</aside>
Таблица сравнения
╔═════════════╦═════════════════════════╦═════════════════╦════════════════════╗
║ Тег ║ Содержимое ║ Контекст ║ Может быть ║
║ ║ ║ ║ переиспользован ║
╠═════════════╬═════════════════════════╬═════════════════╬════════════════════╣
║ <article> ║ Независимый контент ║ Пост, статья, ║ Да (может быть в ║
║ ║ (может существовать ║ новость, коммент ║ RSS, отправлен ║
║ ║ отдельно) ║ ║ отдельно) ║
╠═════════════╬═════════════════════════╬═════════════════╬════════════════════╣
║ <section> ║ Логическая группировка ║ Часть документа ║ Нет (имеет смысл ║
║ ║ связанного контента ║ (глава, раздел) ║ только в контексте) ║
╠═════════════╬═════════════════════════╬═════════════════╬════════════════════╣
║ <aside> ║ Вспомогательный контент ║ Сайдбар, реклама║ Нет (вспомогательный║
║ ║ (тангенциально связан) ║ доп. информация ║ контент) ║
╚═════════════╩═════════════════════════╩═════════════════╩════════════════════╝
Практический пример полной страницы
<!DOCTYPE html>
<html>
<head>
<title>Tech Blog</title>
</head>
<body>
<header>
<h1>My Tech Blog</h1>
<nav>
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</nav>
</header>
<main>
<!-- ARTICLE - полная статья/пост -->
<article>
<header>
<h1>Advanced React Hooks</h1>
<p>Published by John Doe on April 2, 2026</p>
</header>
<p>React Hooks have revolutionized how we write components...</p>
<!-- SECTION внутри article для структурирования -->
<section>
<h2>useState Hook</h2>
<p>useState is the most basic hook...</p>
<code>const [state, setState] = useState(initial);</code>
</section>
<!-- Еще один SECTION -->
<section>
<h2>useEffect Hook</h2>
<p>useEffect is used for side effects...</p>
</section>
<!-- ASIDE внутри article для доп. информации -->
<aside>
<h3>Did You Know?</h3>
<p>Hooks were introduced in React 16.8 in February 2019.</p>
</aside>
<footer>
<p>Tags: <a href="#">React</a>, <a href="#">JavaScript</a></p>
</footer>
</article>
<!-- Еще один ARTICLE - разные посты можно оборачивать в article -->
<article>
<h1>Vue vs React</h1>
<p>Both are great frameworks, but...</p>
</article>
</main>
<!-- ASIDE на уровне страницы - сайдбар -->
<aside class="sidebar">
<h2>Recent Posts</h2>
<ul>
<li><a href="#">Advanced React Hooks</a></li>
<li><a href="#">Vue vs React</a></li>
</ul>
<h2>Categories</h2>
<ul>
<li><a href="#">React</a></li>
<li><a href="#">Vue</a></li>
<li><a href="#">Angular</a></li>
</ul>
</aside>
<footer>
<p>Copyright 2026 My Blog</p>
</footer>
</body>
</html>
Влияние на доступность
Правильная семантика помогает:
- Скринридерам - они правильно интерпретируют структуру
- Парсерам и SEO - поисковики понимают важность контента
- Пользователям с ограничениями - лучшая навигация
- Разработчикам - более чистый и понятный код
<!-- ПЛОХО - неправильная семантика -->
<div class="article">
<div class="article-header">
<h1>Title</h1>
</div>
<div class="article-content">
<p>Content...</p>
</div>
</div>
<!-- ХОРОШО - правильная семантика -->
<article>
<header>
<h1>Title</h1>
</header>
<p>Content...</p>
</article>
Когда НЕ использовать
<!-- НЕПРАВИЛЬНО - section для разделения стилей -->
<section style="background: blue;">
<!-- Это не логическая группировка! -->
</section>
<!-- ПРАВИЛЬНО - div для стилизации -->
<div style="background: blue;">
<!-- Если нет семантического значения, используй div -->
</div>
<!-- НЕПРАВИЛЬНО - aside для обычного сайдбара -->
<aside>
<!-- Основная навигация сайта -->
<nav>
<a href="#">Home</a>
<a href="#">About</a>
</nav>
</aside>
<!-- ПРАВИЛЬНО - nav для основной навигации -->
<nav>
<a href="#">Home</a>
<a href="#">About</a>
</nav>
Лучшие практики
- Используй article для полностью независимого контента (посты, статьи, новости)
- Используй section для логической группировки связанного контента с заголовком
- Используй aside для вспомогательного контента, сайдбаров, рекламы
- Помни про доступность - семантика помогает скринридерам
- Используй div если нет семантического значения
- Не вкладывай article в article без причины
- Всегда имей заголовок в section
Итог
Три тега - три разные роли:
- article = независимый, самодостаточный контент
- section = логическая группировка связанного контента
- aside = вспомогательный, тангенциальный контент
Правильное использование этих тегов улучшает доступность, SEO и структуру вашего HTML-документа.