IME使用時のNVDAの点字出力の改善
nvdajp_dic.getJapaneseDiscriminantReading() で name と出力の関係: 12 半角 イチ ニ 12 全角 12
なぜこうなるかというと、文字説明辞書 characters.dic になぜか全角数字が入っていないから、らしい。。
なぜか抜けていた全角数字を追加。
これで半角も全角も「イチ ニ サン」のように点字出力されるようになった。
本来は点字は「123」、音声は「イチ ニ サン」にするべきという話なので引き続き検討。
index 001a571..6a85b54 100644 --- a/source/locale/ja/characters.dic +++ b/source/locale/ja/characters.dic @@ -7620,6 +7620,16 @@ z 7a [ゼット] ゼット ズール - ff0d [マイナス] マイナス . ff0e [ピリオド] ピリオド / ff0f [スラッシュ] スラッシュ +0 ff10 [ゼロ] ゼロ +1 ff11 [イチ] イチ +2 ff12 [ニ] ニ +3 ff13 [サン] サン +4 ff14 [ヨン] ヨン +5 ff15 [ゴ] ゴ +6 ff16 [ロク] ロク +7 ff17 [ナナ] ナナ +8 ff18 [ハチ] ハチ +9 ff19 [キュー] キュー : ff1a [コロン] コロン ; ff1b [セミコロン] セミコロン < ff1c [ショーナリ] ショーナリ
文字説明のテストケースの動作確認と再整備。
characters.dic の以下の4文字がエラーになっていたことに気づいたので修正。
◯ 25ef [オオキナマル] オオキナマル 劦 52a6 [キョー] チカラノ シタニ チカラガ フタツ 勛 52db [クン] キョーインノ インノ ミギニ チカラ 瀨 7028 [セ] アサセノ セノ キュージ
ti35244 ブランチ:
点字出力用の文字説明は getJapaneseDiscriminantReading(name, forBraille=True) で取得するように変更。 まだ文字説明を作る処理そのものは forBraille モードを作っていない。
https://github.com/nvdajp/nvdajp/commit/cfe677f6536ebd0bd28f749c66d6ec7b7207caf7
jpbeta ブランチの更新。 ti35244 ブランチからの進捗のマージ。 アルファベットと数字の文字説明はカナに変換せずに点字出力する。
実験的な実装:
To git@github.com:nvdajp/nvdajp.git d3990f0..8e7047c ti35244 -> ti35244
Microsoft IME で矢印キーを押したときに「123」が「半角 イチ ニ サン」と出力されるのは、 CandidateItem の name が音声と点字の両方に共通に使われているため。
NVDAObjects/behaviors.py で getFormattedCandidateName() を点字用の文字説明「半角 123」にすれば、 この問題は解決するが、今度は「半角 Abc」「半角 abc」といった場合に音声で区別がつかなくなる。
NVDAObjects/behaviors.py getFormattedCandidateName() の挙動を、 点字設定が「点字なし」かどうかで切り替えるように実装してみた。
正確には braille.handler.displaySize が 0 かどうかで判定している。
あまり派手に本家版を改変すると収集がつかなくなるので、 この実装で不評なら、 日本語設定で挙動をユーザーに選んでもらえるようにするか。。
ついでに、日本語以外の言語の IME で不適切に日本語の文字説明が使われないように修正した。
https://github.com/nvdajp/nvdajp/commit/ba7b438fb798513e5e8869b355b9a5f69c130e45
IME使用時のNVDAの点字出力について以下のご報告をいただきました:
1.全角数字を変換するときは位取りするが、半角は「イチ ゼロ ゼロ」のように読む。 点字出力で数字が文字よみで出力されると、読むのに時間がかかります。
2.文字変換時「を」の点字出力が「ウオ」です。 点字出力で「ウオ」と表示されると不都合だと思われます。