【実務・中級編】article・section・aside内での見出し戦略 – HTML実践ガイド

見出しの「h1」は一度だけ?現代のHTMLセマンティクスと「本当に正しい」文書構造の話

現場でコードレビューをしていると、今でもたまに「HTMLの`h1`はページに一つだけであるべき」という、20年前のSEOの定説を信仰しているエンジニアに出会います。

結論から言えば、それは今のWeb標準(HTML5以降)において必ずしも正解ではありません。

今日は、`article`や`section`といったセクショニング要素の中で、どう見出しを設計し、ブラウザのアクセシビリティツリーをどうハックしていくべきか。現場で使える実践的な知見をシェアします。

—

ブラウザはどう「見出し」を解釈しているのか

まず、根本的な認識をアップデートしましょう。ブラウザのレンダリングエンジンや、スクリーンリーダーなどの支援技術は、実はHTMLの「アウトラインアルゴリズム」という仕組みを使って文書構造を理解しています。

かつては「`

`の中に`

`を入れれば、自動的にそれがそのセクションのランクになる」という仕様(HTML5.1で策定されていたもの)がありましたが、主要ブラウザが実装を見送ったため、現在この仕様は「非推奨」となっています。

つまり、現在のブラウザは、`

`タグがどこに入っていようと、基本的には「見出しレベル(h1~h6)の数値」をそのまま構造として認識します。

したがって、現場で守るべき鉄則はこれです。

1. `

`は文書のメインタイトルとして使う(原則1回)。
2. セクションごとの見出しは、論理的な階層(h2→h3…)に従って配置する。
3. `section`や`article`を使うなら、その中には必ず適切なレベルの`h2`〜`h6`を置く。

—

現場で「h1の再利用」が議論される理由

それでも、「コンポーネント単位で再利用したいから、中身のタイトルは全部`h1`でマークアップしたい」という要望は現場でよく出ます。特にReactやVueなどのコンポーネント指向開発では、「そのコンポーネントがどこに配置されるか分からない」というジレンマがあります。

ここで私たちが取るべきアプローチは「セマンティックな順序の遵守」です。

もしSEOやアクセシビリティを軽視して、`h1`を乱用するとどうなるか。スクリーンリーダーのユーザーは「見出しマップ」を読み取った際に、文書の階層構造を見失い、どこがメインコンテンツで、どこがサブコンテンツなのかを判断できなくなります。これはアクセシビリティ上の致命的なバグです。

—

実践:メンテナンス性の高い見出し構造のサンプル

では、どう書くのが正解か。以下のコード例を見てください。これは、大規模なメディアサイトやダッシュボードの構築で私が実際に採用しているアプローチです。

最新のテックトレンド情報局


フロントエンドの現在地と未来

アクセシビリティの重要性

セマンティックなマークアップこそが、真のUXを生む…

ここがポイント

  • 階層を守る: `

    `の次は必ず`

    `。ここを飛ばして` `から始めないでください。ブラウザや検索エンジンへの「構造のヒント」が崩れます。 コンポーネントの独立性: もし特定のモジュールを使い回したい場合、JS側でヘッダータグを動的に制御する(h2にするかh3にするか判断する)仕組みを入れるのがベストです。最近の設計なら、`Level`プロパティを渡してタグを出し分けるラッパーコンポーネントを作るのが定石ですね。 — 最後に:綺麗なHTMLは、あなたの「意図」を伝えるためのもの

    HTMLのタグ選びに迷ったとき、立ち返るべきは「このコンテンツは、このページの中でどういう立ち位置なのか?」という自問自答です。

    `section`や`article`は、単なるdivの代わりではありません。これらはブラウザに対して「ここから先は一塊の情報のまとまりですよ」と宣言する強力なタグです。その構造の中に、正しい順序で見出しを置く。たったそれだけで、あなたの書くHTMLは劇的に読みやすくなり、検索エンジンからの評価も、アクセシビリティスコアも向上します。

    技術は日々変わりますが、「文書を正しく構造化する」というWebの根本は変わりません。小手先のハックよりも、この「論理的な美しさ」を大切にしてください。それが、一流のフロントエンドエンジニアへの近道です。

    さて、次は「`header`タグと`h1`の併用によるアクセシビリティ上の罠」について深掘りしてみましょうか。現場からは以上です。

コメント

タイトルとURLをコピーしました