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
Accessible な実装を求めたら大変だった
Search
Yuichi Sugiyama
PRO
November 28, 2018
Technology
1.8k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Accessible な実装を求めたら大変だった
Yuichi Sugiyama
PRO
November 28, 2018
More Decks by Yuichi Sugiyama
See All by Yuichi Sugiyama
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
400
サイボウズ と Garoon と The PHP Foundation と 私 / Cybozu and Garoon and The PHP Foundation and me
oogfranz
PRO
1
600
可能な限り確実にmkdirを成功させるには / Make mkdir
oogfranz
PRO
0
720
サイボウズ #Garoon 開発チームの 「 完成度低いの歓迎LT大会 」 PHPerKaigi出張版 / Low quality LT in PHPerKaigi 2023
oogfranz
PRO
0
740
20年ものの巨大プロダクトをKubernetesに移行している話 後日談/Garoon on Kubernetes after talk
oogfranz
PRO
0
640
20年ものの巨大プロダクトをKubernetesに移行している話/Garoon on Kubernetes
oogfranz
PRO
0
560
PHPアプリケーションだってモニタリングしたい / Monitoring PHP application
oogfranz
PRO
1
670
効果的な静的解析の CI導入パターンを求めて / Great static analysis with CI
oogfranz
PRO
3
4.1k
Dev-meets-Ops
oogfranz
PRO
1
1.1k
Other Decks in Technology
See All in Technology
5分でわかるDuckDB Quack
chanyou0311
4
260
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
180
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
140
GitHub Copilot運用のリアル ~AI Credit時代にどう向き合うか~
takafumisu2uk1
0
480
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
280
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
0
160
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
180
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
1.2k
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
280
Zenoh on Zephyr on LiteX
takasehideki
2
130
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
120
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
580
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Invisible Side of Design
smashingmag
301
52k
Design in an AI World
tapps
1
250
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.5k
GitHub's CSS Performance
jonrohan
1033
470k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
The Limits of Empathy - UXLibs8
cassininazir
1
370
How to Ace a Technical Interview
jacobian
281
24k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Navigating Team Friction
lara
192
16k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
Accessibleͳ ࣮ΛٻΊͨΒ େมͩͬͨ
Who am I ‱ਿࢁ ༞Ұɹ@oogFranz ‱ࣄ༰ •ϓϩάϥϚ •εΫϥϜϚελʔ •δϟζϕʔγετʢMASHݭָஂʣ
Who am I ‱ਿࢁ ༞Ұɹ@oogFranz ‱ࣄ༰ •ϓϩάϥϚ •εΫϥϜϚελʔ •δϟζϕʔγετʢMASHݭָஂʣ
ϓϩάϥϚͷཱͪҐஔ • →HTMLͷΈཱͯσβΠφʔ • PGԿΛ͢Δ͔ʁ • →Accessibleͳεςʔτͷ࣮ / / A
• →HTMLͷΈཱͯσβΠφʔ • PGԿΛ͢Δ͔ʁ • →Accessibleͳεςʔτͷ࣮ A D G /
I / ϓϩάϥϚͷཱͪҐஔ
PGͷཱͪҐஔ • →HTMLͷΈཱͯσβΠφʔ • PGԿΛ͢Δ͔ʁ • →Accessibleͳεςʔτͷ࣮ A D G
/ I / ૢ࡞ՄೳͰݎ࿚ͳ6*ͷ࣮Λ୲
࣮ྫ • ఱؾ༧ใͰશࠃ130Ҏ্ͷҬΛબΔπϦʔ
࣮ྫ • ఱؾ༧ใͰશࠃ130Ҏ্ͷҬΛબΔπ Ϧʔ ΞΫηγϏϦςΟରԠͰ ఆͷഒɺ࣮ʹ͔͔ͬͯ͠·ͬͨ
ͳʹʹ͕͔͔͔࣌ؒͬͨ • ΩʔϘʔυରԠ • State ͱ View ͷ࿈ಈ • ಈ࡞֬ೝͷ͠͞
͜͏Ͱ͖ͯͨΒΑ͔ͬͨɺΛڞ༗͠·͢ʂ
ΩʔϘʔυରԠ
ΩʔϘʔυରԠ ಈ͖ΛҰͭҰ࣮ͭ
ΩʔϘʔυରԠ ಈ͖ΛҰͭҰ࣮ͭ Ωʔºૢ࡞ύʔπ࣮ ࣮ίετ͕Ұؾʹ;͘ΒΉɻɻɻ
͜͏Ͱ͖ͯͨΒΑ͔ͬͨ • ΩʔϘʔυͰͲ͏ಈ͔ͤΔ͖͔ɺ Λ͋Β͔͡ΊѲ͢Δ https://www.w3.org/WAI/GL/wiki/ Using_ARIA_trees • ΑΓγϯϓϧͳUIͳ͍͔ͷٻ
State ͱ Viewͷ࿈ಈ <li id = "region_0" aria-label = "ւಓ"
role = "treeitem" class = "icon_arrow_close" aria-expanded = "false" > <li id = "region_1" aria-label = "౦” role = "treeitem" class = "icon_arrow_open" aria-expanded = "true">
State ͱ Viewͷ࿈ಈ <li id = "region_0" aria-label = "ւಓ"
role = "treeitem" class = "icon_arrow_close" aria-expanded = "false" > <li id = "region_1" aria-label = "౦” role = "treeitem" class = "icon_arrow_open" aria-expanded = "true"> 4UBUFʹ࿈ಈͯ͠7JFX༻ʹDMBTTΛΓସ͑
͜͏Ͱ͖ͯͨΒΑ͔ͬͨ • State ͱ View = ϓϩάϥϚʔ ͱ σβΠφʔ •
σβΠφʔͱ࣮Λҙࣝͨ͠Viewͷ࡞ • aria-expandedΛCSSηϨΫλʹ͏ ex.) li[aria-expanded=“true”]
ಈ࡞֬ೝͷ͠͞ • ͏·͘ಈ͔ͳ͍࣌ʹԿͷͳͷ͔Θ͔Βͳ͍ • HTML͕ؒҧ͍ͬͯΔʁ • ϒϥβ͕ରԠ͍ͯ͠ͳ͍ʁ • ࢧԉٕज़͕ະରԠʁ •
NVDA + ChromeͰಈ͚͘ͲVoiceOver + Safari ͩͱಡΈ্͛ΒΕͳ͍ͱ͔͟Βʢٯ·ͨવΓʣ
͜͏Ͱ͖ͯͨΒΑ͔ͬͨ • W3Cͷ࣮ྫͰ·ͣಈ࡞νΣοΫ • ϒϥβ/ࢧԉٕज़ͷΛΊʹΩϟον͢Δ • ΘΓ͖Γେࣄ
·ͱΊ • ϦονͳUI༻๏༻ྔΛकͬͯ͏ • ΩʔϘʔυରԠ೦ೖΓʹ • σβΠφʔͱΑΓ࿈ܞ͍ͯͧ͘͠ • ΘΓ͖Γେࣄ