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
アクセシビリティ_株式会社ニジボックス Katsuhito Karube
Search
株式会社NIJIBOX
December 18, 2020
Programming
10k
1
Share
アクセシビリティ_株式会社ニジボックス Katsuhito Karube
リクルートグループ主催!『大規模メディアにおけるWeb開発の最前線』
https://business-and-creative.connpass.com/event/188628/
株式会社NIJIBOX
December 18, 2020
More Decks by 株式会社NIJIBOX
See All by 株式会社NIJIBOX
「使いやすさ」だけでは、「勝てる」サービスにはならない。〜KPIとUXの分断を埋める、サービス戦略という「指針」〜
nbkouhou
2
330
Tableau トレーニング【株式会社ニジボックス】
nbkouhou
0
33k
Adobe Analytics勉強会の種類とレベル分け【株式会社ニジボックス】
nbkouhou
0
88
Adobe Analytics入門講座【株式会社ニジボックス】
nbkouhou
0
33k
[Adobe Analytics]主な役割と必要な知識【株式会社ニジボックス】
nbkouhou
0
79
SQL初級中級_トレーニング【株式会社ニジボックス】
nbkouhou
0
33k
モダンWebパフォーマンス2020_株式会社ニジボックス Yuki Irisawa
nbkouhou
9
14k
SUUMOでのパフォーマンス_株式会社ニジボックス Satoshi Arai
nbkouhou
1
9.6k
非機能要件を文化に _株式会社ニジボックス Yosuke Furukawa
nbkouhou
0
420
Other Decks in Programming
See All in Programming
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
190
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
1.6k
tRPCの概要と少しだけパフォーマンス
misoton665
2
260
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
1.1k
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
390
書き換えて学ぶTemporal #fukts
pirosikick
2
360
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.6k
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
140
実用!Hono RPC2026
yodaka
2
300
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
140
【26新卒研修資料】TDD実装演習
dip_tech
PRO
0
170
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
740
Docker and Python
trallard
47
3.8k
Exploring anti-patterns in Rails
aemeredith
3
350
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
290
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
How GitHub (no longer) Works
holman
316
150k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
Un-Boring Meetings
codingconduct
0
280
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
910
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
150
Transcript
アクセシビリティ 株式会社ニジボックス 軽部 勝仁
自己紹介 会長にしごかれる日々を送っています Next.js, React などモダンな開発現場にいます アクセシビリティは3ヶ月前から
本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み
本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み
ウェブアクセシビリティとは ウェブページにある情報や機能の利用しやすさを意味しま す。 引用:https://waic.jp/knowledge/accessibility/ アクセシビリティ → accessibility → a11y と略記されることもある
ウェブアクセシビリティとは ウェブページにある情報や機能の利用しやすさを意味しま す。 引用:https://waic.jp/knowledge/accessibility/ とても抽象的
具体的には スクリーンリーダーで読み上げても伝わる? カラーコントラストが低くて読みにくくない? ♪ 読みやすい? 読みやすい?
アクセシビリティの様々な切り口 目 耳 体 状況 機械
アクセシビリティの様々な切り口 目 耳 体 状況 機械 達成基準がある
達成基準 WCAG (Web Content Accessibility Guidelines) W3C の Web Accessibility
Initiative (WAI) が勧告 WCAG 2.1 が最新(2.2 の勧告は2021年の予定) 国際的には ISO/IEC 40500:2012 (WCAG 2.0 の内容) 国内では JIS X 8341-3:2016 (WCAG 2.0 の内容)
None
None
None
アクセシビリティは必要不可欠
本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み
送信に失敗しました エラー内容が入ります。エラー内容が入ります。エラー内容が入ります。エ ラー内容が入ります。エラー内容が入ります。 閉じる
要件定義 ・最大256文字の動的テキスト ・エラーが起きた時に表示 ・「閉じる」ボタンをクリックすると非表示
要件定義 ・最大256文字の動的テキスト ・エラーが起きた時に表示 ・「閉じる」ボタンをクリックすると非表示 本当にこれだけ?
アクセシビリティ要件 • role=”alert” をつける • 「閉じる」ボタンが button として認識される • Tab
キーで「閉じる」ボタンにフォーカス • 「閉じる」ことが明示される • Enter キーなどでクリックの代替操作ができる • カラーコントラスト
アクセシビリティ要件 • role=”alert” をつける • 「閉じる」ボタンが button として認識される • Tab
キーで「閉じる」ボタンにフォーカス • 「閉じる」ことが明示される • Enter キーなどでクリックの代替操作ができる • カラーコントラスト 定義されない事が多い
アクセシビリティ要件 • role=”alert” をつける • 「閉じる」ボタンが button として認識される • Tab
キーで「閉じる」ボタンにフォーカス • 「閉じる」ことが明示される • Enter キーなどでクリックの代替操作ができる • カラーコントラスト エンジニアの裁量
非機能要件に いかにこだわれるかが エンジニアの真価
アクセシビリティは エンジニアの力量によって 完成度が大きく変わる
本日の内容 1. そもそもアクセシビリティとは 2. 開発現場の実情 3. アクセシビリティ改善の取り組み
WCAG 適合をチェックするツール • Lighthouse • URL を入力して計測するタイプ • 外部から css
を挿入してハイライトするものまで
WCAG 適合をチェックするツール • Lighthouse • URL を入力して計測するタイプ • 外部から css
を挿入してハイライトするものまで 機械には限界がある
送信に失敗しました エラー内容が入ります。エラー内容が入ります。エラー内容が入ります。エ ラー内容が入ります。エラー内容が入ります。 閉じる
お名前 送信する メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所 郵便番号
選択してください 都道府県 ︙
お名前 送信する あ メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所
郵便番号 選択してください 都道府県 ︙ 形式が正しくありません。 aria-invalid=”true”
お名前 送信する メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所 郵便番号
選択してください 都道府県 ︙ <fieldset> でグループ化
お名前 送信する メールアドレス お住まいの住所 郵便番号 選択してください 都道府県 ︙ 書類送付先住所 郵便番号
選択してください 都道府県 ︙ <form> の内側に設置されてる?
文章の意味 や デザインの意図 マークアップ ← 人の力が必要
機械でできることは機械に任せて 人が考えられる時間を増やす
Storybook コンポーネントのカタログ
storybook-addon-a11y
storybook-addon-a11y WCAG 適合をチェックできる
使いにくい場面があった
storybook-addon-a11y WCAG 適合をチェックできる 全体管理が難しい
CLI ツールを作った エラーを報告してくれるようにした
自動化して時間が増えた
None
None
None
None
時間が増えたおかげで 人力が必要な部分に注力
終わりに
作業者的なエンジニアではなく 開発メンバーの一人として取り組める
ご清聴ありがとうございました