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シェルでも動くかもしれませんが、テストはしていません。

以下は、アドオンがどのように現在のコマンドを抽出するかです。

  1. Endキーを押すとコントロール文字を送信します。使われることがなさそうなまれなユニコード文字だからです。
  2. そして、homeキーを押して他のコントロール文字を送ります。
  3. そして画面にコントロール文字が現れるのを待ちます。遅いSSH接続では、少し時間がかかるかもしれません。
  4. コマンドは、2つのコントロール文字の間に現れた物です。
  5. NVDA設定で、「可能な時はWindowsコンソールにアクセスするのにUIオートメーションを使用する」選択肢が有効になっている時に、文字列の先頭にもう一つコントロール文字を送信します。複数行のコマンドを正確に分けるために必要です。UIA実装は、各行の終端のスペースを除去するので、2つの行の間にスペースがあったかどうかを推定するには、それらを1文字シフトする必要があります。このように、単語の間のスペースの数を保持出来ず、スペースがあったかどうかを保証するのみであることに留意して下さい。
  6. 編集前に、アドオンは、カーソルを先頭と終端に置いて、DeleteBackspaceのキーを押すのをシミュレートすることで、コントロール文字の除去を確認します。
  7. ユーザーの閲覧、編集のために、「編集プロンプト」ウィンドウに、コマンドを表示します。
  8. ユーザーが、EnterまたはEscapeを押した後、コンソールの現在の行をまず消します。これは、4つの方法のうちの1つで達成されます。方法の選択は、設定出来ます。現在は、4つの方法がサポートされています:

    • Control+C: cmd.exebashの両方で動きます。ただし、前のプロンプトは画面に見えるままです; emacsでは動きません; 遅いSSH接続では、時折信頼性がありません
    • Escape: cmd.exeのみで動きます。
    • Control+A Control+K: bashemacsのみで動きます; cmd.exeでは動きません
    • Backspace (推奨): 全ての環境で動きます; しかしながら、比較的遅く、行の長さが変わると、破損の原因となります
  9. そしてアドオンは、更新されたコマンドを入力するキーストロークをシミュレートし、選択によってはエンターキーを押すのをシミュレートします。

トラブルシューティング:

  • '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.
  • 上記の初期キャプチャ接尾辞に戻してください。
  • 「コマンドプロンプト編集」セクションのトラブルシューティングステップを試して下さい。