NVDA に対応したアプリケーションの開発

作成 2012年6月20日 更新 2020年10月24日

NVDA は MSAA, UI Automation, Java Access Bridge などのアクセシビリティAPIに対応しています。

これらの API に加えてスクリーンリーダーを直接制御するアプリケーションを開発しておられるかたで、NVDA への対応をご検討される場合は NVDA コントローラクライアントをお使いください。

  • nvdaControllerClient32.dll および nvdaControllerClient64.dll は、対応アプリケーションと一緒に配布してください。ユーザーの Windows システムフォルダーにではなく、アプリケーションの実行ファイルのインストール先にコピーしてください。Lesser GPL 2.1 ライセンスとなっており nvdaControllerClient そのものを改変しなければ再配布は自由です。

2020年10月現在の情報

事例のご紹介

NVDA本家版のAPI

以下の4つのAPIが提供されています:

  • nvdaController_testIfRunning
  • nvdaController_speakText
  • nvdaController_cancelSpeech
  • nvdaController_brailleMessage

C 言語(32ビットおよび64ビット)と Python 言語のサンプルが同梱されています。

この NVDA Controller Client API 1.0 のライセンスは GNU Lesser GPL 2.1 になっています。有償、無償に関わらず、任意のアプリケーションでこのライブラリ(DLLファイル)を利用できます。ただし、ライブラリそのものを改変したときには、改変したライブラリのソースコードの再配布が義務づけられています。詳しくは readme.html (英語)をお読みください。

  • NVDA日本語版を使う場合は、speakText で JTalk 日本語エンジンを、 brailleMessage で日本語点訳エンジンを利用できます。
  • NVDA の「アプリケーションモジュール」を使うと、特定のアプリケーションがアクティブになったときにNVDAをスリープさせることができます。developerGuide の Example 4: A Sleep Mode App Module を参照してください。アプリケーションモジュールを NVDA に追加してほしいというご要望があれば NVDA 日本語チーム(あるいはNVDA本家の開発ML)にご相談ください。

ご不明な点があればメーリングリストなどにご相談ください。

  • このAPIはNVDA本家版でも日本語版でも有効です。

NVDA日本語版のAPI拡張(1)

NVDA日本語版 2013.1jp で以下の拡張を行っています:

  • nvdaController_isSpeaking 音声の出力確認
  • nvdaController_getPitch 現在の音声ピッチ値の取得
  • nvdaController_setPitch 現在の音声ピッチ値の変更
  • nvdaController_getRate 現在の音声速度値の取得
  • nvdaController_setRate 現在の音声速度値の変更

拡張版 nvdajp-client-130223.zip のダウンロードは チケット29342 を参照してください。

詳細は ControllerClientEnhancement (英語)をどうぞ。

NVDA日本語版のAPI拡張(2)

NVDA日本語版 2014.1jp で以下の拡張を行っています:

  • nvdaController_setAppSleepMode アプリケーションスリープモードの制御

デモアプリケーション

Visual Studio 2013 で実装した C# (WPF) アプリケーションのソースを下記にて公開しました:

https://bitbucket.org/nishimotz/nvdademoapp

実行時に bin\Debug または bin\Release に nvdaControllerClient32.dll および nvdaControllerClient64.dll を置いてください。