NVDA (NonVisual Desktop Access) は Microsoft Windows 用の無料のオープン ソース スクリーン リーダーです。NV Access が世界中の貢献者のコミュニティと協力して開発しています。 NV Access は、すべての貢献者およびその他のコミュニティメンバーが、このプロジェクトに参加または貢献している間、このドキュメントに記載されている規則を読み、遵守することを期待しています。
- サポートを受ける
- Documentation
- Communication channels
- その他の主要なプロジェクトリンク
- Getting the Source Code
- Installed Dependencies
- Git Submodules
- Preparing the Source Tree
- NVDAHelper をデバッグ オプション付きでコンパイルする
- ソース コードの実行
- Building NVDA
- インストーラの構築
- Building the developer documentation
- Generate debug symbols archive
- Generate translation template
- Customising the build
- 自動テストの実行
- Translatable string checks
- Linting your changes
- ユニットテスト
- NVDA への貢献
サポートを受ける
初心者、上級ユーザー、新規または長期にわたる開発者、あるいは NVDA についてもっと知りたい、貢献したいという組織のいずれでも、所定のドキュメントおよび NVDA スクリーン リーダー専用のいくつかの通信チャネルを通じてサポートを受けることができます。 以下は、最も重要なサポートソースの概要です。
Documentation
- NVDA User Guide
- NVDA Developer Guide
- NVDA Add->
- NVDA User Guide
- NVDA Developer Guide
- NVDA ControllerClient manual
- その他のドキュメントはこのリポジトリの Wiki と Community Wiki
Communication channels
- NVDAユーザーメーリングリスト
- NVDA開発者メーリングリスト
- NVDAアドテクノロジー
- NVDA Add-> メーリングリストメーリングリスト
- NVDA サポートのためのインスタントメッセージングチャンネル
- ソーシャルメディアチャンネルのグループやプロファイルを含む他のソース。 言語別ウェブサイト、メーリングリストなど
また、NV Access から直接サポートを受けることもできます。
その他の主要なプロジェクトリンク
- NVDA on GitHub
- NVDA issues on GitHub: バグレポート、機能要求など。
- NVDA 開発スナップショット。 現在の開発状態のプロジェクトのビルドを自動生成
- NVDA add-ons。 NVDAを強化するアドオンを入手する
- NVDA Add-ons coordination and support center: NVDAのアドオン環境についてのすべて
- NVDA Add-ons Template: Add-onsのテンプレートを生成するためのリポジトリ
- Translating NVDA: NVDAを他の言語に翻訳する方法についての情報
- NVDA Controller Client (2010-02-19): 外部アプリケーションが直接メッセージを話したり点字したりするためのNVDA APIです。
- Contributing to NVDA: NVDAのソースコードに貢献するためのガイドライン
- NVDA commits email list: 3521>
- Old email archives: NVDA開発に関する議論をまとめたメールアーカイブ
Getting the Source Code
NVDAプロジェクトはソースコードとドキュメントにGitバージョンコントロールシステムを使用しています。 次のコマンドでクローンすることができ、nvda:
git clone --recursive https://github.com/nvaccess/nvda.git
--recursive オプションは、私たちが使用しているさまざまな Git サブモジュールを取得するのに必要です。
Installed Dependencies
The following dependencies need to be installed on your system:
- Python, version 3.8, 32 bit
- Use latest minor version if possible.
- Microsoft Visual Studio 2019 Community, Version 16.XXXXX.XXXXX.XXXXX.XXX.XXX.XXX.XXX.XXX.XXX.3以降:
- https://visualstudio.microsoft.com/vs/
- からダウンロードVisual Studioをインストールする際、以下を有効にする必要があります:
- Windowsグループの「ワークロード」タブ
- にある。
- Desktop development with C++
- 次に、インストールの詳細セクションの [Desktop for C++] の [Optional grouping] で、以下が選択されていることを確認します:
- MSVC v142 – VS 2019 C++ x64/x86 build tools
- Windows 10 SDK (10.x86).0.19041.0)
- C++ ATL for v142 build tools (x86 & x64)
- C++ Clang tools for Windows
- にある。
- 個々のコンポーネントタブで、次の項目が選択されていることを確認します。
- MSVC v142 – VS 2019 C++ ARM64 build tools
- C++ ATL for v142 build tools (ARM64)
- Windowsグループの「ワークロード」タブ
Git Submodules
依存関係の中には Git submodule に含まれるものもあります。git clone に
--recursiveオプションを渡さなかった場合、git submodule update --initを実行する必要があります。必要なサブモジュールのコミットが変更された場合 (git pull の後など) には、常にgit submodule updateを実行する必要があります。よくわからない場合は、git pull、マージ、チェックアウトの後に毎回git submodule updateを実行してください。参考までに、以下の実行時の依存関係が Git サブモジュールに含まれています:
- eSpeak NG, version 1.51-dev commit 53915bf0a
- Sonic, commit 4f8c1d11
- IAccessible2, commit cbc1f29631780
- liblouis, version 3.1
- eSpace NG, version 1.2-dev commit 53915bf0a
- liblouis, version 1.2
- eSpace NG, version 1.2-dev commit 53915bf0a
- Unicode Common Locale Data Repository (CLDR), version 38.1
- NVDA images and sounds
- Adobe Acrobat accessibility interface, version XI
- MinHook, tagged version 1.2.2
- brlapi Python bindings, version 0.8 or later, distributed with BRLTTY for Windows, version 6.1
- BRLTTY for Windows, version 6.1
- BRLTTY for Windows, version 6.0
- BRLTTY for Windows, version 6.1 BRLTTY for Windows, version 6.0
- lilli.dll, version 2.1.0.0
- Python interface to FTDI driver/chip
- Java Access Bridge 32 bit, from Zulu Community OpenJDK build 13.0.1+10Zulu (13.28.0)
- Python バインド。11)
さらに、以下のビルド時の依存関係が miscDeps git サブモジュールに含まれています:
- txt2tags, version 2.5
- Nulsoft Install System, version 2.51
- NSIS UAC plug-in, version 0.2.4, ansi
- xgettext and msgfmt from GNU gettext
- Boost Optional (stand-alone header), from commit 3922965
The following dependencies are not needed by most people, and are not included in Git submodules:
-
to generate developer documentation for nvdaHelper.NVC (日本語) To make a developer documentation for nvdaHelper: Doxygen Windows インストーラー、バージョン 1.8.15:
-
お好みの統合開発環境として Visual Studio Code を使用している場合、Visual Studio Code 用の事前入力済みワークスペース設定を使用できます。この VSCode プロジェクトは NVDA リポジトリのサブモジュールとして含まれていませんが、リポジトリのルートから以下を実行することにより、リポジトリのワークスペース構成を簡単にチェックアウトすることができます。 これらはすべて、このリポジトリのルートにあるrequirements.txtファイルに、特定のバージョンとともにリストアップされています。 これらのパッケージは、このリポジトリ内の孤立した Python 仮想環境にインストールされ、システム全体のパッケージのセットに影響を与えません。
Preparing the Source Tree
NVDAソースコードを実行する前に、ソースツリーを準備する必要があります。これは、コマンドプロンプトを開き、NVDAソース配布物のルートに変更し、次のようにタイプすることによって行います。もし、ソースバージョンを実行中にヘルプメニューからユーザードキュメントにアクセスしたい場合は、コマンドラインに
user_docsを追加する必要があります:scons source user_docs単にテストや変更をコミットする場合、ユーザードキュメントはリビジョン番号が変わるたびに変わるので、通常は
scons sourceとだけ実行する方が速いかもしれません。NVDAHelper をデバッグ オプション付きでコンパイルする
他のことに加えて、ソース ツリーを準備すると NVDAHelper ライブラリが構築されます。nvdaHelper をデバッグしようとすると、
nvdaHelperDebugFlagsおよびnvdaHelperLogLevelコマンドライン変数で構築することにより、さまざまなデバッグ オプションを制御することができます。 デフォルトは 15 です。nvdaHelperDebugFlags変数は以下のフラグのうちの一つ以上を取ります:- debugCRT: ライブラリはデバッグ C ランタイムに対してリンクされ、アサーションは有効化されるでしょう。 (デフォルトでは、通常の CRT が使用され、アサーションは無効になります。)
- RTC: ランタイムチェック (スタック破壊、未初期化変数、など) が有効になります。 (デフォルトはランタイムチェックなし。)
- analyze: すべてのnvdaHelperコードに対してMSVCコード解析を実行し、警告があればホールティングを行います。 (デフォルトは解析なし).
特別なキーワード none および all は、個々のフラグの代わりに使用することもできます。
以下に、デバッグ CRT および runtype チェックが有効な例を示します
scons source nvdaHelperDebugFlags=debugCRT,RTCデバッグフラグにかかわらず、ビルド時には常にシンボル pdb ファイルが生成されます。その代わり、
scons symbolsArchiveはそれらを別のアーカイブとしてパッケージ化します。デフォルトでは、ビルドはいかなるコンパイラの最適化も使用しません。
ソース コードの実行
完全なバイナリ パッケージとランチャーをビルドしなくても、NVDA をソースから直接実行することができます。
cmd.exeを使用してソースから NVDA を起動するには、リポジトリのルートでrunnvda.batを実行します。これらの引数はユーザーガイドにも記載されています。Building NVDA
NVDA のバイナリビルドは、Python および NVDA の他のすべての依存関係をインストールしないシステムで実行できます (スナップショットやリリースで行うように)。
Binary Archives and bundles can be created scons from the root of the NVDA source distribution. 以下のいずれかをビルドするには、コマンドプロンプトを開き、このディレクトリに移動します。
アーカイブされていないバイナリビルド (展開されたポータブルアーカイブと同等) を作成するには、次のように入力します:
scons distdist ディレクトリに作成されるビルドです。
インストーラの構築
ランチャーアーカイブ(インストールまたはポータブルディストリビューション生成のための実行可能ファイル)を作成するには:
scons launcherアーカイブは出力ディレクトリに配置されます。
Building the developer documentation
NVDA開発者ガイドを生成するために、type:
scons developerGuide開発者ガイドは出力ディレクトリの
devDocsフォルダーに置かれます。HTMLベースのソースコード文書を生成するにはtype:
scons devDocs文書が出力ディレクトリの
NVDAフォルダーに配置されます。nvdaHelper (devDocs ターゲットに含まれない) の開発者用ドキュメントを生成するには:
scons devDocs_nvdaHelperドキュメントは出力ディレクトリの
devDocs\nvdaHelperフォルダに配置されます。Generate debug symbols archive
各種 dll/exe バイナリ用のデバッグシンボルのアーカイブを生成するには:
scons symbolsArchiveアーカイブは出力ディレクトリに配置されます。
Generate translation template
翻訳テンプレートを生成するには:
scons potCustomising the build
オプションとして、コマンドラインから変数を指定することにより、構築をカスタマイズできます:
- version: このビルドのバージョン
- release: 7273>
- これは、/O2 やプログラム全体の最適化など、さまざまな C++ コンパイラの最適化を有効にします。
- これはまた、最適化されたバイトコードを生成するように Python に指示します。
- certFile: 実行可能ファイルに署名するための証明書ファイルです。 証明書は pfx 形式で、プライベート キーを含んでいなければなりません。
- certPassword: 署名証明書のプライベート キーのパスワードです。 省略された場合、パスワードは想定されません。
- certTimestampServer: authenticode署名のタイムスタンプに使用するタイムスタンプサーバーのURLです。 省略された場合、署名はタイムスタンプされません。
- outputDir: 最終的にビルドされたアーカイブなどが配置されるディレクトリです。 NVDA がサポートすべきターゲットアーキテクチャを指定します。 使用可能な値は、all、x86、および x86_64 です。 これは一般にデフォルトのままにしておくべきです。
たとえば、特定のバージョンでランチャーをビルドするには、次のように入力します:
scons launcher version=test1詳細については、
sconstructファイルを参照してください。自動テストの実行
NVDA コードに変更を加えた場合、NVDA の自動テストを実行するべきです。
テスト (ユニットテスト、翻訳可能な文字列のチェック) を実行するには、最初に上記のように NVDA ソース配布物のルートにディレクトリを変更し、次のように実行します。たとえば、ファイル
tests\unit\test_cursorManager.pyのTestMoveとTestSelectionクラスのメソッドだけを実行するには、次のコマンドを実行します:scons tests unitTests=test_cursorManager.TestMove,test_cursorManager.TestSelectionTranslatable string checks
Translatable string checks (すべての翻訳可能文字列に翻訳者コメントがあるかどうかをチェックする) だけを実行するには、次のコマンドを実行します。
scons checkPotLinting your changes
NVDA のコーディング スタイルに準拠していることを確認するために、ローカルで Flake8 linter を実行することができます。runlint.bat は Flake8 を使って、あなたの作業ディレクトリと指定した
baseブランチとの間の差分だけを検査します。 ほとんどの場合、それはorigin/masterとなります。runlint origin/masterLinting エラーをより速く警告するために、使用している他の開発ツールと Flake8 を統合するとよいでしょう。詳細は
tests/lint/readme.mdユニットテスト
ユニットテストは
rununittests.batスクリプトで実行できます。rununittests.bat に与えられたすべての引数は Nose に転送されます。テストをフィルタリングする方法などについては、Nose 自体のドキュメントを参照してください。NVDA への貢献
NVDA にコードやドキュメントを提供したい場合は、貢献ガイドでより多くの情報を読むことができます。