Ticket #30904

日本語点字の行末のセルでタッチカーソルが効かない

Open Date: 2013-03-05 21:57 Last Update: 2013-03-20 12:14

Reporter:
Owner:
(None)
Status:
Closed
Component:
(None)
MileStone:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
None

Details

jpdev130305 + メモ帳と KGS BMPad でタッチカーソルを押したときの挙動がずれています。

  • エディット画面:12345
  • 点字セル:数12345

BMPad では

  • 数符または 1 のセルの上のタッチカーソルを押すと、キャレットは左端(1の左)に移動
  • 5 のセルの上のタッチカーソルを押すと、キャレットは 5 の左に移動

jpdev130305 + メモ帳では

  • 数符のセルの上のタッチカーソルを押すと、キャレットは左端(1の左)に移動
  • 1 のセルの上のタッチカーソルを押すと、キャレットは 2 の左に移動
  • 4 のセルの上のタッチカーソルを押すと、キャレットは 5 の左に移動
  • 5 のセルの上のタッチカーソルを押すと、キャレットは移動しない

これが日本語点訳エンジンの実装の問題かどうかを確認するために、 liblouis とポジションマッピングの出力を比べたところ、同じでした。

  テーブル en-us-g1.ctb
  入力 '12345'
  NABCC出力 '#abcde'
  inpos:  [0, 0, 1, 2, 3, 4]
  outpos: [1, 2, 3, 4, 5]

なおこの条件で liblouis のカーソル位置変換(入力:出力)は以下のとおりでした。

  -1: -1
   0:  1
   1:  2
   2:  3
   3:  4
   4:  5
   5:  6
   6:  6
   7:  7
   8:  8

もしかすると想定範囲外の入力があるかも知れないので、引き続き確認します。

Ticket History (3/6 Histories)

2013-03-05 21:57 Updated by: nishimoto
  • New Ticket "日本語点字の行末のセルでタッチカーソルが効かない" created
2013-03-05 21:58 Updated by: nishimoto
  • Details Updated
2013-03-05 22:29 Updated by: nishimoto
Comment

jpdev130305 (アメリカ英語1級, カーソル位置のコンピュータ点字を無効)+ メモ帳 では以下のようになりました。

  • 数符のセルの上のタッチカーソルを押すと、キャレットは左端(1の左)に移動
  • 1 のセルの上のタッチカーソルを押すと、キャレットは 2 の左に移動
  • 4 のセルの上のタッチカーソルを押すと、キャレットは 5 の左に移動
  • 5 のセルの上のタッチカーソルを押すと、キャレットは 5 の右に移動

cursorPos 変換の定義域が outpos の長さよりも 1 大きいのかも知れません。NVDAJP の実装を直して、まず louis と同じ挙動になるようにしたいと思います。

2013-03-05 23:50 Updated by: nishimoto
Comment

下記のコミットで louis と同じ挙動(5のセルの上を押すとキャレットは5の右に移動)になりました。

lp:nvdajp rev 4548

調べたところ 12345 のような行があるときにNVDAは行末に空白1個を追加してliblouisに送っていました。

NVDA日本語版の点訳エンジンは出力の行末の空白を取り除いていたのですが、入力の行末の空白を保存するように修正しました。

「やっぱり」のような日本語の文字列の場合に、左端のセルを押すと、行頭ではなく2文字目の左にキャレットが移動することがあります。

もうすこし調査をしたいと思います。

2013-03-06 10:40 Updated by: nishimoto
Comment

開発スナップショット jpdev130306 https://dl.dropbox.com/u/62564469/nvda_snapshot_jpdev130306.exe

行末のタッチカーソルが有効になるようにしました。

また liblouis となるべく同じ outpos を生成するように修正したので、 カーソルやキャレットのマッピング処理が変わった可能性があります。

点訳と同時に生成した inpos から outpos を生成しているので、 あまり outpos をこまかく制御できていない可能性はあります。

2013-03-20 12:14 Updated by: nishimoto
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2013-03-20 12:14

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login