詳細読みモードの導入
カーソル移動時などの文字レビューにおいて、音声は詳細読み、点字ディスプレイには文字をそのまま出力できたらよい、という意見が出ました。
実験的な実装ですが、詳細読みモードを作ってみました。
左右矢印キーでの操作にはまだ対応しておらず、文字単位のレビューだけ、処理を変更しています。
モードの切り替え操作:
詳細読みオフでの動作:
詳細読みオンでの動作:
単語単位のレビューカーソル移動(ラップトップ配列で NVDA J, K, L)の機能と併用すると、便利に使えるかも知れません。
文字クラスの分類や説明レベルをもっと細かくする、点字ディスプレイ出力を考慮する、など、課題はたくさんありますが、まずは次のスナップショットでご評価いただこうと思います。
リポジトリ lp:nvdajp rev 4287
詳細読みモードを文字レビューだけでなくキャレット移動(左右矢印キー)にも適用するようにしました。
詳細読みモードをデフォルトで有効にしました。
詳細読みモードのトグル操作(デスクトップでテンキー2の2回押し、ラップトップでNVDA-カンマの2回押し)で「詳細読みオン」「詳細読みオフ」の通知の誤りを修正しました。
詳細読みモードを単なるオン、オフではなく、レベル1、レベル2、レベル3、のようなレベルの切り替えにしたほうがよいかも知れませんが、これは文字説明の辞書を整備しながら引き続き検討します。
リポジトリ lp:nvdajp rev 4289
下記のコミットで「詳細読みオン」「詳細読みオフ」のメッセージを「詳細モード」「音訓モード」という言いかたに変更しました。
lp:nvdajp rev 4297
詳細読みモードの導入に関連して、1文字レビュー3回押しの機能(文字コードの読み上げ)を拡張する検討をしています。
最新の実装では、日本語設定のオプションで、「全角」「半角」「カタカナ」「ひらがな」などの文字属性やフォネティック読みを詳細モードで読まないようにできます。
一時的に文字属性やフォネティック読みを使いたいときに、設定画面を呼び出すしか方法がありません。
なので「3回押し」に「文字属性・フォネティックありの詳細読み上げ」(仮に「スーパー詳細読み上げ」と呼びます)を割り当てるのはひとつの選択肢と思われます。
もうひとつ、「音訓モード」「詳細モード」「スーパー詳細モード」のような3段階のモードを導入する方法もありえますが、スーパー詳細読み上げは連続して使われることが少ないのであれば、モードである必要がなさそうです。
現在の globalCommands の実装では、1文字レビューのキーが「3回押し」されると、「2回押し」の処理がまず実行されて、その直後に「3回押し」の処理が行なわれます。 これはスピーチビューアーで確認できます。
本家の実装では(音切れがあるので)副作用が目立たないのですが、今回導入した実装では、3回押しを行なうたびに「詳細モード」「音訓モード」の切り替わりも同時に起こってしまうので、もし2回押しと3回押しを有意義に使い分けたいなら、仕様と実装を慎重に検討しなくてはいけません。
ひとつのやり方として、詳細読みモードのトグルを「3回押し」に変更して、「2回押し」に「スーパー詳細読み」の機能を割り当てなおすほうがよいかも知れません。
もうひとつ、汚いやりかたですが、3回押しを実行するときに、詳細読みモードをもう一度トグルして元に戻す、という実装も考えられます。
2回押しと3回押しの使い分けは、JTalk 以外の音声エンジンで、処理がもたついたり不安定になったりする場合があったと思います。
「詳細モード」と「音訓モード」の名前について見直す余地があります。
「詳細読み」は日本での独特のよびかたです。
また「音訓読み」は現在実装されている機能のよびかたに整合しないというご意見もいただいています。
丁寧に名付けるなら「詳細文字説明モード」「簡易文字説明モード」かも知れません。
1文字レビュー操作の仕様変更について再検討しています。
いろいろな言語のアプリケーションや入力メソッドが共存する環境を想定するなら、この機能は iOS の「言語ローター」に相当するようなモード切替として一般化できるのかも知れません。
一案ですが、以下のような見直し方針を考えてみました。
1文字レビューキー(デスクトップでテンキー2、ラップトップでNVDA-カンマ)の3回押しを「言語モード切替」にする。
言語モードごとに (L1) 1文字レビュー(1文字レビューキーおよび左右矢印キー)、(L2) 説明読みレビュー(1文字レビューキー2回押し)の機能を以下のようにする:
なお、文字属性とは「カタカナ」「ひらがな」「全角」「半角カタカナ」「(カタカナ以外の)半角」の区別のこと。
スペル読みとは「にち」「ほん」「ご」のような漢字1文字の短い説明。
日本語の設定ダイアログで行う要素:
音声設定のダイアログでこの機能に影響する要素:
また、ピッチで通知する属性が多すぎると有効に機能しないので、「全角」「ひらがな」をピッチで通知する機能は削除を検討し、「半角カタカナ」はその他の半角文字と設定を統合してよいか検討します。
半角カタカナはビープで通知してもよいかも知れません。(アルファベットの大文字ビープと重複しないので)。
なお、上記は1文字レビューの処理ですが、日本語入力の変換候補については、以下のように連動させてはどうかと思います。
デフォルトは、言語モード:日本語Aモード、フォネティック読みは英語も日本語も無効。半角とカタカナは(エンジンが対応してれば)ピッチでも通知。
ユースケース:
以上、コメント歓迎です。
以下のコミットで本件に関する修正を行ないました。
lp:nvdajp 4381
変更内容:
なお9月28日のコメントで検討した大幅な変更は、2012.3jp までの作業としては行なわない予定です。
文字説明モードの名前(および切り替え操作の通知)は 「短い文字説明」 「詳しい文字説明」 という呼びかたにしたいと思います。
詳細モード、音訓モードという言葉は、すべての人に同じ意味を連想させるとは言えないようです。
また「1文字読み」という言葉の意味も統一されていないようです。
漢字だけに限定すれば「単漢字読み」のような言いかたも考えられますが、もっとユニバーサルな意味で、しかも日本語として分かりやすい呼びかたがよいように思います。
以下のコミットで「読みかたモード」「説明モード」に名前を変更しました。
lp:~nvdajp/nvdajp/jp2012.3 rev 5593
これについて 10月22日の Skype 会議で出た意見をまとめます。
これでベータ版を公開してフィードバックをいただこうと思います。
このチケットに関する作業は完了しました。 2012.3jp の「日本語版の説明」にて最終的な仕様を説明しています。
関連チケット #28158 日本語の文字種をビープ音やピッチで通知する
「レビュー内の現在の文字を通知」(デスクトップ:テンキー2 ラップトップ:NVDA+コンマ)を2度続けて押すとレビューカーソル位置の文字を詳細読みします。
しかし日本で使われている主要なスクリーンリーダーには、カーソルの左右移動で詳細読みを行うモードがあります。
このようなモードをNVDAに導入することを検討します。