Submit Search
Upload
アクセシビリティから考えるReactアプリの品質向上
•
0 likes
•
295 views
Toru MOCHIDA
Follow
2023年10月20日の「クラスメソッドのReact事情大公開スペシャル」にて発表した資料です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 21
Download now
Download to read offline
Recommended
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
Hironori Washizaki
To be sn agile enterprise
To be sn agile enterprise
Rakuten Group, Inc.
次世代企業内ソーシャルの展開手法
次世代企業内ソーシャルの展開手法
kumo2010
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術
Recruit Technologies
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
Taku ogawa
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
伸夫 森本
Jssm26_スライド公表用
Jssm26_スライド公表用
Kyoko Hanada
エンジニアのためのプロダクトマネジメント入門 XP祭り2018 #xpjug
エンジニアのためのプロダクトマネジメント入門 XP祭り2018 #xpjug
満徳 関
Recommended
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
アジャイル品質パターンによる伝統的な品質保証(Quality Assurance)からアジャイル品質(Agile Quality)への変革
Hironori Washizaki
To be sn agile enterprise
To be sn agile enterprise
Rakuten Group, Inc.
次世代企業内ソーシャルの展開手法
次世代企業内ソーシャルの展開手法
kumo2010
リクルート式ビッグデータ活用術
リクルート式ビッグデータ活用術
Recruit Technologies
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
ユーザーエクスペリエンスに基づいた指標設計と改善の考え方
Taku ogawa
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
伸夫 森本
Jssm26_スライド公表用
Jssm26_スライド公表用
Kyoko Hanada
エンジニアのためのプロダクトマネジメント入門 XP祭り2018 #xpjug
エンジニアのためのプロダクトマネジメント入門 XP祭り2018 #xpjug
満徳 関
IA Workshop, Introduction to Information Architecture (2002)
IA Workshop, Introduction to Information Architecture (2002)
Nobuya Sato
アジャイルマネジメントとは?
アジャイルマネジメントとは?
Kiro Harada
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
naoki ando
超高速開発の基礎概念 20141119 0
超高速開発の基礎概念 20141119 0
正善 大島
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Google Cloud Platform - Japan
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Reiko Rikuno
DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術
Yusuke Uchida
リクルート式サービス開発 カスタマーの本音×人工知能
リクルート式サービス開発 カスタマーの本音×人工知能
Recruit Technologies
Cloud Native and Agile Approach
Cloud Native and Agile Approach
Shinya Yanagihara
そのアプリ、目を閉じても使えますか? 〜 アクセシビリティの基礎と対応の考え方 〜
そのアプリ、目を閉じても使えますか? 〜 アクセシビリティの基礎と対応の考え方 〜
Toru MOCHIDA
Future customer experience
Future customer experience
Katsuhiro Aizawa
UX生トーク vol.6 機能組織の価値発揮!UX改善のディレクション術
UX生トーク vol.6 機能組織の価値発揮!UX改善のディレクション術
Saori Baba
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
Yuta Shimada
デジタル化の波を乗りこなすために(itSMF Japan Conference/Expo 2018講演資料)
デジタル化の波を乗りこなすために(itSMF Japan Conference/Expo 2018講演資料)
IT VALUE EXPERTS Inc.
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
agileware_jp
20190117 teamup
20190117 teamup
Katsuhiro Honda
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
Yoshihito Kuranuki
20190807_Aidemy Azure AI ご紹介
20190807_Aidemy Azure AI ご紹介
Deep Learning Lab(ディープラーニング・ラボ)
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
はじめてのアジャイル
はじめてのアジャイル
Yoshihito Kuranuki
クラスメソッドが目指すアクセシビリティの方向性
クラスメソッドが目指すアクセシビリティの方向性
Toru MOCHIDA
ダイバーシティを実現するアクセシビリティの基礎と実践
ダイバーシティを実現するアクセシビリティの基礎と実践
Toru MOCHIDA
More Related Content
Similar to アクセシビリティから考えるReactアプリの品質向上
IA Workshop, Introduction to Information Architecture (2002)
IA Workshop, Introduction to Information Architecture (2002)
Nobuya Sato
アジャイルマネジメントとは?
アジャイルマネジメントとは?
Kiro Harada
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
naoki ando
超高速開発の基礎概念 20141119 0
超高速開発の基礎概念 20141119 0
正善 大島
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Google Cloud Platform - Japan
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Reiko Rikuno
DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術
Yusuke Uchida
リクルート式サービス開発 カスタマーの本音×人工知能
リクルート式サービス開発 カスタマーの本音×人工知能
Recruit Technologies
Cloud Native and Agile Approach
Cloud Native and Agile Approach
Shinya Yanagihara
そのアプリ、目を閉じても使えますか? 〜 アクセシビリティの基礎と対応の考え方 〜
そのアプリ、目を閉じても使えますか? 〜 アクセシビリティの基礎と対応の考え方 〜
Toru MOCHIDA
Future customer experience
Future customer experience
Katsuhiro Aizawa
UX生トーク vol.6 機能組織の価値発揮!UX改善のディレクション術
UX生トーク vol.6 機能組織の価値発揮!UX改善のディレクション術
Saori Baba
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
Yuta Shimada
デジタル化の波を乗りこなすために(itSMF Japan Conference/Expo 2018講演資料)
デジタル化の波を乗りこなすために(itSMF Japan Conference/Expo 2018講演資料)
IT VALUE EXPERTS Inc.
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
agileware_jp
20190117 teamup
20190117 teamup
Katsuhiro Honda
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
Yoshihito Kuranuki
20190807_Aidemy Azure AI ご紹介
20190807_Aidemy Azure AI ご紹介
Deep Learning Lab(ディープラーニング・ラボ)
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
はじめてのアジャイル
はじめてのアジャイル
Yoshihito Kuranuki
Similar to アクセシビリティから考えるReactアプリの品質向上
(20)
IA Workshop, Introduction to Information Architecture (2002)
IA Workshop, Introduction to Information Architecture (2002)
アジャイルマネジメントとは?
アジャイルマネジメントとは?
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
超高速開発の基礎概念 20141119 0
超高速開発の基礎概念 20141119 0
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Social GAME における AI 活用事例 [第 4 回 Google Cloud INSIDE Games & Apps]
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
Redmineの活用事例‐多様なプロジェクト管理に対するツールの適用
DRIVE CHARTを支えるAI技術
DRIVE CHARTを支えるAI技術
リクルート式サービス開発 カスタマーの本音×人工知能
リクルート式サービス開発 カスタマーの本音×人工知能
Cloud Native and Agile Approach
Cloud Native and Agile Approach
そのアプリ、目を閉じても使えますか? 〜 アクセシビリティの基礎と対応の考え方 〜
そのアプリ、目を閉じても使えますか? 〜 アクセシビリティの基礎と対応の考え方 〜
Future customer experience
Future customer experience
UX生トーク vol.6 機能組織の価値発揮!UX改善のディレクション術
UX生トーク vol.6 機能組織の価値発揮!UX改善のディレクション術
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
【CNDT2022】SIerで実践!クラウドネイティブを普及させる取り組み
デジタル化の波を乗りこなすために(itSMF Japan Conference/Expo 2018講演資料)
デジタル化の波を乗りこなすために(itSMF Japan Conference/Expo 2018講演資料)
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
【導入事例】Lychee Redmineユーザーが語る!トラブル予防としての使い方
20190117 teamup
20190117 teamup
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
20190807_Aidemy Azure AI ご紹介
20190807_Aidemy Azure AI ご紹介
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
はじめてのアジャイル
はじめてのアジャイル
More from Toru MOCHIDA
クラスメソッドが目指すアクセシビリティの方向性
クラスメソッドが目指すアクセシビリティの方向性
Toru MOCHIDA
ダイバーシティを実現するアクセシビリティの基礎と実践
ダイバーシティを実現するアクセシビリティの基礎と実践
Toru MOCHIDA
写真・動画を解析するAmazon Rekognitionの基礎と実装
写真・動画を解析するAmazon Rekognitionの基礎と実装
Toru MOCHIDA
Amazon Echo Showのユーザー補助機能
Amazon Echo Showのユーザー補助機能
Toru MOCHIDA
Amazon Alexaスキルとデバイスのアクセシビリティを考える
Amazon Alexaスキルとデバイスのアクセシビリティを考える
Toru MOCHIDA
アクセシブルな音声・動画プレイヤーのご紹介
アクセシブルな音声・動画プレイヤーのご紹介
Toru MOCHIDA
オープンソースのアクセシビリティ・チェックツール
オープンソースのアクセシビリティ・チェックツール
Toru MOCHIDA
アクセシビリティの基礎
アクセシビリティの基礎
Toru MOCHIDA
電子書籍のアクセシビリティ
電子書籍のアクセシビリティ
Toru MOCHIDA
ACRI最新通信ダイジェスト
ACRI最新通信ダイジェスト
Toru MOCHIDA
アクセシビリティ概要(Silverlightを囲む会 in 大阪#6)
アクセシビリティ概要(Silverlightを囲む会 in 大阪#6)
Toru MOCHIDA
WCAG勉強会@関西について
WCAG勉強会@関西について
Toru MOCHIDA
WCAG2について
WCAG2について
Toru MOCHIDA
アプリケーションのアクセシビリティ~WCAGからARIA、RIAまで~
アプリケーションのアクセシビリティ~WCAGからARIA、RIAまで~
Toru MOCHIDA
最近のウェブアクセシビリティの動向とCMSでの対応について
最近のウェブアクセシビリティの動向とCMSでの対応について
Toru MOCHIDA
アクセシビリティ・イントロダクション
アクセシビリティ・イントロダクション
Toru MOCHIDA
ウェブアプリケーションのアクセシビリティ入門
ウェブアプリケーションのアクセシビリティ入門
Toru MOCHIDA
JIS X 8341-3:2010時代のWebアプリケーション開発
JIS X 8341-3:2010時代のWebアプリケーション開発
Toru MOCHIDA
KOFで社会貢献のチャンスを得よう
KOFで社会貢献のチャンスを得よう
Toru MOCHIDA
More from Toru MOCHIDA
(19)
クラスメソッドが目指すアクセシビリティの方向性
クラスメソッドが目指すアクセシビリティの方向性
ダイバーシティを実現するアクセシビリティの基礎と実践
ダイバーシティを実現するアクセシビリティの基礎と実践
写真・動画を解析するAmazon Rekognitionの基礎と実装
写真・動画を解析するAmazon Rekognitionの基礎と実装
Amazon Echo Showのユーザー補助機能
Amazon Echo Showのユーザー補助機能
Amazon Alexaスキルとデバイスのアクセシビリティを考える
Amazon Alexaスキルとデバイスのアクセシビリティを考える
アクセシブルな音声・動画プレイヤーのご紹介
アクセシブルな音声・動画プレイヤーのご紹介
オープンソースのアクセシビリティ・チェックツール
オープンソースのアクセシビリティ・チェックツール
アクセシビリティの基礎
アクセシビリティの基礎
電子書籍のアクセシビリティ
電子書籍のアクセシビリティ
ACRI最新通信ダイジェスト
ACRI最新通信ダイジェスト
アクセシビリティ概要(Silverlightを囲む会 in 大阪#6)
アクセシビリティ概要(Silverlightを囲む会 in 大阪#6)
WCAG勉強会@関西について
WCAG勉強会@関西について
WCAG2について
WCAG2について
アプリケーションのアクセシビリティ~WCAGからARIA、RIAまで~
アプリケーションのアクセシビリティ~WCAGからARIA、RIAまで~
最近のウェブアクセシビリティの動向とCMSでの対応について
最近のウェブアクセシビリティの動向とCMSでの対応について
アクセシビリティ・イントロダクション
アクセシビリティ・イントロダクション
ウェブアプリケーションのアクセシビリティ入門
ウェブアプリケーションのアクセシビリティ入門
JIS X 8341-3:2010時代のWebアプリケーション開発
JIS X 8341-3:2010時代のWebアプリケーション開発
KOFで社会貢献のチャンスを得よう
KOFで社会貢献のチャンスを得よう
アクセシビリティから考えるReactアプリの品質向上
1.
アクセシビリティから考える Reactアプリの品質向上 クラスメソッド 持田 徹
2.
自己紹介 ● もっちー @motchie
持田 徹 ● 2018年7月入社 ● CX事業本部Delivery部デリバリーマネー ジャー ● 受託開発案件のプロジェクトマネージャー ・ スクラムマスター ● 2002年からアクセシビリティの研究・ 執筆・講演・コンサルティング 2
3.
アクセシビリティ(a11y)とは? ● アクセス可能な度合い、アクセスしやすさ ● 障害者や高齢者を含む、より多くのユーザーが、 より多くの利用環境から、より多くの場面で利用で きるようにしていきたい ●
より多くの人が利用できる状態=「アクセシブル」 3
4.
アクセシビリティはソフトウェア品質評価の要素 4 独立行政法人情報処理推進機 構(IPA)技術本部 ソフトウェ ア高信頼化センター(SEC) 『つながる世界のソフトウェア 品質ガイド あたらしい価値提 供のための品質モデル活用の すすめ
| 書籍・刊行物』より
5.
Q. Reactアプリを アクセシブル(高品質)にするには? A. スクリーンリーダについて 知ることがカギ 5
6.
ITの支援技術(Assistive Technology; AT) PCやスマホなどを使う際に支援が必要なユーザーに、 そのニーズに合う機能を提供するソフトウェアや ハードウェア、デバイスなどの総称 ●
スクリーン・リーダー(VoiceOver, TalkBack など) ● 画面拡大、色反転、ジョイスティック、トラックボール、 キーボードガード、... 6
7.
macOSのVoiceOverの基本 ● 起動と終了: Command+F5キー ●
VoiceOverカーソル: 読み上げ・操作対象を選ぶ ● VoiceOver修飾キー: Caps Lock または Control+Option に設定 ○ VO+F8: VoiceOver修飾キーとF8の組み合わせ ● VoiceOverローター(VO+U): ○ Webページ内の特定の場所への移動を簡単に 7
8.
macOSのVoiceOverのデモ 8
9.
Accessibility Object Model(AOM)/Tree 9 from:
Accessibility Object Model | aom
10.
主なAccessibility node properties 10 名前(name) 「アクセシブルな」名前。label要素で関連づけ られる場合も。 description 説明。nameより詳細な説明。title属性などで 付与される。 役割(role) ボタン、リストといった役割。この値によって振 る舞いが変わる。必ず存在する項目。 状態(state) オブジェクトがチェックされている、展開されて いるなどの状態をあらわす。
11.
Chrome DevToolsでのAOMの確認方法 11
12.
画面はHTMLのセマンティクスで表現する 12 from: What Is Semantic
Markup and Why You Should Use It | by Sumudu Siriwardana | CodeX | Medium
13.
例題: このコードサンプルの問題点は? import React,
{ useState } from "react"; function App() { return ( <header> <LikeButton /> </header> ); } function LikeButton() { const [count, setCount] = useState(999); return <span>♥ {count}</span>; } export default App; 13 from: Reactでいいねボタンを作ろう の途中のサ ンプルを改変
14.
Reactコンポーネントで考慮すべき点(1) ● JSXは、コンポーネントが、どんなHTMLセマンティクスで表現さ れるのがベストかを考慮して実装する。「とりあえずdiv、とりあえ ずspan」は避ける ● 画面全体がHTML
Standardに準拠しているか常に確認する ● アクセシビリティの問題は機械チェックだけでは検知できない。 「Storybookにa11yチェックプラグインを入れたらOK」などの 「アクセシビリティは理解したくない、仕組みでカバーする」運用 は、現在のところできない。人による設計やチェックが必須 14
15.
Q. タブ、ハンバーガーメニューなどは、 HTMLでは表現できないのですが...? 15
16.
A.WAI-ARIAを使います 16 ● W3CのWeb Accessibility
Initiativeが策定する Accessible Rich Internet Applications (WAI-ARIA) 仕様 ● HTMLにない役割、性質、状態をrole属性、aria-*属性を使っ て追加・拡張することができる ● role=”tab”、role=”tabpanel”、role=”tablist”、... ● かなり高機能、ただし乱用はかえってアクセシビリティを低下さ せてしまう
17.
ARIA Authoring Practices
Guideについて 17 from: ARIA Authoring Practices Guide | APG | WAI | W3C
18.
Reactコンポーネントで考慮すべき点(2) ● キーボード操作、フォーカスマネジメント、色のコントラスト、 TabIndex、適切なWAI-ARIAの利用など、アクセシブルなコン ポーネント開発には考慮点が多いため、自分でUIを作ることは極 力避ける ● dialog要素、Popover
APIなど最新HTMLの恩恵を利用する ● 既存のReact Component Librariesにある ”Accessibility out of the box”は鵜呑みにしない方がよい ● UnstyledなHeadless UI、AdobeによるReact Ariaを組 み合わせる方向か 18
19.
その他に考慮すべき点 ● スクリーンリーダーでは、見た目上のページが切り替わったことに 気づくことができないため、React Helmetなどを用いてペー ジタイトルを適宜変更する ○
Astro3.2などには、<ViewTransitions /> に”Route Announcer”が追加された ● 動的に画面が更新される部分には、ARIA live regionsを利用 して支援技術に更新を通知する 19
20.
少しずつ始めていきましょう! ● JSXでのマークアップをセマンティックに、Roleを意識する ● 画面全体のHTMLが仕様に準拠するように ●
HTMLで表現できない部分は、最低限のWAI-ARIAで ● 独自UIは避け、アクセシブルなコンポーネントライブラリを利用 ● 動的な更新部分はARIA live regionsを利用 ● ページ遷移はRoute Announcerで通知 ● スクリーンリーダーでテスト、キーボード操作、文字拡大 etc.を確 認 20
21.
ありがとうございました! 21
Download now