こんにちは!フロントエンドの現場で日々コードと格闘しているエンジニアです。
HTMLを書き始めた頃、「レイアウトを整えるために`
- `と`
- `を使いたいけれど、スクリーンリーダーに『リストです』って読み上げられるのがちょっと邪魔だな…」と感じたことはありませんか?
実はそれ、とても鋭い視点です!今日は、そんな「見た目のためのリスト」を、どうやってスマートに扱うか。魔法の呪文`role=”presentation”`について、一緒に紐解いていきましょう。
—
リストの役割って何だろう?
まず、普段私たちが使っている`
- `(順序なしリスト)や`
- `(リストアイテム)の本来の役割を考えてみましょう。これらは、単なる「箇条書きの箱」ではありません。
スクリーンリーダー(視覚障がいのある方がWebサイトを読むための読み上げソフト)を使っている方にとって、これらのタグは「ここからリストが始まります。全部で5つの項目がありますよ」という大事な案内図なんです。
例えば、お買い物の「買うものリスト」なら、リストタグを使うことで「あ、いま買い物リストの途中なんだな」と文脈を理解できます。
「見た目だけ整えたい」ときに起こる小さな違和感
でも、Web制作をしていると、こんな場面に出くわしますよね。
- 横並びのメニューを綺麗に作るために`
- `を使っている。
- カード型のデザインを並べるために`
- `を使っている。
これらも本来はリスト構造ですが、デザイン上の都合で並べているだけで、「ここからリストが始まります!」とわざわざ宣言してほしくない場面もあるんです。
もしスクリーンリーダーが「リスト項目です」「リスト項目です」と何度も読み上げたら、ユーザーさんは「えっ、何か重要なリストなのかな?」と混乱してしまいますよね。これでは、本来の「やさしいWeb」とは言えません。
救世主 `role=”presentation”` の登場
そこで登場するのが、今回お伝えしたい`role=”presentation”`です。
これはHTMLに対して「あなたはリストとしての性格を捨てて、ただの『箱(要素)』として振る舞ってくださいね」とお願いする魔法の呪文です。
実際に書いてみましょう
たとえば、デザインのために使っている`
- `タグに、この魔法をかけてみます。
- メニューA
- メニューB
- メニューC
こう書くことで、ブラウザは「ああ、これはただのレイアウト用の箱なんだな」と判断し、スクリーンリーダーはリスト構造として読み上げなくなります。読者にとって、情報のノイズが一つ消えるというわけです。
注意してほしい「大切なこと」
ここで一つだけ、お守り代わりに覚えておいてほしいことがあります。
`role=”presentation”` は、「何でも消していい便利な消しゴム」ではありません。本当にリストとして意味のある場所(例えば、記事の目次や、お買い物のリストなど)で使ってしまうと、大切な情報を隠してしまうことになります。
「これは、ただ見た目を整えるためだけに、たまたまリストタグを借りているだけだ」
そう確信できる場所にだけ、この魔法を使ってあげてくださいね。
最後に:完璧を目指さなくて大丈夫!
「roleなんて難しそう…」と身構える必要はありません。最初は「あれ?これって読み上げられたら変かな?」と想像するだけで、あなたはもう立派なアクセシビリティ・エンジニアの第一歩を踏み出しています。
Webの構造は、人間と同じでちょっと不器用なところもあります。その不器用さを、HTMLというコードでそっとフォローしてあげる。そんな「優しさ」を込めたコーディングができれば、あなたの作るサイトはもっともっと素敵な場所になるはずです。
もし分からないことがあっても、またいつでも聞きに来てくださいね。一緒に一歩ずつ、スキルアップしていきましょう!
- 横並びのメニューを綺麗に作るために`
- `(リストアイテム)の本来の役割を考えてみましょう。これらは、単なる「箇条書きの箱」ではありません。

コメント