【実務・中級編】見出しの階層構造とアウトライン – HTML実践ガイド

見出しタグの「正しい」構造は、単なるSEO対策じゃない。アクセシビリティの生命線だ。

フロントエンドの実務に慣れてくると、つい「見た目(デザイン)」を優先してタグを選んでしまう誘惑に駆られることがあるよね。「ここは少し小さく見せたいから`h4`でいいや」とか、「`h1`はロゴに使ったから、次は`h3`から始めよう」なんていう判断。

結論から言おう。それは「文書の骨格を破壊している」のと同じだ。

今日は、なぜ見出しの階層構造(アウトライン)が重要なのか、そしてブラウザが裏側で我々のマークアップをどう解釈しているのか、シニアの視点から深掘りしていこう。

—

1. ブラウザと支援技術が「見出し」をどう見ているか

HTMLの`h1`〜`h6`タグは、単なるフォントサイズの指定じゃない。ブラウザが生成する「アクセシビリティツリー」において、文書の構造を定義するランドマークとして機能しているんだ。

スクリーンリーダーのユーザーは、ページを一行ずつ読み上げるのではなく、しばしば「見出しジャンプ機能」を使って文書をスキップ移動する。もし君が階層を飛ばしてマークアップしていたら、そのユーザーは目隠しをされた状態で迷路に放り込まれることになる。

  • `h1`: ページのメインタイトル。1ページに1つが理想(HTML5以降は複数許容されることもあるが、混乱を避けるために1つに絞るのが現場の定石)。
  • `h2`〜`h6`: セクションの階層。親要素の中身が、その下のセクションで構成されていることを示す。

重要なルール:階層を飛ばさない。
`h1`の次にいきなり`h4`が出てくる構造は、情報の親子関係が断絶していることを意味する。ブラウザのレンダリングエンジンは文句を言わないが、支援技術にとっては「情報の欠落」として認識されるんだ。

—

2. 実践:クリーンで堅牢なアウトラインのサンプルコード

では、現場でそのまま使える「綺麗な構造」のサンプルを見てみよう。ポイントは、デザインのサイズに関わらず、論理的な階層を守ることだ。

プロジェクト管理ツールのダッシュボード

未完了タスク一覧

デザインレビュー待ち

詳細なタスク内容や期限を表示…

フロントエンド実装

詳細なタスク内容や期限を表示…

チームメンバーの稼働状況

デザイナーチーム

デザイナーの稼働率を表示…

現場で役立つTips:`visually-hidden`の活用

デザイン上は見出しを隠したい(あるいは別のデザインで代用したい)が、文書構造としては必要、というケースは多々ある。そんな時は、アクセシビリティを損なわずに視覚的にだけ消すユーティリティクラスを使うのが正解だ。

/ スクリーンリーダーには読ませるが、見た目からは消す /
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}

—

3. なぜ「構造」が開発者の評価を分けるのか

中級エンジニアが突き当たる壁の一つに、「CSSによる見た目の制御」と「HTMLによる意味付け」の分離がある。

初心者は「大きな文字にしたいから`h1`にする」という思考プロセスを持つ。しかし、シニアは「このセクションは文書全体のどの位置付けにあるか?」を基準にタグを選び、CSSで「その見出しにふさわしいサイズや色」を当てる。

これが徹底できているコードベースは、将来的な改修やデザインリニューアルの際、圧倒的に負債になりにくい。構造が正しいと、CSSの修正だけで見た目をガラリと変えられるからだ。

まとめ:次にコードを書くとき、自分に問いかけてほしいこと

1. 「このタグは、文書のアウトラインとして正しい位置にあるか?」
2. 「階層を飛ばしていないか?」
3. 「見た目のために意味を犠牲にしていないか?」

HTMLは単なる情報のガワじゃない。君たちが書くコードは、誰かにとっての「情報の道しるべ」になる。この意識を持つだけで、君が書くマークアップの質は確実に一段上のレベルへ到達するはずだ。

綺麗なコードは、書く人間の理性を表す。明日からの実装で、ぜひ意識してみてくれ。

コメント

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