aria-expandedの紐付けについて
最近ハンバーガーメニューを実装する時などにaria-*
属性を使用することがあり、下記のように記述していた。
<div class="hamburger"> <button type="button" aria-expanded="false" aria-controls="js_menu">ボタン</button> <div id="js_menu" aria-hidden="true"> <!-- ここにメニューが入る --> </div> </div>
気を付ける部分として、
aria-expanded
属性は開閉を制御する要素(つまりbutton
)につけるaria-contorls
属性で制御する要素とされる要素の紐付けを行う
このように考えていたのだが、1.に関してはそうとも限らないらしい。
上記コードのような、ボタンとメニューが共通の祖先要素を持つなら、その要素にaria-expanded
を付与することもできる。
<div class="hamburger" aria-expanded="false"> <button type="button" aria-controls="js_menu">ボタン</button> <div id="js_menu" aria-hidden="true"> <!-- ここにメニューが入る --> </div> </div>
新しい発見があって奥深いという気持ち。