Ticket #32825

行頭にキャレットがある場合に点字ディスプレイのカーソル点滅位置がずれる

Open Date: 2014-01-04 14:17 Last Update: 2014-01-21 11:48

Reporter: nishimoto Owner: nishimoto
Type: Bugs Status: Closed
Component: 点字ディスプレイ MileStone: 2014.1jp (closed)
Priority: 5 - Medium Severity: 5 - Medium
Resolution: Fixed

Details

行頭にキャレットがある場合に点字ディスプレイのカーソル点滅位置がずれる現象についてご指摘をいただいています。

テストケース (miscdep jptools/harness.py) では下記のようなパターンで、outpos の第1要素が3なので、入力文字列の先頭に対して、点字ディスプレイの4マス目(キョの234の場所)を指してしまう、という状況のようです。

		'text': '東京 ',
		'input': 'トーキョー ',
		'inpos2': [0,0,0,1,1,2],
		'inpos1': [0,1,2,2,4,5],
		'inpos':  [0,0,0,0,1,2],
		'outpos': [3,4,5], # FIXME

いままで outpos のテストケースは十分に検証してこなかったので、このチケットに対応する作業ブランチを作る予定です。

Attachment File List

No attachments

Ticket History (3/5 Histories)

2014-01-04 14:17 Updated by: nishimoto
  • New Ticket "行頭にキャレットがある場合に点字ディスプレイのカーソル点滅位置がずれる" created
2014-01-04 15:17 Updated by: nishimoto
  • Resolution Update from None to Accepted
Comment

inpos から outpos を生成する処理を修正してみました。

Total 15 (delta 9), reused 0 (delta 0)
To ssh://git@bitbucket.org/nvdajp/nvdajpmiscdep.git
 * [new branch]      ti32825 -> ti32825

以下、変更されたテストケースです。2文字目以降のマッピングがまだ不適切に見えるので、引き続き検討します:

		'text': '12345 ',
		'input': '12345 ',
		'inpos2': [0,1,2,3,4,5],
		'inpos1': [0,0,1,2,3,4,5],
		'inpos':  [0,0,1,2,3,4,5],
		'outpos': [0,2,3,4,5,6],

		'text': '機能 ',
		'input': 'キノー ',
		'inpos2': [0,0,1,2],
		'inpos1': [0,1,2,3],
		'inpos':  [0,0,1,2],
		'outpos': [0,2,3],

		'text': '実技 ',
		'input': 'ジツギ ',
		'inpos2': [0,0,1,2],
		'inpos1': [0,0,1,2,2,3],
		'inpos':  [0,0,0,1,1,2],
		'outpos': [0,3,5],

		'text': '東京 ',
		'input': 'トーキョー ',
		'inpos2': [0,0,0,1,1,2],
		'inpos1': [0,1,2,2,4,5],
		'inpos':  [0,0,0,0,1,2],
		'outpos': [0,4,5],
2014-01-04 22:03 Updated by: nishimoto
Comment

別チケットで行うべき作業かも知れませんが、「シャ」「キョ」のように2文字の読みから2個の点字パターンに変換するときに、内部的なポジションマッピングを1文字まとめて対応付けるのをやめて、1文字ずつ対応させるようにしました。

To ssh://git@bitbucket.org/nvdajp/nvdajpmiscdep.git
   8ca6139..4b5354a  ti32825 -> ti32825

この変更の結果、例えば「東京」の inpos と outpos は下記のようになり、完全ではありませんが不自然さが緩和されたと思います。

		'text': '東京 ',
		'input': 'トーキョー ',
		'inpos2': [0,0,0,1,1,2],
		'inpos1': [0,1,2,3,4,5],
		'inpos':  [0,0,0,1,1,2],
		'outpos': [0,3,5],

このチケットに関する作業はここまでとさせていただき 2014.1jp に反映させたいと思います。

本当は「京」に対応するのは出力の3番目のセル(zero-origin でのインデックスは2)なので、outpos の第2要素は 3 ではなく 2 が正解です。

しかし、現状のテキスト解析辞書は「東京」と「トーキョー」の文字単位での位置の対応付け情報を持っていないので、単純に比例配分で割り当てを行っています。

文字単位での対応付けに関する改良は、別チケットで扱わせてください。

また、画面上の文字に対応する複数のセルをカーソルとしてブリンクさせたい、というご要望もあるのですが、点訳エンジンに加えて NVDA のコアも改変が必要となるため、これも別チケットで検討させてください。

2014-01-05 10:37 Updated by: nishimoto
  • Resolution Update from Accepted to Fixed
Comment

この修正を反映させた NVDA 日本語テスト版 nvda_jpbeta140105 を作りました。

https://dl.dropboxusercontent.com/u/62564469/nvda_jpbeta140105.exe

2014-01-21 11:48 Updated by: nishimoto
  • Ticket Close date is changed to 2014-01-21 11:48
  • Status Update from Open to Closed

Edit

Please login to add comment to this ticket » Login