目次

NVDA

since 2011-02-09

NVDA はオープンソースの Windows 対応スクリーンリーダーである。ライセンスは GPL Ver.2 である。

本家 NVDA-dev などで議論された情報をメモする。

なお、nishimotz (24motz) は2012年5月から本家NVDAの翻訳担当になりました。

日本語化

nvdajp および nvdajp_jtalk / nvdajp_ime / nvdajp_braille などをどうぞ。

NVDA開発者ガイド日本語版(作業中)

開発環境の構築 nvdajp_scons / nvdajp_devinstaller / nvdajp_bazaar

Microsoft Speech Platform マイクロソフトが提供している無償の音声エンジン

インストーラー

対応アプリケーション

NVDA コントローラクライアント

アプリケーションから NVDA を喋らせるクライアントのAPI。

音楽ソフト REAPER が使えるという話

本家リリースの記録

NVDAの使い方

Easy Accessibility Testing with the NVDA Screen Reader

起動ショートカット

NVDA の起動ショートカットは CTRL-ALT-N です。

PC-Talker の音声停止と重なっているという話。ただし PC-Talker 側は Ctrl+Alt+F2 で代用できるそうです。

Windows をキーボードで操作する

windows

Firefox

マウスドラッグ

since 2011-09-07

本家のチケット 1755 で提案・議論されている。

http://community.nvda-project.org/ticket/1755

すでにある機能を使ってドラッグ操作を行う(ラップトップ配列は2013.1以降):

python コンソール

JTalk を開発する前に試したメモ。

Python コンソールから音声合成エンジンを叩くことができる。

ドキュメントトーカのSAPI5エンジンが入っていて、選択されているとすると:

s = speech.synthDrivers.sapi5.SynthDriver()
s.performSpeak(u"こんにちは")

アドオン

nvda_addon

アーキテクチャー

since 2011-12-20

間違っているかも知れないけど。。

NVDA のアーキテクチャーはイベントドリブンです。そのイベントは基本的に MSAA や UIA の「イベント」なので、そのイベントのコンテクストが何かと必要になります。

つまり、イベントが属するオブジェクトのクラス階層を、アーキテクチャーの根幹にすることで、いろいろなデザインパターンが活用できます。

その基底クラスになるのが NVDAObject クラスという可能性。

日本語IMEの処理はいまキーイベントをフックしていますが、このオブジェクト階層に基づく処理をしたほうが、スジがよいだろう。

設定ファイル

since 2011-09-13

Windows 7 x86 Home Basic で 2011.2 ベースの nvda_snapshot_jpdev110831_installer を使用。

C:\Users\(username)\AppData\Roaming\nvda 

ここに nvda.ini が保存される。

「現在設定されている情報をログオンまたはその他のセキュアスクリーンで使用する」の保存先:

"c:\Program Files (x86)\NVDA\systemConfig"

ログファイル

ログファイル名は nvda.log である。メモ帳で開くことができるテキストファイル。

Windows 7 (ランチャー版、ポータブル版およびインストール版)で実行したときのログのある場所:

コマンドプロンプトで cd %temp% すると下記に移動できる。

C:\Users\(username)\AppData\Local\Temp

ここに nvda.log がある。

Windows XP の場合:

"C:\Documents and Settings\ログイン名\Local Settings\Temp" 

セキュアデスクトップで動作している時のログは c:\windows\temp にあるという話。

ソースから実行すると nvda.pyw と同じ場所に nvda.log ができる。

nvda-old.log はひとつ前に作られたログファイル。

config オブジェクト

設定を管理したり保存したりするためのオブジェクト。

nvda-dev の 2011-2-21 のメールによると、ConfigObj のセクションはディクショナリ型のように扱える:

confSect = config.conf.get("blah")
if not confSect:
       confSect = config.conf["blah"] = {}
confSect["test"] = "value"

辞書登録 speechDicts

音声エンジンに渡す文字列を前処理して読み付与をカスタマイズできる。

「まほろば」にて MSSpeech HARUKA を想定した 読み上げ辞書の追加 の説明。

機能ブランチ

過去に追加された機能の開発ブランチ。

1文字詳細読み上げ

nvdajp_chardesc

symbol pronunciation

since 2011-04-27

記号の読みを言語ごとに細かく制御する機能。2011.2 に向けて作業されている。

http://www.nvda-project.org/ticket/332

http://www.nvda-project.org/changeset/main%2C4167

http://twitter.com/#!/debugon/status/62704435767414784

http://twitter.com/#!/debugon/status/62718984428060672

ブランチ http://bzr.nvaccess.org/nvda/symbols/ から main,4167 へ。

speech commands

since 2011-05-01

Say all without unnatural pauses

http://www.nvda-project.org/ticket/149

http://bzr.nvaccess.org/nvda/speechCommands

Rev 4186 で Merge main している。

lessFreezing2

since 2011-08-08

フリーズを減らしたいという話。アプリケーションとの通信のタイムアウトに関する制御。

2011.3 で導入。

http://www.nvda-project.org/log/lessFreezing2?rev=current%3A

http://www.nvda-project.org/ticket/1408#comment:3