HTMLに「role属性」を付与してWebアクセシビリティの向上を目指す

  • このエントリーをはてなブックマークに追加

今日は、HTML5より正式に採用された「role属性」について書きたいと思います。

role属性とは

role属性は、このように使用します。

見ればどういったものかなんとなく分かると思いますが、この場合はdiv要素に対して「ナビゲーション」の意味を付与しています。


では、実装する必要はあるのか

2016年04月に「障害を理由とする差別の解消の推進に関する法律」が施行されました。「障害を理由とする差別」の解消に努めるという主旨の施策なのですが、その中に「情報アクセシビリティ」も含まれているため、今後WEBの現場においても、そういった対策を求められる場合が増えてくると言えるでしょう。
一部の音声読み上げソフトでrole属性まで読み上げてくれるものが存在します。公共性の高いサイトであれば積極的に、実装したいですね。

SEOの観点から見た場合の効果は不明です。現状は効果が無いと考えて良いと思います。JIS規格(2016年に更新されましたね)にも記述はありません。
大手企業でもWebアクセシビリティの観点から、実装をしているサイトが増えてきているのが現状です。広く普及するようになればあるいは、といった感じで、今後の展開が期待されています。

しかし、role属性自体は補助的な役割をするので、タグ事態に意味を持つHTML5で構成するのであれば、あまり記述する機会は必要ないかもしれません。多分3種しか使用しません。(後述します)

実装方法

先述と同様、タグにrole属性を付与します。


あくまでrole属性は補助的な役割なので、navタグなどの既にナビゲーションの意味を持っているタグへの実装は今後非推奨となっていくようです。divやspanなどの特に意味を持たないタグに対して積極的に実装するとしても、古いブラウザも多く存在するので迷うところですが、HTML5で実装するのであれば外してしまっても良いのではというのが私の見解です。
ちなみにこちらで細かく、つけるべき、つけないべきの定義がリスト化されています。(複雑ですね…)

role属性の種類

計60個のrole属性が存在するのですが、ランドマークロールのカテゴリに分類される8つを押さえておけば良いと思います。
※HTML5でマークアップするのであれば、さらに絞って、application/form/search以外は必要ないかと思います。ランドマーク以外の細かい部分も勉強しても良いかもしれませんね。

application アプリケーション。
キーボードまたはジェスチャーイベントなどの、ユーザー入力を要求する1つ以上の、との条件があります。
banner ヘッダ。基本的にページに1つだけ使用。
主にサイト中心のコンテンツが含まれる領域(ページ固有のコンテンツではない部分)
complementary ドキュメントを補助する情報。
mainコンテンツから切り離された箇所に存在する、mainを補足する役割の領域。
contentinfo copyrightや、プライバシーポリシーへのリンクを含む領域。
form 検索以外の、フォームを含む領域。
main メインコンテンツ領域。
navigation ナビゲーション領域。
search 検索フォームを含む領域。

さらに細かい内容はこちら確認してください。


執筆者:森島[ WEBデザイナー ]

8bit デザイナーです。 デザイン・マークアップ・映像制作など幅広く担当しています。

関連記事

プログラミング

【PHP】古いWordPressで絵文字を使えるようにするお話

WordPressはLAMP環境で動くCMSとして昔から有名ですが、昔から使われているサイトの場合、絵文字が使えないことがあります。 今回はそういう場合の絵文字を使えるようにしてみましょう 目次1 MySQLのバージョンを調べる2 テーブルの照合順序を変更する3 最近の事情 MySQLのバージョンを調べる 使えるようにしましょうといいつつ、実は大前提があります。 それはMySQLのバージョンが5.5以降であることです。 それ未満のバージョンは「utf8mb4」にできないため、 […]

Webサイト制作

【さくらのレンタルサーバー】環境ごとにPHPのバージョンを変更するお話

最近何かとAI関係で話題の「さくらインターネット」ですが、レンタルサーバーはコスパもよく、かなり使いやすいサービスだと思います。 特にWordPressなどのLAMP環境に最適化された環境であり、PHPもいろいろなバージョンを選ぶことができます。 変更方法も簡単でコンパネからボタン一つでできるので楽ちんですね。 ただ当然なのですがマルチドメインで運用している場合もすべての環境にPHPのバージョンが一斉に反映されてしまいます。 それはそれで便利なのですが、例えばこの環境のみバー […]

プログラミング

【phpdotenv】PHPで環境変数を取り扱うお話

PHPでサーバーの環境ごとに設定ファイルを用意する場合、config.phpなどのファイルにデータベースの接続情報やAPIのキーなどをdefineで登録すると思います。 これは昔からある一般的なやり方ですが、例えば「ローカル環境やテスト環境と本番環境で情報を出し分けたい」「GitHubやSubversionなどに接続情報を管理されたくない」ということがあるかと思います。 Linuxの場合は「.env」でユーザーごとの情報をあらかじめ設定することが可能ですが、PHPだとデフォル […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。