桝田草一(masuP9)
アクセシビリティに踏み込んでますか?
踏み込んでる人もこれから踏み出す人も、みんな俺の屍(失敗)を越えていけ…!
途中で質問もありです。
なんでも聞いてください。
クローズドなところでの質問は
私を独り占めする気かと思っちゃうよ///😣
またはWAI-ARIAでイキってしまう問題
HTMLを強くできる
WAI-ARIAってのがあるらしいよ...!!!
<header role="banner"></header>
<main role="main"></main>
<footer role="contentinfo"></footer>
どや
だめです
<header></header>
<main></main>
<footer></footer>
※IE11はmain
要素の暗黙のセマンティクスを持たないため、IE11に対応するなら<main role="main">
はあり。
ARIA in HTML (日本語訳)を読もう
ユーザーの操作で進捗が変わるプログレスバーUI
操作後にprogress
にfocus
達成率読み上げられるし良かれと思ったんや…
その後、違うユーザーの操作をトリガーに進捗がリアルタイムに変わる仕様に
何も操作していないのに、フォーカスが勝手にprogress
に持っていかれる
コメント入力できなくなりました!!!!!
aria-expanded
使い方間違え奴WAI-ARIAを使えば状態のセマンティクスを持てるやん!?!?
開いたり閉じたり開いたり閉じたり...
こんな感じやん!
<div class="Hoge">
<button class="Hoge__toggleButton" type="button">Toggle</button>
<div class="Hoge__body" aria-expanded="true">
Contents...
</div>
</div>
.Hoge__body[aria-expanded="false"] { display: none; }
🙅️
aria-expanded
は、表示非表示ではなく
展開 or 折りたたみ。
表示非表示はaria-hidden
よって、展開されうる要素自身に付与するか
<div class="Hoge" aria-expanded="true">
<button class="Hoge__toggleButton" type="button">Toggle</button>
<div class="Hoge__body">
Contents...
</div>
</div>
.Hoge[aria-expanded="false"] .Hoge__body { display: none; }
展開を制御する要素にaria-controls
と一緒に付与
<div class="Hoge">
<button aria-expanded="true" aria-controls="hogeBody" class="Hoge__toggleButton" type="button">Toggle</button>
<div class="Hoge__body" id="hogeBody">
Contents...
</div>
</div>
.Hoge[aria-expanded="false"] .Hoge__body { display: none; }
aria-label
でテキスト上書き奴このボタン、いろいろあって読みにくいし
どうやって読まれるんやろか…
<button type="button">
<span>A</span> <span>いろんな</span> <span>情報やアイコン</span>
<svg>...</svg>
</button>
せや!シンプルなやつをaria-label
に書いておこ
<button aria-label="Aを選択する" type="button">
<span>A</span> <span>いろんな</span> <span>情報やアイコン</span>
<svg>...</svg>
</button>
🙅
aria-label
はコンテンツの情報を上書きするので、必要な情報が得られなくなる。
この場合、「いろんな」「情報やアイコン」などのテキストが失われる
UIの中のテキストを失わないように
テキストを補強する
改善できるデザインはいねが〜👹
あっラベルの代わりに
プレースホルダーを使っている入力欄だ!
あ、でも検索ボタンと並んでるからいいかぁ🤡
ボタンの画像に代替テキストも入れてるし🤓
🤔
現状のデザインだけでも
titleをつける[H65]はできる
labelをつけることも検討する
同じ話でカラーコントラストの問題も
4.5:1 や
18pt 以上で 3:1 という比率だけが一人歩き
一人一人見えにくさは違う。
ロービジョンの友人は
6:1ぐらいないと見えないとのこと
なるべく・できるだけアクセシブルに
button
言い過ぎた問題Clickできるところはボタンやで!
Clickできるところはボタンやで!
あ、あれ…
<button type="button" onClick={this.onClick}>新規作成画面へ</button>
<a>
でよくなくなくなくなくなくない?
🤪
SPAでevent.preventDefault
するとしても
アクセシビリティおじさんは今日も行く〜👨🌾
ペラペラペーラ、ペラペラペラペラ、ドヤドヤッ
良い勉強会ができたし、これでもう完璧でしょ
🧟
その後、目立った動き無く...
つ、つ、爪痕は残せたんじゃないかな(震え
おしまい。