「それ、本当に読んでほしい?」HTMLの装飾をスクリーンリーダーからそっと隠す魔法の属性『aria-hidden』
こんにちは!Web制作の世界へようこそ。
HTMLを書き始めると、ボタンの中にアイコンを入れたり、デザインのアクセントのために``タグで小さな飾りをつけたりすること、ありますよね。見た目はとっても素敵になるのですが、実はその裏側で「視覚情報」と「音声情報」のミスマッチが起きている可能性があることをご存知でしょうか?
今日は、そんな「目には見えるけど、読み上げなくていいもの」を、スクリーンリーダー(画面読み上げソフト)から優しく隠すための魔法、`aria-hidden=”true”`についてお話しします。
—
そもそも、なぜ「隠す」必要があるの?
想像してみてください。あなたは今、目の見えない友人と一緒にショッピングサイトを見ています。友人はスクリーンリーダーを使って、ページの内容を耳で聞いています。
そこで、こんなコードに出会ったらどうなるでしょう。
もし、この`icon-star`というクラスに、CSSで「★」という文字を擬似要素(`::before`など)で表示させていた場合、スクリーンリーダーは空気を読まずにこう読み上げることがあります。
「星マーク。お気に入りに追加」
……あれ?「星マーク」なんてわざわざ言わなくても、「お気に入りに追加」だけで十分意味は通じますよね。むしろ、毎回余計な記号を読み上げられたら、友人はお買い物のリズムを崩して疲れてしまうかもしれません。
このように、「見た目のためだけに置いている装飾」を、機械にいちいち説明させないこと。 これがアクセシビリティ(使いやすさ)の第一歩なんです。
—
魔法の属性「aria-hidden」を使ってみよう
そんな時に登場するのが、`aria-hidden=”true”`という属性です。これをつけると、スクリーンリーダーは「あ、これは飾りだな。無視しよう!」と判断して、その要素を読み飛ばしてくれるようになります。
先ほどのコードを、もっと優しく書き換えてみましょう。
これだけで、スクリーンリーダーは「お気に入りに追加」という、本当に伝えたい情報だけを届けてくれるようになります。簡単でしょう?
—
つまずきやすいポイント:ここだけは気をつけて!
「便利だから全部に付けてしまえ!」と思うかもしれませんが、ここで一つだけ、絶対にやってはいけない注意点があります。
⚠️ 大切な情報には絶対に付けないこと!
例えば、リンク(``)やボタン(`
- OK: 装飾用のアイコンや、重複しているテキストに付ける。
- NG: ボタン全体や、ユーザーがクリックすべき大事なリンクに付ける。
「これは『情報』かな? それともただの『飾り』かな?」と、迷ったときは一度立ち止まって考えてみてくださいね。大丈夫、慣れてくれば直感的にわかるようになりますよ!
—
まとめ:みんなに優しいWebを目指して
今回ご紹介した`aria-hidden`は、Web制作の現場では「アクセシビリティツリーの最適化」なんてかっこいい言葉で呼ばれたりしますが、要は「相手を思いやる気遣い」と同じです。
カフェで隣の人に「ここにある飾りは気にしなくていいよ、大切なのはこっちだよ」と教えてあげるような、そんな温かい気持ちでHTMLを書く。そんなあなたの姿勢が、Webをもっと誰にとっても使いやすい場所に変えていくはずです。
まずは今日のコードから、一つだけ「これは読み上げなくていいかな?」と思う装飾を探して、`aria-hidden=”true”`を足してみてください。それだけで、あなたの書くHTMLは一歩、世界基準の「やさしいコード」に近づいていますよ。
また次の記事でお会いしましょう!応援しています!

コメント