WAI-ARIAは
ウェブのアクセシビリティを
高めるための技術仕様
etc...
意味も振る舞いも
既存のHTMLでは表現できなくなってきた
例えば
HTMLの要素は増やすのに時間がかかる
HTMLはセマンティクス、DOM Node、UA StyleSheetのフルセット
WAI-ARIAはセマンティクスを属性で補完する
<tab>Tab</tab>
<div role="tab">Tab</div>
WAI-ARIAはアプリケーション化する
ウェブにおいて、ホスト言語(HTMLなど)に
不足しているセマンティクスを属性で補完する
HTMLにあるセマンティクスはHTMLで
セマンティクスを補完する
role
aria-*
aria-*
<ul role="tree" aria-label="menu tree">
<li role="treeitem" aria-selected="true">...</li>
<li role="treeitem" aria-selected="false">...</li>
</ul>
role
<ul role="tree"></ul>
これはツリーウィジェットである
<li aria-selected="true" role="treeitem" >...</li>
このツリーアイテムは選択されている(いない)
<ul aria-label="menu tree" role="tree"></ul>
このツリーウィジェットの名前プロパティはmenu tree
である
これらの付与されたセマンティクスはどのようにユーザー(支援技術)に伝わるか
これまでの流れを逆から
WAI-ARIAが補完していたセマンティクスをホスト言語が取り込んでいく
WAI-ARIAとホスト言語は共に進化するが進化の速度は異なる
<div role="alert">
{error && <strong>{error.text}</strong>}
</div>
<output>
は暗黙の status
roleを持つ
aria-expanded
要素が展開されているかどうか
<section aria-expanded="false">
<h2>Q. How to use WAI-ARIA?</h2>
<button>Open</button>
<div aria-hidden="true">...</div>
</section>
<section>
<h2>Q. How to use WAI-ARIA?</h2>
<button aria-expanded="false">Open</button>
<div aria-hidden="true">...</div>
</section>
button
につける場合はaria-controls
とあわせて
aria-label
名前をラベリングする
[aria-hidden="true"] { display: none }
CSS設計と要相談
markuplintに期待
自分はスクリーンリーダーの操作が不慣れなことに注意
リンクは2020/11/10時点でのLatest published version
more...
いずれもボーンデジタル岡本さん編集リンクはAmazon(アフィリエイト)
A11YJ Slack - #q_and_a or #beginner or #aria_study
ありがとうございました