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

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

Recommended

Googleの基盤クローン Hadoopについて by
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
2.8K views64 slides
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03) by
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)parrotstudio
2K views92 slides
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール by
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールAtsuo Ishimoto
23K views35 slides
Singularityで分散深層学習 by
Singularityで分散深層学習Singularityで分散深層学習
Singularityで分散深層学習Hitoshi Sato
9.4K views31 slides
Introduction to Numpy (and Python) [JPN] by
Introduction to Numpy (and Python) [JPN]Introduction to Numpy (and Python) [JPN]
Introduction to Numpy (and Python) [JPN]MasaruOinaga
132 views67 slides
ABEMA を次のフェーズへ進化させる技術への取り組み by
ABEMA を次のフェーズへ進化させる技術への取り組みABEMA を次のフェーズへ進化させる技術への取り組み
ABEMA を次のフェーズへ進化させる技術への取り組みYusuke Goto
1.2K views100 slides

More Related Content

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

GTC Japan 2017 by
GTC Japan 2017GTC Japan 2017
GTC Japan 2017Hitoshi Sato
830 views20 slides
Introduction Pycon2010 by
Introduction Pycon2010Introduction Pycon2010
Introduction Pycon2010(shibao)芝尾 (kouichiro)幸一郎
1K views34 slides
PyQtではじめるGUIプログラミング by
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
309.7K views72 slides
明日からはじめるネットワーク運用自動化 by
明日からはじめるネットワーク運用自動化明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化Taiji Tsuchiya
4.8K views68 slides
Azure Media Services 大全 by
Azure Media Services 大全Azure Media Services 大全
Azure Media Services 大全Daiyu Hatakeyama
3K views247 slides
Python界隈の翻訳プロジェクト by
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトTetsuya Morimoto
3.5K views64 slides

Similar to PyCon mini Hiroshima アクセシビリティを支えるPython(20)

PyQtではじめるGUIプログラミング by Ransui Iso
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso309.7K views
明日からはじめるネットワーク運用自動化 by Taiji Tsuchiya
明日からはじめるネットワーク運用自動化明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya4.8K views
Python界隈の翻訳プロジェクト by Tetsuya Morimoto
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto3.5K views
Pyconjp2014_implementations by masahitojp
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
masahitojp4.7K views
コミケの取りまとめをしたので by Kenichiro MATOHARA
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
Kenichiro MATOHARA1.3K views
プレイヤーサイド・マルチCDN by Masaaki Nabeshima
プレイヤーサイド・マルチCDNプレイヤーサイド・マルチCDN
プレイヤーサイド・マルチCDN
Masaaki Nabeshima1.3K views
「Python言語」はじめの一歩 / First step of Python by Takanori Suzuki
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki65.9K views
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 by Katsuhiro Morishita
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita71.4K views
DockerCon '17 Feedback at PaaS JP by Go Chiba
DockerCon '17 Feedback at PaaS JPDockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JP
Go Chiba1K views
PyCon JP 2016 ビギナーセッション by Tetsuya Morimoto
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
Tetsuya Morimoto1.4K views
マイクロサービス時代の生存戦略 with HashiCorp by Masahito Zembutsu
マイクロサービス時代の生存戦略 with HashiCorpマイクロサービス時代の生存戦略 with HashiCorp
マイクロサービス時代の生存戦略 with HashiCorp
Masahito Zembutsu5.8K views
Programming AWS with Python by Yasuhiro Matsuo
Programming AWS with Python  Programming AWS with Python
Programming AWS with Python
Yasuhiro Matsuo6.1K views
Sohu邮箱的python经验 by Ryan Poy
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
Ryan Poy1.5K views
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12 by Takanori Suzuki
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
「Python言語」はじめの一歩 / First step of Python / 2016 Jan 12
Takanori Suzuki3K views
20170726 py data.tokyo by ManaMurakami1
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami110.7K views
20170421 tensor flowusergroup by ManaMurakami1
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
ManaMurakami11.7K views

More from Takuya Nishimoto

221217 SwiftはPythonに似ている by
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ているTakuya Nishimoto
49 views21 slides
220427-pydata 統計・データ分析 特集 by
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集Takuya Nishimoto
145 views15 slides
220126 python-datalake-spark by
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-sparkTakuya Nishimoto
134 views19 slides
211120 他人の書いたPythonスクリプトをステップ実行で理解する by
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
1.3K views39 slides
211020 すごい広島 with OSH 2021.10 by
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10Takuya Nishimoto
175 views20 slides
210917 オープンセミナー@広島のこれまでとこれから by
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれからTakuya Nishimoto
179 views8 slides

More from Takuya Nishimoto(20)

220427-pydata 統計・データ分析 特集 by Takuya Nishimoto
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集
Takuya Nishimoto145 views
211120 他人の書いたPythonスクリプトをステップ実行で理解する by Takuya Nishimoto
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
Takuya Nishimoto1.3K views
211020 すごい広島 with OSH 2021.10 by Takuya Nishimoto
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
Takuya Nishimoto175 views
210917 オープンセミナー@広島のこれまでとこれから by Takuya Nishimoto
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
Takuya Nishimoto179 views
210911 これから始める電子工作とMicroPython by Takuya Nishimoto
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
Takuya Nishimoto794 views
210526 Power Automate Desktop Python by Takuya Nishimoto
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
Takuya Nishimoto225 views

Recently uploaded

The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
76 views29 slides
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PC Cluster Consortium
23 views36 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
151 views42 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
132 views64 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
89 views26 slides

Recently uploaded(12)

The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views

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