【入門編】aria-describedbyによるテキストの補足説明 – HTML実践ガイド

「その説明、誰に届いてる?」アクセシビリティの第一歩:aria-describedbyで“伝わる”フォームを作ろう

Web制作を始めたばかりの頃、フォーム作りって少し緊張しませんか?「名前を入力して、メールアドレスを入れて…」とコードを書いていく中で、ふとこんな悩みにぶつかるはずです。

「パスワードの入力欄の下に『8文字以上で入力してください』って小さく書きたいんだけど、これってどうやってプログラムに教えればいいんだろう?」

見た目上はただの文字ですが、視覚障害のある方が使う「スクリーンリーダー(画面読み上げソフト)」を使っている方にとっては、その説明文が入力欄と結びついていないと、「ここは何を入力すればいいの?」と迷子になってしまうかもしれません。

そこで今日は、魔法の属性`aria-describedby`を使って、どんな人にも親切なWebサイトを作るコツをお話ししますね。

—

そもそも「関連付け」ってどういうこと?

例えば、スーパーのお会計で「ここがレジです」という看板があるのに、肝心のレジ機が離れた場所にあったら困りますよね。Webの世界でも同じです。「入力欄」と「説明文」を物理的に近くに置くだけでなく、プログラム的にも「この説明文は、この入力欄のためのものですよ」と紐付けてあげる必要があります。

ここで登場するのが`aria-describedby`です。

イメージとしては、入力欄に「付箋(ふせん)」を貼って、そこに「説明文のID」を書いておくような感じです。「この入力欄について困ったら、あのIDの場所を見てね!」と教えてあげるんですね。

—

さっそくコードを書いてみよう!

難しく考えなくて大丈夫です!たったの2ステップです。

1. 説明文にIDをつける(名前を呼べるようにする)
2. 入力欄に`aria-describedby`を書いて、IDを呼び出す

※パスワードは半角英数字8文字以上で入力してください。


これだけで、スクリーンリーダーは入力欄にフォーカスが当たった瞬間、「パスワードを入力、編集テキスト。※パスワードは半角英数字8文字以上で入力してください」と、補足説明までしっかり読み上げてくれるようになります。

これなら、画面が見えにくい方でも迷わずお買い物ができますよね。

—

ここでちょっと「つまずきポイント」をフォロー

よくある質問が「`aria-label`と何が違うの?」というもの。大丈夫、最初は混乱します!

  • `aria-label`:入力欄そのものの「名前(ラベル)」を教えるもの。
  • 例:「ユーザー名」
  • `aria-describedby`:入力欄の「補足説明」を教えるもの。
  • 例:「※8文字以上で入力」

「名前(ラベル)」は必須だけど、「補足説明」は状況に応じて足すもの。そう覚えると、少しスッキリしませんか?

—

現場の視点:やりすぎには注意!

ここまで読んで「じゃあ全部のテキストに`aria-describedby`を付ければいいんだ!」と思ったあなた、ストップです!

実は、なんでもかんでも紐付けてしまうと、今度は読み上げが長すぎて、ユーザーさんが「もういいよ!」と疲れてしまうことがあります。「この説明がないと、入力できないかも?」という、本当に必要な時にだけ使うのが、プロのこだわりポイントです。

最後に:Webは誰にでも開かれている

アクセシビリティというと「難しいルール」に感じがちですが、根っこにあるのは「目の前のユーザーさんに迷ってほしくない」という、ただそれだけの優しさです。

今日覚えた`aria-describedby`は、あなたのコードに「思いやり」という機能をインストールするようなもの。ぜひ、次回のフォーム制作から「この入力欄、誰かに説明が必要かな?」と一呼吸置いてみてくださいね。

皆さんの作るWebサイトが、一人でも多くの人に「使いやすい!」と思ってもらえることを、心から応援しています!また分からないことがあれば、いつでも聞きに来てくださいね。

コメント

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