2024-05-24
独自実装
アクセシビリティ
Comboboxエンジニア
兼
Webフロントエンドエンジニア
https://catnose.me/learning/html/select-option
CSSで変えられる➔
CSSで変えられない➔
作るしかねえ
見た目が良い
他は<select>と同じ
マウス操作
キーボード操作
WAI-ARIA
ピックアップ
アクセシビリティ仕様
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/combobox_role
https://primereact.org/dropdown/
UIライブラリ PrimeReact の <Dropbox>
アクセシビリティ仕様
role="combobox"
role="listbox"
role="option"
role="option"
role="option"
① aria-expanded
② aria-haspopup
③ aria-controls
④ aria-activedescendant
aria-expanded="true/false"
listboxの開閉状態
何がexpandedなのか?
listbox
tree
grid
dialog
今回はlistbox
aria-haspopup="listbox"
どれがexpandedなのか?
id="xxx"
aria-controls="xxx"
端的に言うと
「サブフォーカス」
↑document.activeElement
id="a"
id="b"
id="c"
id="d"
aria-activedescendant="a"
① aria-selected
listbox中の
どれが選択済み?
aria-selected="true"
aria-selected="false"
aria-selected="false"
aria-selected="false"
value / aria-selected
現在選択中の値
aria-expanded
listboxの表示状態
aria-activedescendant
「サブフォーカス」
上下矢印とEnterについて
記述アリ
ARIA: combobox role
Enter/Spaceでlistboxを開く
上下矢印で「サブフォーカス」の切り替え
Enter/Spaceで選択肢を決定
マウスホバー時にも切り替え
Escで選択肢を決定せずlistboxを閉じる
Tabは効かない
combobox外をクリックでも閉じる
おつかれさまでした
実際に読み上げ機能オン
<select>と比較
DevToolsのA11y Tree
実際にキーボード操作