HTML / 要素

article要素の使い方 — それだけでも内容が成り立つまとまり

HTMLのarticle要素は、ブログの記事や掲示板の投稿のように、ひとまとまりで読める内容を表します。ページのほかの部分から取り出しても、1つの内容として扱えるかが目安です。

先に結論

記事、投稿、コメントのように、それ自体が1つの内容になるまとまりにはarticleを使います。

ページの中心全体にはmain、見出しを付けて話題をまとめるにはsection、見た目を整えるだけならdivを使います。

まずは小さな例

<main>
  <h1>お知らせ</h1>
  <article aria-labelledby="hours-title">
    <h2 id="hours-title">受付時間を変更します</h2>
    <p>来月から、受付時間が午前9時から午後5時までになります。</p>
    <p>公開日: <time datetime="2026-10-30">2026年10月30日</time></p>
  </article>
</main>

mainはこのページの中心となる内容をまとめ、articleはその中のお知らせを1件の内容として表します。見出しの番号は、ページ全体の見出しの順番に合わせて選びます。

article、section、divの違い

要素使う場面
article記事や投稿など、その部分を1つの内容として扱いたい
sectionページの中で、見出しを付けて話題をまとめたい
div見た目やスクリプトのためにまとめたい。特別な意味は付けない

たとえば「今週のお知らせ」というsectionの中に、個別のお知らせを複数のarticleとして並べられます。どちらか一方だけを選ぶ必要はありません。

記事の中にコメントを置く

記事に付いたコメントも、それぞれ読める投稿なら、記事の中にarticleを入れて表せます。内側のarticleは、外側の記事に関係する内容になります。

<article aria-labelledby="post-title">
  <h2 id="post-title">週末の公園で見つけた鳥</h2>
  <p>池の近くで、白い鳥を見かけました。</p>

  <article aria-labelledby="comment-title">
    <h3 id="comment-title">コメント</h3>
    <p>私も先週、同じ場所で見ました。</p>
  </article>
</article>

よくある思い違い

  • articleを書くだけで、新しいページや記事一覧が自動で作られるわけではありません。
  • articleを置いても、見出しは自動で作られず、見出し番号も自動では変わりません。
  • 見た目を囲みたいだけの場所に、必ずarticleを使う必要はありません。

読み上げソフトにはどう伝わる?

ブラウザーはarticleを記事のまとまりとして伝えます。ただし、ページ内の大事な場所へ移動するための「ランドマーク」とは別の役割です。記事の名前を付けたい場合は、見出しとaria-labelledbyで結び付けられます。

Atlasで詳しく確認する

仕様でいう独立した内容の範囲、sectioning contentとしての分類、記事の入れ子、アクセシビリティ上のrole、ブラウザーとWPTの確認範囲は、Yugien Atlasのarticle要素ページで確認できます。見出し付きの話題のまとまりとの違いは、section要素の説明もご覧ください。