くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

WAI-ARIAをちょっと調べてみた | `aria-`とか`role`とか

WAI-ARIAとかa11yとかアクセシビリティとかよく聞くけど、
あまりちゃんと理解していないので、ちょっと調べてみた(*´ω`*)

軽く概要ていどなので、個別の詳細は別途確認する。

主に以下を読み進めた感じ(*´ω`*)

割とここが印象的(*´ω`*)

一点忘れてはいけないのが、WAI-ARIAは必要な場合のみ使用するという点です。
理想的には、スクリーンリーダーのユーザーの理解に必要となる意味論の提供は、
常にネイティブのHTML機能を使用して行うべきです。

基本は適切なHTMLタグをつけ、実現できない部分をWAI-ARIAで補完する形っぽい(*´ω`*)

いままでの問題

HTML5でheaderとか意味を持つタグを用意したけど、
今まで<div class="nav">のように使っていたので、
メインナビゲーションのようなページ内の機能を識別する簡単な方法が無かった。

WAI-ARIAの導入経緯

要素に適用できる追加の意味論を提供する一連のHTML属性を定義しており、
それが欠けているどのような場所でもアクセシビリティを向上できるようになった。

WAI-ARIAの種類

ロール(Role)

プロパティ(Property)

ステート(State)

いつWAI-ARIAをつかうべきか?

  1. 道しるべ/ランドマーク(Signpost/Landmark)
  2. ARIArole属性の値は、HTML要素の意味論を再現する
  3. HTML5の意味論の範囲外となる道しるべ(signpost)を提供できる
  4. 動的なコンテンツの更新
  5. スクリーンリーダーは、絶えず更新されるコンテンツが得意ではない
  6. ARIAaria-liveを使うことで、コンテンツ更新時に、スクリーンリーダーのユーザーに伝えられる
  7. キーボードのアクセシビリティの向上
  8. WAI-ARIAは他の要素に対してフォーカスを得る手段を提供しています(tabindex
  9. 意味論的ではないコントロールアクセシビリティ
  10. ネストした一連の<div>CSS/JavaScriptと共に複雑なUI機能を構成していたり、
    ネイティブのコントロールJavaScript によって大きく強化/変更されている場合、アクセシビリティの提供は困難になる。

一点忘れてはいけないのが、WAI-ARIAは必要な場合のみ使用するという点です。
理想的には、スクリーンリーダーのユーザーの理解に必要となる意味論の提供は、
常にネイティブのHTML機能を使用して行うべきです。

参考にしたサイト様