ビルドされた実行ファイルで確認した。
キャレット移動は解決したが、Shift+矢印キーで選択をするとやっぱりずれている。
https://ci.appveyor.com/project/TakuyaNishimoto/nvdajp/build/richedit-155/artifacts
範囲選択の処理に手を入れてみたのですが、 そうするとキャレットと改行位置の不具合対策が壊れてしまいます。
本件に関連するすべての現象を手元で再現できる状況を作ってから、 この3つの問題をまとめて解決できる実装を、 もういちど考え直さなくてはいけないようです。
今回はキャレットだけ対応をして、 まず既存の動作に不具合がないかどうか反応を待ちたいと思います。 (次の日本語ベータ版にマージします)
選択範囲の問題への対応は 2017.1jp 以降に向けて、引き続き検討します。
報告されている 2016.4jp と VoicePopper 3 の不具合に関係があるかも知れません。
日本語設定「改行位置の不具合対策」のチェックをはずしても解決しないようなので、 この変更について 2016.3jp と同じ状態に戻してみたいと思っています。
修正をキャンセルしてテスト版を作ったら VoicePopper 3 の不具合が改善されたとの報告がありました。
nvda-japanese-users 1989 MFC RichEditViewの読み上げ
直せそうなところを見つけたので次の日本語ベータ版で試してもらう:
https://github.com/nvdajp/nvdajp/issues/13
関連チケット:
https://github.com/nvaccess/nvda/issues/3918
https://osdn.net/ticket/browse.php?tid=33260&group_id=4221
https://osdn.net/ticket/browse.php?tid=33555&group_id=4221