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 デザイナーです。 デザイン・マークアップ・映像制作など幅広く担当しています。

関連記事

プログラミング

SharePoint REST APIを使用してリストの情報を取得し、headerにナビを作る

SharePointで作成したリストの情報をREST APIを使用して取得してみましょう。 今回は、APIで取得した情報を、headerにリンクとして差し込んでみます。サイト全体共通のナビでも、リストを使用すると、一か所で管理できるので便利です。 目次1 前提条件2 1.REST APIで情報を取得2.1 REST APIのURL2.2 データを取得する処理3 2.取得した情報をheaderに表示 前提条件 SharePoint Online モダンUI カスタムJSが使用で […]

WordPress

WordPressで権限やユーザーごとに管理画面のサイドメニュー表示を切り分ける

デフォルトだといろいろな項目が表示されているWordPressの管理画面のサイドメニュー。 慣れていない人にはわかりづらいですよね。 また、権限によってデフォルトで非表示にしてくれたりもしますが、この部分は見せたくないな…ということも多いと思います。 今回はWordPressで権限やユーザーごとにサイドメニューの表示を変更する方法をご紹介します。 目次1 権限の種類について2 function.phpに記述する2.1 サイドメニューの非表示用のコード2.2 権限ごとに振り分け […]

プログラミング

jQuery+PHPで大容量ファイルを分割アップロードするお話

ファイルのアップロードを行う際に注意しないといけないのが「アップロード容量」と「タイムアウト」です。 どちらもサーバーの設定に関わるところでレンタルサーバーでは対処しきれないところもあり、大容量にするとそれだけアップロードに時間がかかりタイムアウトが発生しやすくなります。 そこでフロント側で分割してファイルをアップし、バックエンド側で受け取った後に結合するようにするとよいでしょう 注意すべき点として通常のPOSTでの送信ではないため、あらかじめそこら辺を考慮した処理が必要とな […]

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

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

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

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