Console Toolkit
Console ToolkitはNVDAアドオンで、コマンドプロンプトとしても知られるWindowsコンソールのアクセシビリティの改善を提供します。これはまた、Windowsパワーシェルでもよく動きます。機能のいくつかは、Cygwin, PuTTY, そしてWindowsターミナルのような代替のターミナルでも動作するかもしれませんが、このアドオンは、デフォルトのWindowsコンソールでのみ、注意してテストしました。SSHユーザーにとっては、このアドオンが特に便利と思います。
いくつかの機能は、以前は、Tony's enhancements アドオンの一部でした。
ダウンロード
Install from add-on store.
Jump to the first visible line
Console toolkit overrides shift+numpad7
command in UIA consoles: instead
of reading the first line in the entire buffer it now reads the first
visible line at the top of the window. Press shift+numpad7
twice to revert
to the old behavior and read the first line of the buffer.
リアルタイムコンソール読み上げ
この選択肢でNVDAは、新しい行がコンソール出力に現れると、新しい読み上げの発話を停止し、代わりに、新しい行をすぐに読み上げます。例えば、NVDAが、画面に1分前に現れた行の読み上げに忙しくても、そして、今、新しい行が現れると、この選択肢は、古い行を読むのをやめて、新しい行をすぐに読み始め、それにより、コンソールウィンドウで何が起きているか、よりリアルタイムなフィードバックを提供します。
コンソール更新時のビープ
コンソール文字が更新されると、毎回、低いピッチの、短いビープを鳴らします。
コンソールでの、Control+Vの強制
この選択肢は、Control+Vのショートカットが、ssh
セッションで動くようにします。
実験的機能: コマンドプロンプトの編集
備考: この機能は実験的です。このセクションを注意して読み、問題を報告する前に、どのように動く物なのか理解しているかを確認して下さい。
NVDA+E
を押して、コンソールウィンドウの中の、現在のプロンプトを識別し、アクセシブルな「編集プロンプト」ウィンドウで編集します。編集後、Escape
を押して、現在のコマンドラインを更新するか、Enter
を押してコマンドを更新してすぐに実行するか、どちらかが可能です。代わりに、Alt+F4
を押して、コマンドラインを更新することなく、編集プロンプトウィンドウを閉じることも出来ます。
この機能は、Windowsのコマンドプロンプト、cmd.exe
でテストしました。ssh接続のバッシュシェル、WSL,
Cygwinも同様です。代替のUnixシェルでも動くかもしれませんが、テストはしていません。
以下は、アドオンがどのように現在のコマンドを抽出するかです。
End
キーを押すとコントロール文字を送信します。使われることがなさそうなまれなユニコード文字だからです。- そして、
home
キーを押して他のコントロール文字を送ります。 - そして画面にコントロール文字が現れるのを待ちます。遅いSSH接続では、少し時間がかかるかもしれません。
- コマンドは、2つのコントロール文字の間に現れた物です。
- NVDA設定で、「可能な時はWindowsコンソールにアクセスするのにUIオートメーションを使用する」選択肢が有効になっている時に、文字列の先頭にもう一つコントロール文字を送信します。複数行のコマンドを正確に分けるために必要です。UIA実装は、各行の終端のスペースを除去するので、2つの行の間にスペースがあったかどうかを推定するには、それらを1文字シフトする必要があります。このように、単語の間のスペースの数を保持出来ず、スペースがあったかどうかを保証するのみであることに留意して下さい。
- 編集前に、アドオンは、カーソルを先頭と終端に置いて、
Delete
とBackspace
のキーを押すのをシミュレートすることで、コントロール文字の除去を確認します。 - ユーザーの閲覧、編集のために、「編集プロンプト」ウィンドウに、コマンドを表示します。
ユーザーが、
Enter
またはEscape
を押した後、コンソールの現在の行をまず消します。これは、4つの方法のうちの1つで達成されます。方法の選択は、設定出来ます。現在は、4つの方法がサポートされています:Control+C
:cmd.exe
とbash
の両方で動きます。ただし、前のプロンプトは画面に見えるままです; emacsでは動きません; 遅いSSH接続では、時折信頼性がありませんEscape
:cmd.exe
のみで動きます。Control+A Control+K
:bash
とemacs
のみで動きます;cmd.exe
では動きませんBackspace
(推奨): 全ての環境で動きます; しかしながら、比較的遅く、行の長さが変わると、破損の原因となります
そしてアドオンは、更新されたコマンドを入力するキーストロークをシミュレートし、選択によっては
エンター
キーを押すのをシミュレートします。
トラブルシューティング:
- 'Home', 'End', 'Delete' と 'Backspace'キーがコンソールで期待どおりに動くかを確認して下さい。
- コンソールがユニコード文字をサポートしているか確認して下さい。いくつかのSSH接続はユニコードをサポートしていません。
- コンソールで選択削除メソッドが動くか確認して下さい。
実験的機能: コマンド出力のキャプチャ
備考: この機能は実験的です。このセクションを注意して読み、問題を報告する前に、どのように動く物なのか理解しているかを確認して下さい。
コマンドラインまたは「編集プロンプト」にて、Control+Enter
を押してコマンド出力をキャプチャします。このアドオンは、出力が10画面より大きいとキャプチャプロセスが完了するには長い時間を要しますが、複数の画面にわたる大きな出力をキャプチャ出来ます。アドオンは、長いチャイム音を鳴らし、現在実行しているコマンドの出力をキャプチャするまで、または、タイムアウトになるまで、続きます。または、NVDA+E
を押して、キャプチャを中断します。
NVDA設定で、「可能な場合はWindowsコンソールにアクセスするのにUIオートメーションを使用する」が有効になっている時、キャプチャ中に他のウィンドウに切り替えが出来ます。しかしながら、もしこの選択肢が無効になっていると、NVDAはレガシーなコンソールモードを使用していて、コンソールがフォーカスされている時のみ動き、他のウィンドウに切り替えると、キャプチャが停止します。
コマンドキャプチャは、コマンド出力をless
コマンドにリダイレクトすることで動きます。コマンドに付けられている初期接尾辞は:
|less -c 2>&1
です。何をしているかわかる時に限り、これを変更して下さい。このアドオンは、出力をページごとに取得する時に、どのようにless
コマンドの出力と相互作用するか知っています。
Windowsでは、less.exe
ツールが別途インストールされている必要があります。cygwinを通してインストール、または、他のところからwindowsバイナリをダウンロード出来ます。
もし、Linuxでtmux
またはscreen
を使用している場合、下端にステータス行が表示されていないことを確認して下さい。tmux
では、ステータス行を除くには
tmux set status off
を実行、または、tmux.conf
ファイルを変更して下さい。
トラブルシューティング:
- After a failed output capturing attempt, press
UpArrow
in the console to check what command has actually been executed. - 上記の初期キャプチャ接尾辞に戻してください。
- 「コマンドプロンプト編集」セクションのトラブルシューティングステップを試して下さい。