Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

92 views

Published on

2015年11月22日
PyCon mini Hiroshima オープニング
アクセシビリティを支えるPython (西本卓也)

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. 協賛 日本PostgreSQLユーザ会 後援 一般社団法人 PyCon JP 協力 オライリー・ジャパン 技術評論社
  2. 2. ご案内 • インターネット配信 • ハッシュタグ #pyconhiro • ステッカー • 飲食禁止 • 講演者 • LT希望者 • 懇親会参加者
  3. 3. 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月
  4. 4. 2011年東京 PyCon mini 開催 • NVDA日本語化プロジェクトとして講演 4
  5. 5. 併設イベント in PyCon JP 2012 5
  6. 6. PyCon mini Hiroshima の理想 • 誰でも参加して楽しんでもらえる • 合理的配慮 • NVDAユーザ会広島 – 音声認識を使うテキストと点字の配信 – 位置情報を使う移動支援 • NVDAの実演 – SlideShare サイト 6
  7. 7. アクセシビリティを支えるPython 2015-11-22 PyCon mini Hiroshima 2015 Takuya Nishimoto @24motz
  8. 8. スクリーンリーダー NVDA • NonVisual Desktop Access – 無料、オープンソース(GPL v2) – 本家 = NV Access オーストラリア – 全盲の技術者2人が2006年から開発 • Python – 主要部分の実装 – アドオン • 3ヶ月ごとのリリース
  9. 9. NVDA日本語版 • 日本語音声合成エンジン – Open JTalk (C言語)を DLL 化 – export されている関数を ctypes でラップ • 日本語点訳エンジン – MeCab を ctypes でラップ – 形態素からの変換規則 • 点字ディスプレイドライバ – ベンダーの DLL を ctypes でラップ
  10. 10. 0 50 100 150 200 250 300 350 400 450 May-14 Jun-14 Jul-14 Aug-14 Sep-14 Oct-14 Nov-14 Dec-14 Jan-15 Feb-15 Mar-15 Apr-15 May-15 Jun-15 Jul-15 Aug-15 Sep-15 Oct-15 2014.1jp 2014.2jp 2014.3jp 2014.4jp 2015.1jp 2015.2jp 2015.3jp 2015.4jp
  11. 11. Pythonのバグを踏む • ログオン名が特定の文字を含むときに NVDAインストーラーが起動しない • 報告者の名前のアカウントで再現 • 架空の名前「川山」で再現 – 川 0x5ddd – 山 0x5c71 • C:DOCUME~1川山LOCALS~1Tempnsd7.tmp…
  12. 12. 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.
  13. 13. Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from os.path import normcase >>> p = ur'C:DOCUME~1川山' >>> print p C: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']
  14. 14. mbcs が normcase されてた • PythonIssue:14255 – あるはずの %home% が見つからない – 当時すでに報告されているバグだった • NVDA – tempfile.gettempdir にモンキーパッチ – 本家 NVDA issue 2729 • Python 2.7.6 で直ったという話
  15. 15. wxPython • GUI ツールキット • NVDA のコアは wx のイベントループ • wxWidgets はアクセシブル – Windows MSAA などをラップしている – フレームワーク選びは重要 • NVDAコミュニティに sighted がいない – 画面を見る人だけの不具合が頻発
  16. 16. これから • 日本語版と本家版の統合 • グローバル、日本語チーム、広島地域 • www.nvda.jp – クラッシュレポートでも歓迎 – Webに関しては本家にコミットしたい – Web標準のサポート • IE, Firefox, Chrome, Edge • Gmail や Google Docs が使える
  17. 17. アクセシビリティ • 技術ロードマップの真ん中 – 標準化 – マシンリーダブル、自動化 • エコシステムの端っこ – 非営利 – ボランティア • 手軽に参加、勉強になる、活躍できる

×