【入門編】ネストされたリストのアクセシビリティとARIA – HTML実践ガイド

こんにちは!フロントエンドの現場で日々コードと格闘しているエンジニアです。

皆さんは、Webサイトで「リスト」を作るとき、どんなことを意識していますか?「とりあえず`

    `の中に`

  • `を入れればOKでしょ?」と思っているそこのあなた。実は、そこが「アクセシビリティ」という、Web制作のちょっと深い沼への入り口なんです。

    今日は、リストの中にリストを入れ子にする「ネストされたリスト」について、スクリーンリーダー(視覚障害のある方がWebサイトを読むための音声読み上げソフト)の視点から、分かりやすく紐解いていこうと思います。

    —

    リストの「階層」は、お買い物の目次と同じ

    いきなりですが、スーパーでのお買い物を想像してみてください。

    • 食品コーナー
    • 野菜
    • お肉
    • 日用品コーナー
    • 洗剤
    • トイレットペーパー

    この「大枠があって、その中に細かい分類がある」という構造。これをHTMLで表現するとき、私たちは`

      `の中に別の`

        `を入れ子にしますよね。

        視覚的に見れば「インデント(字下げ)」されているので、誰がどう見ても階層構造だと分かります。でも、目が見えない方や、スクリーンリーダーを使っている方にとって、この階層は「ただの連続したリスト」として聞こえてしまうことがあるんです。

        「あれ、今どこの話をしてるんだっけ?」と迷子にならないように、HTMLの構造を正しく伝える工夫が必要なんですね。

        —

        「ネスト」の正しい書き方と落とし穴

        まずは、基本のコードを見てみましょう。

        • 食品コーナー

          • 野菜
          • お肉
        • 日用品コーナー
          • 洗剤

        実はこれ、HTMLとしてはこれで100点満点なんです。ブラウザやスクリーンリーダーは、この構造を見て「あ、このリストは『食品コーナー』という親の中に属しているんだな」と自動的に理解してくれます。

        なぜARIAの出番が来るの?

        「じゃあ何が問題なの?」と思いますよね。
        実は、デザインの都合で「HTMLのリストタグ(`ul`や`ol`)を使わずに、`div`や`span`でリストっぽい見た目を作ってしまう」ケースが、現場では非常によくあります。

        そんな時、ブラウザに「これはリストだよ!」と教えてあげるのがARIA(アリア)という魔法の杖なんです。

        —

        aria-levelで「階層の深さ」を教えてあげよう

        もし、`div`タグなどで無理やりリストを作ってしまった場合、スクリーンリーダーは階層を認識できません。ここで登場するのが `role=”list”`(リストですよ!)と `aria-level`(これは何階層目ですよ!)という属性です。

        食品コーナー

        野菜
        お肉

        ポイント:

        • `role=”list”`: 「これはリストの集まりですよ」と宣言。
        • `aria-level=”2″`: 「ここは2階層目のリストですよ」と明示。

        こうすることで、読み上げソフトを使っているユーザーさんは、「あ、今、深い階層に入ったんだな」と直感的に理解できるようになるんです。

        —

        現場からのアドバイス:一番大切なこと

        ここまで読んで「なるほど!aria-levelをたくさん使えばいいんだ!」と思った方、ちょっと待ってくださいね。

        実は、フロントエンドの世界で一番大切なのは「無理にARIAを使わないこと」なんです。

        先ほどのコードのように、`

          `と`

        • `を正しく使っていれば、ブラウザが勝手に「これは2階層目ですね」と読み上げてくれます。わざわざ `aria-level` を自分で書く必要はありません。

          「HTMLのタグだけで表現できるなら、それが一番のアクセシビリティ」

          これが、現場で先輩たちが口を揃えて言う鉄則です。ARIAは、HTMLタグだけではどうしても表現できない複雑なUI(例えば、クリックすると開閉するアコーディオンメニューなど)のために取っておく「切り札」だと思ってください。

          —

          最後に:完璧を目指さなくて大丈夫!

          最初は「アクセシビリティ?難しそう……」と感じるかもしれませんが、大丈夫です。まずは「誰が使っても迷わない構造になっているかな?」と、自分の書いたリストを眺めてみることから始めてみてください。

          「このリスト、もし目が見えなかったらどう聞こえるだろう?」

          そう想像するだけで、あなたの書くコードはぐんと優しく、プロフェッショナルなものに変わります。焦らず、少しずつ一緒に学んでいきましょうね!

          また次の記事でお会いしましょう!

コメント

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