Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
フロントエンドのテストからアクセシビリティをしれっと広めていく
Search
Shota
August 22, 2024
Programming
3
710
フロントエンドのテストからアクセシビリティをしれっと広めていく
Shota
August 22, 2024
Tweet
Share
More Decks by Shota
See All by Shota
アクセシビリティを理解するとフロントエンドのテストが楽になる!
nano72mkn
1
3.6k
OpenAI APIを触ってみた
nano72mkn
0
1.2k
年末年始にFlutter入門
nano72mkn
0
200
Other Decks in Programming
See All in Programming
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
130
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
180
開発を加速する共有Swift Package実践
elmetal
PRO
0
370
Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
230
The Future of Frontend i18n : Intl.MessageFormat
sajikix
1
2.5k
月間4.5億回再生を超える大規模サービス TVer iOSアプリのリアーキテクチャ戦略 - iOSDC2024
techtver
PRO
1
730
ESLint Rule により事業, 技術ドメインに沿った制約と誓約を敷衍させるアプローチのすゝめ
shinyaigeek
1
2.9k
Kotlin 2.0 and Beyond
antonarhipov
2
140
Method Swizzlingを行うライブラリにおけるマルチモジュール設計
yoshikma
0
110
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
120
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
200
Rubyのobject_id
qnighy
6
1.3k
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
308
41k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
It's Worth the Effort
3n
182
27k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
How to Think Like a Performance Engineer
csswizardry
16
940
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Raft: Consensus for Rubyists
vanstee
135
6.5k
KATA
mclloyd
27
13k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Designing with Data
zakiwarfel
98
5k
Transcript
フロントエンドのテストから アクセシビリティを"しれっと"広めていく 各社の事例から学ぶウェブアクセシビリティ 〜フロントエンドの最前線〜 2024/08/23 @nano72mkn
自己紹介 スターフェスティバル株式会社 フロントエンドエンジニア ポメラニアンを撫でながら仕事をしています! ゲーム好きです Apex VALORANT しょうた 🍊なつみかん @nano72mkn
01 アクセシビリティを広めるの難しい問題
アクセシビリティの重要性を伝えるのは 比較的簡単!
実際の対応となると話は別 技術的な複雑さ、専門的な知識、リソースの制約 など 様々な障壁が立ちはだかる
結果として、 「大切なことは分かっているけれど、なかなか手をつけられない」 という状況に陥る
そこで "しれっと"アプローチできないか を考えました。
"しれっと"アプローチ三箇条 心理的ハードルを最低限に 1. 学習コストを最低限に 2. 気づいたら貢献出来ている 3.
フロントエンドのテスト ならいけそう感
02 フロントエンドのテスト と アクセシビリティ
なぜ フロントエンドのテスト なのか
フロントエンドのテストツールには getByRoleという関数が存在している
役割 意味 <button type=”button”>ボタン</button> role属性について role属性はタグに や を示す
役割 意味 <button type=”button”>ボタン</button> <button type=”button” role=”button”>ボタン</button> role属性について role属性はタグに や
を示す
他にもあるよ!暗黙的なrole <a href=”~~~”>リンク</a> <h1>タイトル</h1> <input type=”text” /> link heading textbox
role属性を持っているタグを セマンティック要素 と呼ぶ
role属性を使って要素を取得するのが getByRole
それで、アクセシビリティとの関係性は?
getByRole とアクセシビリティとの関係性 スクリーンリーダーなどの支援技術はrole属性から どんな要素なのかをアナウンスしてくれます。 <button id=”lensSearchButton” class=”lensSearchButton” title=”画像で検索”/>
まとめると
role属性が付与されていれば getByRoleで要素を取得できる
role属性が付与されていれば 支援技術で要素を認識できる アクセシブルなUI
getByRoleで取得できる = アクセシブルなUIである
03 getByRoleを使った "しれっと"した アクセシビリティ改善
getByRoleの使い方
マイページ
role属性 accessible name マイページ
簡単ですよね!
送信
送信 role属性 accessible name
送信
送信
送信
getByRoleを使うことで、 自然とアクセシビリティを考慮した セマンティックなHTMLを使用するようになる
04 まとめ
getByRoleを使えば“しれっと”アプローチができる 心理的ハードルを最低限に getByRoleを使うだけ 学習コストを最低限に getByRoleの使い方を覚える role属性は使うやつだけ覚える 気づいたら貢献出来ている セマンティックなHTMLを書くことが促されて自然とアクセシブ ルなUIになっていく
注意点! アクセシビリティに疎くても貢献できる入門レベル アクセシビリティの項目を網羅することはできません
getByRoleをきっかけに アクセシビリティを “しれっと”広めていきましょう!
Thank You!