ATOK だとちょっと状況が違う
手順
本家 snapshot_master-13684 と Microsoft IME でも k a が「kあ」と1文字ずつ確定されてしまうことを確認。
英語環境で再確認して、本家に報告します。
さらに本家の正式リリース 2016.3 でも Skype の日本語入力の不具合を確認しました。 Microsoft へのバグ報告も必要と思います。
まず Microsoft Insider のフィードバック Hub に、本家版 NVDA とデスクトップ版 Skype の組み合わせの不具合として登録しました。
Skype for Windows Desktop をスクリーンリーダー NVDA で利用したときに「ここにメッセージを入力」で日本語入力できない 環境: Windows 10 Insider 14931 32bit 日本語環境 Skype for Windows Desktop 7.29.64.102 (skype.com から最新版としてダウンロード) NVDA 2016.3 (www.nvaccess.org で公開されているリリース版) Microsoft IME 手順: スクリーンリーダー NVDA を実行。 Skype を起動してログオン、連絡先のアカウントを選択、「ここにメッセージを入力」にフォーカスを移動。 半角全角キーで IME を文字変換モードに変更。 ローマ字入力で k a と入力したときに「kあ」が確定されてしまい、「か」を入力できない。
Windows 英語環境で確認したので本家への issue 報告
Microsoft および NVDA 本家への報告後、進展はないのですが、 チケットのタイトルを変更しておきます。
ちなみに Skype for Windows には「ヘルプ」「ご意見・ご感想を送信」という機能があります。 この件については、私はいちどここに不具合報告を書きました。
この機能の文字入力は NVDA で不具合が起きないようです。
Skype が更新されるたびに確認していますが、解決しなさそうなので、回避方法を考えてみました。
添付の sendchars.py を globalPlugins フォルダに入れると、 NVDA+k で send chars というダイアログが開くようになります。 ここでテキストボックスにテキストを入力して Enter を押す(または OK ボタンを押す)と、 NVDA+k が押された時点での場所にフォーカスを戻してテキストを流し込みます。
いちおう Skype Windows デスクトップの最新版に日本語を入力することはできています。
ダイアログを閉じたときの読み上げがごちゃごちゃして、 あまり使いやすいとは言えないし、 確実性もまだ十分に検証できていません。
役に立ちそうであればアドオンにしたいと思います。
引き続き考えてみます。
ソースコード
https://gist.github.com/nishimotz/33cf91246043dbe208dc77326aa11b60
本家のチケットを眺めていたら TChatRichEdit が RichEdit20 クラスにマッピングされているので UI Automation 対応できなくてスペルミスの報告が動かない、という指摘があった。 確かに Skype が UI Automation に移行してしまったとしたら、 ナレーターでちゃんと動くけど NVDA でちゃんと動かないということはあり得る。 ふとそのマッピングを外してみたら Skype 7.39.0.102 でチャットの未確定文字をちゃんと処理できるようになった。
さてこれどうしようか。。
diff --git a/source/NVDAObjects/window/__init__.py b/source/NVDAObjects/window/__init__.py index b1e0caa..a4efea4 100644 --- a/source/NVDAObjects/window/__init__.py +++ b/source/NVDAObjects/window/__init__.py @@ -429,12 +429,12 @@ windowClassMap={ "WFMAINRE":"RichEdit20", "RichEdit20A":"RichEdit20", "RichEdit20W":"RichEdit20", - "TChatRichEdit":"RichEdit20", +# "TChatRichEdit":"RichEdit20", "TAccessibleEdit":"Edit", "TskRichEdit.UnicodeClass":"RichEdit20", "RichEdit20WPT":"RichEdit20", "RICHEDIT60W":"RICHEDIT50W", - "TChatRichEdit.UnicodeClass":"RichEdit20", +# "TChatRichEdit.UnicodeClass":"RichEdit20", "TMyRichEdit":"RichEdit20", "TExRichEdit":"RichEdit20", "RichTextWndClass":"RichEdit20",
https://github.com/nvaccess/nvda/issues/6293 によると、問題は Windows 8.1 や 7 で不具合がないかどうかということらしい。 もうすこし調べてみる。
本家 6528 で報告した内容:
次の日本語ベータ版で試してみる。
2017.4jp で暫定的な対策、 現在は Skype 8 系への移行で、状況が変わったので、 本件はクローズします。
環境
手順
Skype のバージョンアップが原因という可能性もあるのですが、この組み合わせで Windows ナレーターの場合は日本語入力の読み上げに問題はありません。