Firefox や Excel で日本語入力のプリエディット文字が不正確に通知される
Firefox 31.0 では TSF サポートが無効になっているらしく、この不具合は TSF ではなく IMM32 に関連する現象のようです。
Firefox の about:config で intl.tsf.enable という設定値を false から true に変更して、Firefox を再起動してから、上記の手順を実行すると、 この不具合を回避できるようです。
またこの tsf.enable をしない状態だと Windows 7 64ビット + Office IME 2010 + Firefox 31 でも「ほんあいうえお」現象が発生しています。
Twitter で教わった情報:
MsIME 2010 + Excel 2010 で動作確認をすると、 セル編集ボックスを表示させる F2 で、文字列を編集すると「アイウエオ」現象となります。
MsIME的なスクリーンリーダーとしての対応策として考えた方がよいかもしれません。
どうやら NVDA 側で対処するしかなさそうなので、作業してみました:
To ssh://git@bitbucket.org/nvdajp/nvdajp.git 6d1d728..a361b59 jpbeta -> jpbeta
実装としては「ほnあいうえお」のように、かな文字の途中にアルファベットを挟むような compositionUpdate を無視するという処理をしています。
Excel 2013 で同様の現象を確認したので、概要を一部修正しました。
日本語テスト版 jpbeta140801
https://dl.dropboxusercontent.com/u/62564469/nvda_jpbeta140801.exe
Firefox 31 (スタートページでの検索エディット)と Excel 2013 (新規ワークシートでの F2 キーによるテキスト編集)で、 不具合が回避できていることは確認しました。
ただし Excel では、エンターを押すと以下のエラーが出ます。
ERROR - scriptHandler.executeScript (10:45:47): error executing script: <bound method Dynamic_EditableTextWithoutAutoSelectDetectionUIA.script_caret_newLine of <NVDAObjects.Dynamic_EditableTextWithoutAutoSelectDetectionUIA object at 0x04628050>> with gesture u'エンター' Traceback (most recent call last): File "scriptHandler.pyo", line 174, in executeScript File "editableText.pyo", line 113, in script_caret_newLine File "editableText.pyo", line 67, in _hasCaretMoved File "NVDAObjects\__init__.pyo", line 926, in makeTextInfo File "NVDAObjects\UIA\__init__.pyo", line 57, in __init__ COMError: (-2147220992, None, (None, None, None, 0, None))
また Excel で、セルの内容を途中まで入力すると上のセルの内容が補完されてきますが、そのときの挙動はまだ不確実に思われます。
これらは、本家版との比較など、もう少し調べてみる必要があります。
なお、一時的に log.info で IME の内部情報を出力するようにしたので、このチケットをクローズする前に debug に戻す予定です。
本件に関する log.info を debug に戻しました。
To ssh://git@bitbucket.org/nvdajp/nvdajp.git 3cf8195..82ad9c2 jpbeta -> jpbeta
本家版 master での Excel の動作はまだ検証中ですが、気づいた点は別のチケットにしたいと思います。
Firefox 31 で日本語入力のプリエディット文字が不正確に通知される現象についてまとめます。
チケット #31358 でいただいた指摘ですが、チケットを独立させました。
環境:
再現手順:
この現象はメモ帳では起きていませんが、Mozilla Thunderbird でも起きるらしいので引き続き調査します。
上記の再現手順のログ(後述)を見たところ IME から「ほnあいうえお」という文字列が来てしまっているようです。