狠狠撸

狠狠撸Share a Scribd company logo
スクリーンリーダーで使いやすい
サービスやアプリを作りたい技術者の声
西本 卓也
@nishimotz / @24motz
NVDA日本語チーム 代表 / 株式会社シュアルタ
1
2
かずと君
? 2010年に家族が「無料のスクリーンリーダー」を見つける
? 当時、小学校3年生
? NVDA日本語版「やっと日本語の入力と出力ができた」ばかり
? その後、思い切ってNVDAに乗り換える
? インターネットでNVDAのイベント配信を聞く
? 一般のソフトを使いたい
? 今日のお題
? NVDAで「あれっ」と思うこと
3
自己紹介:西本
? 広島 → 早稲田大学 → 京都工芸繊維大学 → 東京大学
? 機械学習、認知科学、障害者支援 → 博士(工学)
? スクリーンリーダー NVDA 日本語版
? 広島(2011年から)
? リモートワーク/ソフトウェア受託開発
? 株式会社シュアルタ(2018年から)
? 信号処理/自然言語/Web/組み込み/モバイル/クラウド
? 活動
? WAIC / Python / こどもプログラミング
4
NVDA: Non-Visual Desktop Access
? オープンソースの Windows 対応スクリーンリーダー
? オーストラリアの NPO と世界のコミュニティ
? 3ヶ月ごとにリリース、新しい技術や環境への対応
? NVDA日本語チーム : www.nvda.jp
? 日本語版の配布
? 本家版の開発と翻訳
? FocusHighlight アドオン
? 利用者?技術者?開発者に対する普及啓発(11月 サイトワールド)
? NVDAチートシート配布中
5
CSUN 2019 アナハイム
6
質問①
7
8
何をやっていたのか
? Chrome を NVDA で使っている
? キーボード(矢印キー)で移動して Web サイトを読む
9
答え①
「リンク」だと解釈されていません!
「クリック可能」は NVDA の実力
そして悲鳴!
10
Web a11y の役割分担
? NVDAが作る世界
? 変化に強い
コンテンツ アプリ OS
スクリーンリーダー
音声?点字
11
画面拡大
??
フォーカスモード(ガシャ)
? キーイベントはブラウザへ
? コンテンツの操作
? ブラウザ自身の操作も
? 上下矢印でスクロール
? ふつうのPC操作と同じ
? マウスなしでWindows
12
コンテンツ ブラウザ OS
NVDA
A B C D??
ブラウズモード(ポン)
? キーイベントはNVDAへ
? NVDAがブラウザを制御する
? 読み取り場所
? レビューカーソル
? ナビゲーターオブジェクト
13
コンテンツ ブラウザ OS
NVDA
A B C D??
ブラウズモードの機能
? 上下の矢印キー : 読み取り場所の移動
? Tab / スペース / Enter など : フォーカスモードと同じ機能
? 自動的にフォーカスモードに切り替わる
? エディットフィールド、コンボボックス
? 1文字ナビゲーション(見出しジャンプなど)
? NVDA+F7 : 要素リスト
14
1文字ナビゲーションの例
? D: ランドマーク(Shift+Dで逆方向、以下同じ)
? H: 見出し
? I: リスト項目
? E: エディットフィールド
? B: ボタン
? C: コンボボックス
? X: チェックボックス
? G: 画像
15
クリック可能?
? Firefox : リンク
? Chrome : クリック可能
? 「リンク」であるべき
? Enter または スペース
? リンクを開く
16
Firefox アクセシビリティプロパティ
17
18
Chrome "Role: LayoutTable"
19
<a> を display: table している
20
「クリック可能」=「実行」可能
? DOM の click イベントに反応できる
? 通常はボタンやリンクの「既定のアクション」として実装
? だが onclick 属性さえあれば「マウスとタップに反応」できる
? NVDA では
? 「既定のアクション」がない要素を「実行」できる
? フォーカスできない要素を NVDA+Enter で「実行」できる
? ロールがあれば「クリック可能」を省略して「リンク」などと読む
? NVDAの「悲鳴」
? CSS によって「リンクではなくなった」と Chrome が解釈
? 「書式とドキュメント情報」で報告をオフにできる
21
<a role="link"> で回避
22
資料
? WEB+DB PRESS Vol.95
? 黒澤さんの記事
? 《「実行」は、入力デバイスごとの場合分けが不要な操作》
23
質問②
24
25
何をやっていたのか?
? Internet Explorer 11 + NVDA で「ツイキャス」を使う
? Flash が使われている
26
答え②
実はすでに、ものすごく配慮されている!
Chrome を使いましょう!
27
NVDAの「埋め込みオブジェクト」対応
? 対象
? Oracle Java Applet
? Adobe Flash Player
? HTML5 Video (MediaElements.js)
? NVDA ブラウズモード
? O / Shift+O : 1文字ナビゲーション
? Enter : オブジェクトの中に入る
? オブジェクトの中に入ると
? アプリのように Tab / Shift+Tab でフォーカス移動
? NVDA+Ctrl+スペース : 元のドキュメントに移動
ブラウズモードのドキュメント
28
埋め込みオブジェクト
アンケート ボタン しか見えないが
? 画像を変更 ボタン
? アンケート ボタン
? 録画を保存する ボタン
? このライブを削除する ボタン
? 録画はあとで公開 ボタン
29
考察
? たしかに
? 埋め込みオブジェクトで Enter できない(気がする)
? オブジェクトの中のボタンは Tab で見つかる(確実ではないが)
? だが
? IE11 + Flash + スクリーンリーダーは配慮されている
? スクリーンリーダーユーザーにしか見えないボタンがある
? 許してあげよう(許してください)
? IE11 だし
? Flash だし
30
質問③
31
32
何をやっていたのか?
? Chrome + NVDA +「日本語表現インフォ」
? 辞書検索サイト
? 動的コンテンツとして広告が入る
? 広告で繰り返し「追加マークあり」と読まれる
33
答え③
「校閲者による更新の報告」をオフに!
「挿入マークあり」になるかも!
34
NVDA 追加マークあり = inserted
? identifies inserted content
? reported when text is marked as having been inserted
35
<ins> 要素 : 製作者の意図?
36
ins 要素とは
? 文書に 追加 されたテキストの範囲を表します
37
「追加マークあり」の使われ方
? ROLE_INSERTED_CONTENT
? IAccessible2 で標準化
? NVDA : 同じ種類の情報は同じように読み上げる
? Webでもアプリでも
? 一貫性
38
Microsoft Word「変更履歴の記録」
39
追加マーク
上から下に1行ずつ移動
こんにちは。
これは2行目です。
追加マークあり
これは2行目と3行目の間に追加された行です。
追加マークなし
これは3行目です。
ブランク
40
下から上に1行ずつ移動
これは3行目です。
追加マークあり
これは2行目と3行目の間に追加された行です。
追加マークなし
これは2行目です。
こんにちは。
41
「追加マークあり」の経緯
? 変化したら差分を報告する
? 逆方向の移動や1文字ナビゲーションで破綻したくない
? NVDA 2015.4
? IE / MSHTML で <ins> / <del> などを報告
? NVDA 2016.2
? Microsoft Word で文章校正結果の報告
? 書式とドキュメント情報の設定
? 校閲者による更新の報告
? 無効にすると「日本語表現インフォ」に効果あり
42
変更履歴機能がWebアプリに
? IAccessible2 の開発
? 現在は github.com/LinuxA11y/IAccessible2
? Firefox と Chrome の開発者が議論
? あっという間に <ins> 対応
? NVDA 2018.3
? Google Chrome において
Webページの中で挿入や削除のマークアップを報告するように
? Firefox + NVDA も対応済み
? Firefox 66.0.5 で確認
43
44
「挿入マークあり」にするべき
? insert = 追加(根拠はたぶんMDN)
? Microsoft ランゲージポータル : insert = 挿入 / add = 追加
? 「マーク」は意訳(議論は歓迎)
45
質問④
46
47
何をやっていたのか?
? Chrome + NVDA
? Google 検索
? エディットに移動 : 自動的にフォーカスモードに(ガシャ)
? Enter : 検索が実行されて次のページへ
? ページ更新 : 自動的にブラウズモードに(ポン)
? 開いたページの自動読み上げ
? YouTube サイトで実行すると
? ページが変わっているのに、ブラウズモードに戻らない?
? NVDA+T : 現在のウィンドウのタイトルの報告
48
答え④
慣れましょう!
49
実はページ遷移してない
? どうやら www.youtube.com は SPA
? Single-Page Application
? 入力して Enter を押すとページ遷移する ように見える
? タイトルやURLは更新される
? 新しいHTMLページが取得されていない
? /results?search_query=NVDA → application/json
? NVDA は「ポン」にならない
? 直前のエディットフィールドでフォーカスモードになったまま
? Microsoft Edge + ナレーターでも状況は同じ
50
51
52
NVDAのブラウズモード
? 設定できること
? 自動読み上げしない
? 「ガシャ」「ポン」のかわりに音声でモードを報告
? ブラウズモードに自動的に切り替えない
? NVDA 2019.2 で追加されるオプション
? アクセシビリティ検証におすすめ?
? FocusHighlight 6.0
? ブラウズモードでない場合は常にフォーカスモード
? 色や太さのカスタマイズ機能を実装中
? 将来のNVDAにハイライト機能を標準搭載
53
54
NVDAで検証する意義
? 開発者も利用者も無料
? 相手にお願いしやすい
? やってみないとわからない
? サードパーティのライブラリやフレームワーク
? 動的なコンテンツ
? 他のスクリーンリーダーに対応させる準備になる
? 標準化を推進
? 開発者と利用者が Web の「概念」を共有する手段
? 開発や翻訳への参加を歓迎
55
アクセシビリティのこれから
? 頻繁にリリースされるアプリやサービス
? アクセシビリティを頑張ってもすぐに壊れる?
? 展望
? 機械学習?人工知能?クラウド
? オープンソース?検証ツール?自動化
? 組み込まれていく
? 新しい技術、正しい開発手法、ビジネス習慣
56
PowerPoint 代替テキストの自動生成
57
Android リリース前レポート
58
NVDA 日本語版のユーザー数
59
Thanks to かずと君
60
Ad

Recommended

バージョン管理ツールの话
バージョン管理ツールの话
Shota Homma
?
ウェブディレクターのための Web A11Y 勉強会 #02
ウェブディレクターのための Web A11Y 勉強会 #02
Kazuhiko Tsuchiya
?
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp
Takuya Nishimoto
?
171031 nishimoto-nvdajp
171031 nishimoto-nvdajp
Takuya Nishimoto
?
アクセシビリティ検証ツールとしての狈痴顿础
アクセシビリティ検証ツールとしての狈痴顿础
Takuya Nishimoto
?
171111 nishimoto-nvdajp-v2
171111 nishimoto-nvdajp-v2
Takuya Nishimoto
?
奥别产制作者のための狈痴顿础入门
奥别产制作者のための狈痴顿础入门
Takuya Nishimoto
?
スマホデザインパターン なう
スマホデザインパターン なう
Android UI勉強会
?
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
Akiko Ohtsuka
?
「モダンな」可视化アプリケーション开発とはどのようなものか?
「モダンな」可视化アプリケーション开発とはどのようなものか?
Keiichiro Ono
?
スクリーンリーダーと点字ディスプレイの话
スクリーンリーダーと点字ディスプレイの话
Takuya Nishimoto
?
复雑な図表の代替テキスト
复雑な図表の代替テキスト
Saeki Tominaga
?
市场动向并びに弊社製品の今后の展望について
市场动向并びに弊社製品の今后の展望について
Ken Azuma
?
【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれから
Ken Azuma
?
Android Design ざっくりレビュー
Android Design ざっくりレビュー
Naoki Hashimoto
?
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
Yasuhiko Yamamoto
?
市场动向并びに弊社製品の今后の展望について
市场动向并びに弊社製品の今后の展望について
Ken Azuma
?
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
Yasuhiko Yamamoto
?
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
?
狈痴顿础日本语版の思い出(仮)
狈痴顿础日本语版の思い出(仮)
Takuya Nishimoto
?
【罢别肠丑产耻锄锄】迟颈迟补苍颈耻尘资料
【罢别肠丑产耻锄锄】迟颈迟补苍颈耻尘资料
洋平 前田
?
能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社
Brrs Nguyen(2TS)
?
1月度コミュニティビジネスレポート
1月度コミュニティビジネスレポート
cdlab
?
コミュニティビジネスレポート1月号 by コミュニティデザイン研究所
コミュニティビジネスレポート1月号 by コミュニティデザイン研究所
komahiro0714
?
K1hash20121024
K1hash20121024
Keiichi Hashimoto
?
摆2罢厂闭3顿インタラクティブ広告础搁
摆2罢厂闭3顿インタラクティブ広告础搁
Brrs Nguyen(2TS)
?
教育分野で利用する础搁(拡张现実)と痴搁(仮想现実)の技术
教育分野で利用する础搁(拡张现実)と痴搁(仮想现実)の技术
Etsuji Kameyama
?
221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
Takuya Nishimoto
?
220427-pydata 統計?データ分析 特集
220427-pydata 統計?データ分析 特集
Takuya Nishimoto
?

More Related Content

Similar to 190516 nishimoto (20)

UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
Akiko Ohtsuka
?
「モダンな」可视化アプリケーション开発とはどのようなものか?
「モダンな」可视化アプリケーション开発とはどのようなものか?
Keiichiro Ono
?
スクリーンリーダーと点字ディスプレイの话
スクリーンリーダーと点字ディスプレイの话
Takuya Nishimoto
?
复雑な図表の代替テキスト
复雑な図表の代替テキスト
Saeki Tominaga
?
市场动向并びに弊社製品の今后の展望について
市场动向并びに弊社製品の今后の展望について
Ken Azuma
?
【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれから
Ken Azuma
?
Android Design ざっくりレビュー
Android Design ざっくりレビュー
Naoki Hashimoto
?
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
Yasuhiko Yamamoto
?
市场动向并びに弊社製品の今后の展望について
市场动向并びに弊社製品の今后の展望について
Ken Azuma
?
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
Yasuhiko Yamamoto
?
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
?
狈痴顿础日本语版の思い出(仮)
狈痴顿础日本语版の思い出(仮)
Takuya Nishimoto
?
【罢别肠丑产耻锄锄】迟颈迟补苍颈耻尘资料
【罢别肠丑产耻锄锄】迟颈迟补苍颈耻尘资料
洋平 前田
?
能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社
Brrs Nguyen(2TS)
?
1月度コミュニティビジネスレポート
1月度コミュニティビジネスレポート
cdlab
?
コミュニティビジネスレポート1月号 by コミュニティデザイン研究所
コミュニティビジネスレポート1月号 by コミュニティデザイン研究所
komahiro0714
?
K1hash20121024
K1hash20121024
Keiichi Hashimoto
?
摆2罢厂闭3顿インタラクティブ広告础搁
摆2罢厂闭3顿インタラクティブ広告础搁
Brrs Nguyen(2TS)
?
教育分野で利用する础搁(拡张现実)と痴搁(仮想现実)の技术
教育分野で利用する础搁(拡张现実)と痴搁(仮想现実)の技术
Etsuji Kameyama
?
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
UI&UX / 重要なのは、毎日さわって嬉しい UI UX!
Akiko Ohtsuka
?
「モダンな」可视化アプリケーション开発とはどのようなものか?
「モダンな」可视化アプリケーション开発とはどのようなものか?
Keiichiro Ono
?
スクリーンリーダーと点字ディスプレイの话
スクリーンリーダーと点字ディスプレイの话
Takuya Nishimoto
?
复雑な図表の代替テキスト
复雑な図表の代替テキスト
Saeki Tominaga
?
市场动向并びに弊社製品の今后の展望について
市场动向并びに弊社製品の今后の展望について
Ken Azuma
?
【16-D-1】UI のこれまでの10年とこれから
【16-D-1】UI のこれまでの10年とこれから
Ken Azuma
?
Android Design ざっくりレビュー
Android Design ざっくりレビュー
Naoki Hashimoto
?
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
わんくま名古屋#25(20121201) LT:「開発体験テンプレートを使ったストアアプリの作成」
Yasuhiko Yamamoto
?
市场动向并びに弊社製品の今后の展望について
市场动向并びに弊社製品の今后の展望について
Ken Azuma
?
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
わんくま名古屋#25(20121201) TDD道場#13 ~ Metroアプリをテストファーストするときのポイント
Yasuhiko Yamamoto
?
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Kenichi Tatsuhama
?
狈痴顿础日本语版の思い出(仮)
狈痴顿础日本语版の思い出(仮)
Takuya Nishimoto
?
【罢别肠丑产耻锄锄】迟颈迟补苍颈耻尘资料
【罢别肠丑产耻锄锄】迟颈迟补苍颈耻尘资料
洋平 前田
?
能力ファイル 2Tソフトウエアソリューション株式会社
能力ファイル 2Tソフトウエアソリューション株式会社
Brrs Nguyen(2TS)
?
1月度コミュニティビジネスレポート
1月度コミュニティビジネスレポート
cdlab
?
コミュニティビジネスレポート1月号 by コミュニティデザイン研究所
コミュニティビジネスレポート1月号 by コミュニティデザイン研究所
komahiro0714
?
摆2罢厂闭3顿インタラクティブ広告础搁
摆2罢厂闭3顿インタラクティブ広告础搁
Brrs Nguyen(2TS)
?
教育分野で利用する础搁(拡张现実)と痴搁(仮想现実)の技术
教育分野で利用する础搁(拡张现実)と痴搁(仮想现実)の技术
Etsuji Kameyama
?

More from Takuya Nishimoto (20)

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
Takuya Nishimoto
?
220427-pydata 統計?データ分析 特集
220427-pydata 統計?データ分析 特集
Takuya Nishimoto
?
220126 python-datalake-spark
220126 python-datalake-spark
Takuya Nishimoto
?
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
?
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
Takuya Nishimoto
?
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
Takuya Nishimoto
?
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
Takuya Nishimoto
?
210728 mpy
210728 mpy
Takuya Nishimoto
?
210630 python
210630 python
Takuya Nishimoto
?
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
Takuya Nishimoto
?
210428 python
210428 python
Takuya Nishimoto
?
200918 hannari-python
200918 hannari-python
Takuya Nishimoto
?
200429 python
200429 python
Takuya Nishimoto
?
200325 flask
200325 flask
Takuya Nishimoto
?
200208 osh-nishimoto-v2
200208 osh-nishimoto-v2
Takuya Nishimoto
?
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
?
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
Takuya Nishimoto
?
191114 iotlt-nishimoto
191114 iotlt-nishimoto
Takuya Nishimoto
?
191030 anna-with-python
191030 anna-with-python
Takuya Nishimoto
?
190925 python-windows
190925 python-windows
Takuya Nishimoto
?
221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
Takuya Nishimoto
?
220427-pydata 統計?データ分析 特集
220427-pydata 統計?データ分析 特集
Takuya Nishimoto
?
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto
?
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
Takuya Nishimoto
?
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
Takuya Nishimoto
?
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
Takuya Nishimoto
?
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
Takuya Nishimoto
?
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
?
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
Takuya Nishimoto
?
Ad

190516 nishimoto

Editor's Notes

  • #3: 01.mp4
  • #9: 02.mp4
  • #29: https://github.com/nvaccess/nvda/issues/7239
  • #45: https://github.com/LinuxA11y/IAccessible2/issues/4
  • #46: https://osdn.net/projects/nvdajp/ticket/35562 https://github.com/nvaccess/nvda/issues/4920