17
協協 協協 PostgreSQL 協協協協 協協 協協協協協 PyCon JP 協協 協協協協協 協協協協 協協協協協

Accessibility, NVDA and Python

Embed Size (px)

Citation preview

Page 1: Accessibility, NVDA and Python

協賛日本 PostgreSQL ユーザ会

後援一般社団法人 PyCon JP

協力オライリー・ジャパン

技術評論社

Page 2: Accessibility, NVDA and Python

ご案内

• インターネット配信• ハッシュタグ #pyconhiro• ステッカー• 飲食禁止• 講演者• LT 希望者• 懇親会参加者

Page 3: Accessibility, NVDA and Python

PyCon とは

3

• Python Conference–世界 30 カ国で開催– PyCon US は 2000 人以上参加

• PyCon JP–mini, 2011, 2012, 2014, 2015 と開催– 2013 は PyCon Asia Pacific

• 地域 PyCon– PyCon mini Sapporo 2015 年 9 月

Page 4: Accessibility, NVDA and Python

2011 年東京 PyCon mini 開催

• NVDA 日本語化プロジェクトとして講演

4

Page 5: Accessibility, NVDA and Python

併設イベント in PyCon JP 2012

5

Page 6: Accessibility, NVDA and Python

PyCon mini Hiroshima の理想

• 誰でも参加して楽しんでもらえる• 合理的配慮• NVDA ユーザ会広島–音声認識を使うテキストと点字の配信–位置情報を使う移動支援

• NVDA の実演– SlideShare サイト

6

Page 7: Accessibility, NVDA and Python

アクセシビリティを支える Python

2015-11-22PyCon mini Hiroshima 2015

Takuya Nishimoto@24motz

Page 8: Accessibility, NVDA and Python

スクリーンリーダー NVDA• NonVisual Desktop Access–無料、オープンソース (GPL v2)–本家 = NV Access オーストラリア–全盲の技術者2人が 2006 年から開発

• Python–主要部分の実装–アドオン

• 3 ヶ月ごとのリリース

Page 9: Accessibility, NVDA and Python

NVDA 日本語版

• 日本語音声合成エンジン– Open JTalk ( C 言語)を DLL 化– export されている関数を ctypes でラップ

• 日本語点訳エンジン–MeCab を ctypes でラップ–形態素からの変換規則

• 点字ディスプレイドライバ–ベンダーの DLL を ctypes でラップ

Page 10: Accessibility, NVDA and Python

May

-14

Jun-

14

Jul-1

4

Aug-

14

Sep-

14

Oct

-14

Nov-

14

Dec-

14

Jan-

15

Feb-

15M

ar-1

5

Apr-1

5

May

-15

Jun-

15

Jul-1

5

Aug-

15

Sep-

15

Oct

-150

50

100

150

200

250

300

350

400

450

2014.1jp 2014.2jp 2014.3jp 2014.4jp 2015.1jp 2015.2jp 2015.3jp 2015.4jp

Page 11: Accessibility, NVDA and Python

Python のバグを踏む

• ログオン名が特定の文字を含むときにNVDA インストーラーが起動しない

• 報告者の名前のアカウントで再現• 架空の名前「川山」で再現–川 0x5ddd–山 0x5c71

• C:\DOCUME~1\ 川山 \LOCALS~1\Temp\nsd7.tmp\…

Page 12: Accessibility, NVDA and Python

2012-10-18 from Mick• Actually, Jamie and I have spent the afternoon

investigating this further, and we have found the exact issue and come up with a solution. I shall commit the fix tomorrow.

• in short, there is a rather bad bug in Python's tempfile.gettempdir when dealing with multi-byte filenames.

• I was able to reproduce your issue exactly.

Page 13: Accessibility, NVDA and Python

Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.

>>> from os.path import normcase

>>> p = ur'C:\DOCUME~1\川山 '>>> print pC:\DOCUME~1\川山>>> print normcase(p.encode('cp932')).decode('cp932')c:\docume~1\川屍

>>> print ["0x%02x %s" % (ord(c), c) for c in u'山 '.encode('cp932')]['0x8e \x8e', '0x52 R']

>>> print ["0x%02x %s" % (ord(c), c) for c in normcase(u'山 '.encode('cp932'))]['0x8e \x8e', '0x72 r']

Page 14: Accessibility, NVDA and Python

mbcs が normcase されてた

• PythonIssue:14255–あるはずの %home% が見つからない–当時すでに報告されているバグだった

• NVDA– tempfile.gettempdir にモンキーパッチ–本家 NVDA issue 2729

• Python 2.7.6 で直ったという話

Page 15: Accessibility, NVDA and Python

wxPython• GUI ツールキット• NVDA のコアは wx のイベントループ• wxWidgets はアクセシブル–Windows MSAA などをラップしている–フレームワーク選びは重要

• NVDA コミュニティに sighted がいない–画面を見る人だけの不具合が頻発

Page 16: Accessibility, NVDA and Python

これから

• 日本語版と本家版の統合• グローバル、日本語チーム、広島地域• www.nvda.jp–クラッシュレポートでも歓迎–Web に関しては本家にコミットしたい–Web 標準のサポート• IE, Firefox, Chrome, Edge• Gmail や Google Docs が使える

Page 17: Accessibility, NVDA and Python

アクセシビリティ

• 技術ロードマップの真ん中–標準化–マシンリーダブル、自動化

• エコシステムの端っこ–非営利–ボランティア

• 手軽に参加、勉強になる、活躍できる