Ticket #31358

日本語入力(TSF)で文節ごとの候補の読み上げ

Open Date: 2013-05-14 21:00 Last Update: 2014-07-31 19:14

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
Priority:
6
Severity:
6
Resolution:
Fixed
File:
None

Details

NVDA日本語版 2013.1jp に向けたブランチにおいて、入力システムとアプリケーションが TSF に対応している場合に、文節移動後の候補読み上げが実現できていません。

NVDA本家版 2013.1 ブランチから 2013.1jp で独自に追加したのは IMM 系の API を使った文節選択のサポートです。

例えば Windows XP で「テキストサービスを拡張しない」設定で、メモ帳を使うときには、日本語入力の選択された文節だけを読み上げます。

TSF での文節選択のサポートは 2012.3.1jp までの nvdajpime でも未対応でしたが、本家の TSF 実装でもサポートされておらず、今後の課題です。

以上、チケット #28155 をクローズしたので現状をまとめました。

http://sourceforge.jp/ticket/browse.php?group_id=4221&tid=28155

Ticket History (3/35 Histories)

2013-05-14 21:00 Updated by: nishimoto
  • New Ticket "日本語入力で文節ごとの候補の読み上げ" created
2013-05-22 18:46 Updated by: nishimoto
Comment

TSF での文節選択状態を取得する方法を調査しています。

tsf.cpp の TsfSink::OnEndEdit() で pCtx->GetSelection(cookie,TF_DEFAULT_SELECTION,1,&tfSelection,&len) しているところがあるのですが、 ここで TF_DEFAULT_SELECTION ではない呼び出しをしたらどうなるか、調べてみたいと思います。

期待しているのは、tfSelection という TF_SELECTION 構造体の配列に、各文節の情報が入ってくれて、 TF_DA_ATTR_INFO という列挙型のメンバーで TF_ATTR_TARGET_CONVERTED などの値をチェックすればよい、という挙動なのですが。。。

以下、関係ありそうなMSDNの記事:

2013-05-22 22:36 Updated by: nishimoto
Comment

残念ながら ITfContext::GetSelection() は TF_DEFAULT_SELECTION でないときにも1つしかセレクションを返さないようです。

それから、私がどこかで仕様書を読み間違えたらしく、TF_DISPLAYATTRIBUTE を取るためには別の処理が必要らしいです:

2013-05-22 23:37 Updated by: nishimoto
Comment

上記の ms629224 "Using Display Attributes" の記事通りに実装したところ、文節がひとつだけのときには TF_ATTR_INPUT (=0) と TF_ATTR_TARGET_CONVERTED (=1) の区別が取れるようになりましたが、文節が2つ以上のときに GetDispAttrFromRange() に相当する部分がどこかで失敗します。

もう少し調べてみます。

2013-05-23 12:10 Updated by: nishimoto
Comment

現時点までの作業を下記に push しました。

https://bitbucket.org/nvdajp/nvdajp.git ブランチ tsf

ログを確認するには DebugView for Windows が必要です。

http://technet.microsoft.com/ja-jp/sysinternals/bb896647.aspx

2013-08-03 13:43 Updated by: nishimoto
Comment

bitbucket の tsf ブランチに現状の jpbranch をマージしました。

https://bitbucket.org/nvdajp/nvdajp/commits/branch/tsf

ハッシュ値 eaf4f9c

2013-08-10 14:52 Updated by: nishimoto
Comment

IME で文節の操作をするときの文字装飾について情報をまとめておきます。

例は office.microsoft.com の記事「文節の長さを変更する」から引用します。 http://office.microsoft.com/ja-jp/support/HA101858014.aspx

この記事は Office IME 2010 に基づいて書かれています。

いま Windows 8 + Microsoft IME + メモ帳で確認しましたが、上記の記事の中の画像とほぼ同じでした。

なお、私のキーボードには変換キーがないのでスペースキーを押しました。

(1)

「ここではせがわとあう」と入力し、 変換キー を押します。 「ここで長谷川と会う」と変換され、「ここで」の下に太い下線が表示されます。

変換キーを押す前:

ここではせがわとあう:波線の下線

変換キーを押した直後:

ここで:太い直線の下線
(ここで下線が切れる)

長谷川と:細い直線の下線
(ここで下線が切れる)

会う:細い直線の下線

(2)

Shift キーを押しながら → キーを 1 回押して、「ここでは」を選択します。 文節の区切りが変更されます。

ここでは:青背景に白抜きの文字

せがわと:波線の下線
(ここで下線が切れる)

会う:細い直線の下線

(3)

変換 キーを押します。 「ここでは瀬川と会う」に変換されます。

ここでは:太い直線の下線
(ここで下線が切れる)

瀬川と:細い直線の下線
(ここで下線が切れる)

会う:細い直線の下線
2014-02-07 19:49 Updated by: nishimoto
  • Component Update from (None) to IME
  • Summary Updated
Comment

チケット #28155 と区別するためにタイトルを「日本語入力で文節ごとの候補の読み上げ」から「日本語入力(TSF)で文節ごとの候補の読み上げ」に変更しました。

2014-02-23 20:34 Updated by: nishimoto
  • Severity Update from 5 - Medium to 6
  • Priority Update from 5 - Medium to 6
Comment

優先度、重要度を6に変更します。

2014-05-12 11:23 Updated by: nishimoto
Comment

Windows 8.1 での入力メソッドが UI Automation ベースになったことに関する本家のチケット:

http://community.nvda-project.org/ticket/4011

ここに書かれた方法が実装されると Windows 8.1 の Microsoft IME の田町読みがとれるかも知れませんね。。

2014-07-16 22:43 Updated by: nishimoto
Comment

日本語テスト版 jpalpha140716

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

ひさしぶりに作業したら、やっと TSF の文節変換の状態を取れるようになりました。

Windows 8.1 64ビット、Microsoft IME および ATOK 2014 いずれもテキストサービス有効で動作を確認しています。

Microsoft IME だとときどき、同じ情報を繰り返したり、不要な「空行」を読んだりしますが。。

技術的には、1文字ずつ ITfRange を指定して TF_DISPLAYATTRIBUTE を取得すれば TF_DA_ATTR_INFO が IMM の GCS_COMPATTR のように使える、という話。。

以下、ブランチの情報:

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   eaf4f9c..3cad219  tsf -> tsf
2014-07-17 12:19 Updated by: nishimoto
Comment

日本語テスト版 jpalpha140717

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

文節区切り位置を変更したときの読み上げに不具合があったので、修正しました。

2014-07-17 21:40 Updated by: nishimoto
Comment

課題:

  • 文節単位で確定をしたときに、入力メソッドの状態変化とアプリケーションの文字入力が入り混じって通知される
  • 過去に入力されたテキストの最初の1文字だけ繰り返すような、余分な読み上げが発生する

作業中の文節だけを通知するか、コンポジション全体を通知するか、選択できるようにしてはどうか、という提案もいただいています。

2014-07-21 23:47 Updated by: nishimoto
Comment

おそらくこの作業の影響と思われる現象:

  • henkan スペース で「変換」を確定すると「へんかn」(へんか エヌ)と通知される
  • hennkann スペースで確定すると「変換=へんかん」がちゃんと通知される
2014-07-22 21:02 Updated by: nishimoto
Comment

「変換」を確定すると「へんかn」(へんか エヌ)と通知される現象を回避するために、 文節切り替えの通知を NVDAObject.InputComposition.compositionUpdate() に共通化。

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   2bb86df..3ed2b35  tsf -> tsf

その他の通知の重複も、この修正で以前より起こりにくくなったように思います。

最初の1文字を重複して通知する現象は、どうやらキャレット位置を通知する処理の影響のようなので、 他のブランチでやっている EditableText の処理か、このブランチの作業か、 どちらかを完了させて jpbeta にマージしてから行うのがよさそうに思います。

2014-07-23 15:40 Updated by: nishimoto
Comment

日本語テスト版 jpalpha140723

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

上記の tsf ブランチの変更をマージしました。

ATOK での文節単位の確定の読み上げなど、すこし使い勝手が変わってしまったところもあるので、しばらく評価していただこうと思います。

2014-07-23 17:44 Updated by: misono
Comment

最後にログを貼り付けます。 現象としては、コンポジションの先頭文字の二重読みが発生しています。

「本日は晴天なり。」 ↓ 「はれるのせい はれるのせい てんごくのてん」

Windows 8.1 + Microsoft 2010

nishimoto への返信

日本語テスト版 jpalpha140723 https://dl.dropboxusercontent.com/u/62564469/nvda_jpalpha140723.exe 上記の tsf ブランチの変更をマージしました。 ATOK での文節単位の確定の読み上げなど、すこし使い勝手が変わってしまったところもあるので、しばらく評価していただこうと思います。

IO - inputCore.InputManager.executeGesture (17:32:12):
Input: kb(laptop):space
IO - speech.speak (17:32:12):
Speaking [LangChangeCommand (u'ja'), u'ホンバコノ ホン ニチヨービノ ニチ ヒラガナ ハ']
IO - inputCore.InputManager.executeGesture (17:32:15):
Input: kb(laptop):rightArrow
IO - speech._speakSpellingGen (17:32:15):
Speaking character u'ハレルノ セイ'
IO - speech.speak (17:32:15):
Speaking [LangChangeCommand (u'ja'), u'ハレルノ セイ テンゴクノ テン']
IO - inputCore.InputManager.executeGesture (17:32:18):
Input: kb(laptop):rightArrow
IO - speech._speakSpellingGen (17:32:18):
Speaking character u'ナ'
IO - speech.speak (17:32:18):
Speaking [LangChangeCommand (u'ja'), u'ヒラガナ なり']
IO - inputCore.InputManager.executeGesture (17:32:23):
Input: kb(laptop):rightArrow
IO - speech._speakSpellingGen (17:32:23):
Speaking character u'クテン'
IO - speech.speak (17:32:23):
Speaking [LangChangeCommand (u'ja'), u'ゼンカク マル']
IO - inputCore.InputManager.executeGesture (17:32:24):
Input: kb(laptop):leftArrow
IO - speech._speakSpellingGen (17:32:24):
Speaking character u'ナ'
IO - speech.speak (17:32:24):
Speaking [LangChangeCommand (u'ja'), u'ヒラガナ なり']
IO - inputCore.InputManager.executeGesture (17:32:25):
Input: kb(laptop):leftArrow
IO - speech._speakSpellingGen (17:32:25):
Speaking character u'ハレルノ セイ'
IO - speech.speak (17:32:25):
Speaking [LangChangeCommand (u'ja'), u'ハレルノ セイ テンゴクノ テン']
IO - inputCore.InputManager.executeGesture (17:32:26):
Input: kb(laptop):leftArrow
IO - speech._speakSpellingGen (17:32:26):
Speaking character u'ホンバコノ ホン'
IO - speech.speak (17:32:26):
Speaking [LangChangeCommand (u'ja'), u'ホンバコノ ホン ニチヨービノ ニチ ヒラガナ ハ']
IO - inputCore.InputManager.executeGesture (17:32:31):
Input: kb(laptop):enter
IO - speech.speak (17:32:31):
Speaking [LangChangeCommand (u'ja'), u'本日は晴天なり。']
2014-07-23 18:54 Updated by: nishimoto
Comment

ご報告ありがとうございます。

コンポジションの先頭文字の二重読みは既知の問題としてここに書いたつもりですが、 念のために詳しく説明しておきます。

日本語変換をしていない状態で左右の矢印キーを押すと、キャレット位置の文字を詳細読みします。

NVDA 日本語版では NVDA+ピリオド(ラップトップ配列)を4回押すと「読み方モード」と「説明モード」を切り替えられて、 読み方モードの動作が、より本家版に近い動作になります。

コンポジションの文節移動で左右矢印を押したときにも、このキャレット位置の文字の説明が同時に動いているので、 結果的に、キャレット位置の文字の説明と、選択した文節の説明が連続して起こっています。

このことは、「読み方モード」「説明モード」を切り替えるとこの挙動が変わるので、確認できるはずです。

この現象を解決する方法として、文字説明モードの動作を、コンポジションの状態によって無効化しようと思っていますが

チケット #33969 テキスト編集で改行を通知

との整合性を考慮しながら行う予定です。

2014-07-23 20:06 Updated by: misono
Comment

Windows 8.1 + Atok 2013 で以下の現象を確認しています。

「日付」を変換すると、今日の日付が変換候補として表示されるが、読み上げない。

たとえば、 2014/07/23 という変換候補が表示されますが、 読み上げされないという状況です。

2014-07-23 21:06 Updated by: nishimoto
Comment

ATOK で出てくる二重山かっこのコメントが付いた候補で、候補文字列ではなくコメントを読み上げてしまう不具合の修正:

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   3ed2b35..e18e624  tsf -> tsf
2014-07-23 21:35 Updated by: nishimoto
Comment

コンポジション文字列で左右の矢印キーを押して、文節の選択を切り替えたり、文節の長さを変更したときに、 キャレット位置の文字の通知をさせない処理:

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   e18e624..d81799f  tsf -> tsf
2014-07-24 08:58 Updated by: nishimoto
Comment

日本語テスト版 jpalpha140724

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

ATOK のコメント付き候補への対応、左右矢印キーの読み上げの動作を改善。

2014-07-26 08:59 Updated by: nishimoto
Comment
(This comment has been deleted)
2014-07-26 21:22 Updated by: nishimoto
Comment

改行の通知についてのコメントを間違えてつけてしまいましたが、こちらではなく #33969 の議論なので、削除しました。

2014-07-26 21:43 Updated by: nishimoto
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2014-07-26 21:43
Comment

jpbeta ブランチに tsf ブランチをマージしました。

「NVDA 日本語版の説明」の本件に関する更新を行いました:

To ssh://git@bitbucket.org/nvdajp/nvdajp.git
   16aad7b..9de2a23  jpbeta -> jpbeta

このチケットはクローズします。

最近指摘があった課題はチケット #34093 および #34094 で検討します。

2014-07-27 08:27 Updated by: misono
Comment

PC-Talkerでは「変換中ガイドラインすべてを読み上げる」の設定のチェックボックスがあります。これがOnのとき、変換文節にかかわらず、すべてを読み上げ読み上げます。この仕様は、現状のNVDAと同じです。 一方 Off のときには、このチケットで遂行した TSF の変換候補ごとの読み上げをサポートします。

PC-Talkerのデフォルトは Off です。

このようなオプションのチェックボックスを、日本語独自のオプション設定として設けてはどうでしょうか?

この件については、2014.3へ向けた作業として検討していただけましたらと思います。

2014-07-27 08:36 Updated by: misono
Comment

次に、

こちらもメーリングリストで出された議論からです。

msimeにおいて、 「本日は晴天なり」

この文字列を入力してスペースキーを押したとき 「本日は」「晴天」「なり」の3つのコンポジションに分割されます。

この状態より、ESCを押して行くと、最終的に、 「クリア」が発声するまで、コンポジションマーカーが変化しながら、キャンセルされるという仕様です。

このチケットで作業している TSF におけるアルファ版では、まだ、この件が解決されていません。

こちらも、2014.3の解決課題としていただけましたらと思います。

2014-07-27 08:52 Updated by: misono
Comment

このチケットでの作業で発生している現象とおもわれるので書き残します。

msime 2010 + Firefox 30.0 において エディットボックス上で日本語で何らかの文字列を入力しているとき、 変換候補が出現すると、あらかじめ、エディットボックス上に入力してあった文字列を読み上げてしまったり、 変換候補に含まれていない、ステータスメッセージも詳細読みしてしまう場合があるようです。

たとえば、Firefoxのスタートページに存在する、検索用のエディットボックスで、 フォーカスモードに切り替えた状態で、 先に「あいえうお」と入力して確定します。 次に「ほんじつは」と入力します。 「ほんじつは」の「ん」まで入力した段階で、「あいうえお」と読み上げてしまうようです。

ステータス表示まで詳細読み上げしてしまう現象については、もう少し検証します。

2014-07-28 09:13 Updated by: nishimoto
Comment

上記のご指摘について:

(1)

複数文節の変換中の Esc キーの挙動

環境:NVDA jpalpha140724 + Windows 7 64ビット + Microsoft Office IME 2010 + メモ帳

メモ帳に文字変換で「ほんじつはせいてんなり」と入力し、スペースで変換。

コンポジションが「本日は 晴天 なり」という3文節になり、「本日は」の文節が選択された状態になる。

このとき「ホンバコノホン ニチヨービノニチ ヒラガナ ハ」と通知される。

Esc を押すと、選択された文節がひらがなに戻る。

このとき「ヒラガナ ホンジツハ ハレルノセイ テンゴクノテン ヒラガナ ナリ」

と通知される。

もう一度 Esc を押すと、スペースを押して変換をする前の状態(プリエディット)に戻る。

このとき「ヒラガナ ホンジツハセイテンナリ」と通知される。

上記の挙動で間違いなければ、どのように不都合があり、どのように修正されるべきであるか、 具体的にご指摘いただければ幸いです。

(2)

Firefox スタートページの検索ボックスでの、日本語入力、確定、再度の日本語入力で起きる不具合は、私の検証ではまだ再現できていません。

環境:NVDA jpalpha140724 + Windows 7 64ビット + Microsoft Office IME 2010 + Firefox 31

IME の予測入力の影響のようにも見えるのすが、 予測候補がなかなか出てこないので、同じ状況を再現できていないのかも知れません。

(3)

「変換中ガイドラインすべてを読み上げる」オプションの提案については、もうしばらくご意見を伺いたいと思います。

チケット #34093 ATOK 候補で二重山カッコつきで付与されたコメントの通知

と併せて検討が必要と思われます。

2014-07-29 19:31 Updated by: misono
Comment

以下、インラインでコメントします。

nishimoto への返信

(1) 複数文節の変換中の Esc キーの挙動 環境:NVDA jpalpha140724 + Windows 7 64ビット + Microsoft Office IME 2010 + メモ帳 メモ帳に文字変換で「ほんじつはせいてんなり」と入力し、スペースで変換。 コンポジションが「本日は 晴天 なり」という3文節になり、「本日は」の文節が選択された状態になる。 このとき「ホンバコノホン ニチヨービノニチ ヒラガナ ハ」と通知される。 Esc を押すと、選択された文節がひらがなに戻る。 このとき「ヒラガナ ホンジツハ ハレルノセイ テンゴクノテン ヒラガナ ナリ」 と通知される。

このとき選択した文節、つまり、この場合は「ヒラガナ ホンジツハ」が通知されることを期待しています。

ESCキーで変換候補が変化した文節を読み上げると、 読み取っていただければと思います。

もう一度 Esc を押すと、スペースを押して変換をする前の状態(プリエディット)に戻る。 このとき「ヒラガナ ホンジツハセイテンナリ」と通知される。

上記の実装でいくと、 「ヒラガナ ホンジツハセイテンナリ」 プリエディット文字列全てを通知する形となります。

(2) Firefox スタートページの検索ボックスでの、日本語入力、確定、再度の日本語入力で起きる不具合は、私の検証ではまだ再現できていません。 環境:NVDA jpalpha140724 + Windows 7 64ビット + Microsoft Office IME 2010 + Firefox 31 IME の予測入力の影響のようにも見えるのすが、 予測候補がなかなか出てこないので、同じ状況を再現できていないのかも知れません。

Firefox と MsIME 2010 をリセットして試しました。 現象自体は変わりません。予測候補オプションを無効にしましたが現象は同じく変わりません。 Atok 2013 使用時には発生しません。

この現象は、 Firefox だけではなく Thunderbird でも発生しています。メモ帳では起きません。 ほかのアプリケーションでも発生しています。

印象としては、プリエディット中に、親ウインドウに入力された文字列を取得して通知してしまっているようです。

また、手続きに一部抜けていましたので、ログで提示したいと思います。

Firefoxの起動直後でスタートページが表示されてからの操作ログです。

IO - inputCore.InputManager.executeGesture (19:13:37): Input: kb(laptop):tab IO - speech.speak (19:13:37): Speaking (u'ja'), u'検索', u'ボタン' IO - inputCore.InputManager.executeGesture (19:13:38): Input: kb(laptop):shift+tab IO - speech.speak (19:13:38): Speaking (u'ja'), u'エディット オートコンプリート' IO - inputCore.InputManager.executeGesture (19:13:38): Input: kb(laptop):enter IO - inputCore.InputManager.executeGesture (19:13:40): Input: kb(laptop):NVDA+space IO - inputCore.InputManager.executeGesture (19:13:41): Input: kb(laptop):NVDA+space

Input: kb(laptop):alt+IMEChangeStatus1 IO - speech.speak (19:13:43): Speaking (u'ja'), u'文字変換'

IO - inputCore.InputManager.executeGesture (19:13:44): Input: kb(laptop):a IO - speech.speak (19:13:44): Speaking (u'ja'), u'ア' IO - inputCore.InputManager.executeGesture (19:13:44): Input: kb(laptop):i IO - speech.speak (19:13:44): Speaking (u'ja'), u'イ' IO - inputCore.InputManager.executeGesture (19:13:45): Input: kb(laptop):u IO - speech.speak (19:13:45): Speaking (u'ja'), u'ウ' IO - inputCore.InputManager.executeGesture (19:13:46): Input: kb(laptop):e IO - speech.speak (19:13:46): Speaking (u'ja'), u'エ' IO - inputCore.InputManager.executeGesture (19:13:46): Input: kb(laptop):o IO - speech.speak (19:13:46): Speaking (u'ja'), u'オ' IO - inputCore.InputManager.executeGesture (19:13:46): Input: kb(laptop):enter IO - speech.speak (19:13:47): Speaking (u'ja'), u'あいうえお'

atention1:

IO - inputCore.InputManager.executeGesture (19:13:48): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:48): Speaking character u'オ' IO - inputCore.InputManager.executeGesture (19:13:49): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:49): Speaking character u'エ' IO - inputCore.InputManager.executeGesture (19:13:50): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:50): Speaking character u'ウ' IO - inputCore.InputManager.executeGesture (19:13:50): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:50): Speaking character u'イ' IO - inputCore.InputManager.executeGesture (19:13:50): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:50): Speaking character u'ア'

atention2:

IO - inputCore.InputManager.executeGesture (19:13:51): Input: kb(laptop):h IO - speech.speak (19:13:52): Speaking (u'ja'), u'h' IO - inputCore.InputManager.executeGesture (19:13:52): Input: kb(laptop):o IO - speech.speak (19:13:52): Speaking (u'ja'), u'ホ' IO - inputCore.InputManager.executeGesture (19:13:52): Input: kb(laptop):n IO - speech.speak (19:13:52): Speaking (u'ja'), u'n' IO - inputCore.InputManager.executeGesture (19:13:53): Input: kb(laptop):n

!atention3:

IO - speech.speak (19:13:53): Speaking (u'ja'), u'アイウエオ'

IO - speech.speak (19:13:53): Speaking (u'ja'), u'ン'

IO - inputCore.InputManager.executeGesture (19:13:59): Input: kb(laptop):z IO - speech.speak (19:13:59): Speaking (u'ja'), u'z' IO - inputCore.InputManager.executeGesture (19:13:59): Input: kb(laptop):i IO - speech.speak (19:13:59): Speaking (u'ja'), u'ジ' IO - inputCore.InputManager.executeGesture (19:14:00): Input: kb(laptop):t IO - speech.speak (19:14:01): Speaking (u'ja'), u't' IO - inputCore.InputManager.executeGesture (19:14:01): Input: kb(laptop):u IO - speech.speak (19:14:01): Speaking (u'ja'), u'ツ' IO - inputCore.InputManager.executeGesture (19:14:01): Input: kb(laptop):h IO - speech.speak (19:14:01): Speaking (u'ja'), u'h' IO - inputCore.InputManager.executeGesture (19:14:02): Input: kb(laptop):a IO - speech.speak (19:14:02): Speaking (u'ja'), u'ハ' IO - inputCore.InputManager.executeGesture (19:14:02): Input: kb(laptop):space IO - speech.speak (19:14:02): Speaking (u'ja'), u'ホンバコノ ホン ニチヨービノ ニチ ヒラガナ ハ' IO - inputCore.InputManager.executeGesture (19:14:03): Input: kb(laptop):enter IO - speech.speak (19:14:03): Speaking (u'ja'), u'本日は'

(3) 「変換中ガイドラインすべてを読み上げる」オプションの提案については、もうしばらくご意見を伺いたいと思います。 チケット #34093 ATOK 候補で二重山カッコつきで付与されたコメントの通知 と併せて検討が必要と思われます。

このチケットで取り上げているTSFの文節単位の読み上げを嫌うスクリーンリーダーユーザーも多くいるので、 合わせて検討していただけましたら戸思います。

2014-07-31 11:39 Updated by: misono
Comment

下記の手順を、Aパソコン、Bパソコン、Cパソコンで実施したところ、すべて再現しましたので報告します。

この現象は、普段、MsIMEで漢字変換をするうえで、文字入力の完全な妨げとなってしまい、前バージョンよりも使い勝手が悪くなってしまっています。

このチケットにおける現象が解決できないと、このチケット作業は、次期バージョンへ見送るレベルかと考えています。

misono への返信

(2) Firefox スタートページの検索ボックスでの、日本語入力、確定、再度の日本語入力で起きる不具合は、私の検証ではまだ再現できていません。 環境:NVDA jpalpha140724 + Windows 7 64ビット + Microsoft Office IME 2010 + Firefox 31 IME の予測入力の影響のようにも見えるのすが、 予測候補がなかなか出てこないので、同じ状況を再現できていないのかも知れません。

Firefox と MsIME 2010 をリセットして試しました。 現象自体は変わりません。予測候補オプションを無効にしましたが現象は同じく変わりません。 Atok 2013 使用時には発生しません。 この現象は、 Firefox だけではなく Thunderbird でも発生しています。メモ帳では起きません。 ほかのアプリケーションでも発生しています。 印象としては、プリエディット中に、親ウインドウに入力された文字列を取得して通知してしまっているようです。 また、手続きに一部抜けていましたので、ログで提示したいと思います。 Firefoxの起動直後でスタートページが表示されてからの操作ログです。 IO - inputCore.InputManager.executeGesture (19:13:37): Input: kb(laptop):tab IO - speech.speak (19:13:37): Speaking (u'ja'), u'検索', u'ボタン' IO - inputCore.InputManager.executeGesture (19:13:38): Input: kb(laptop):shift+tab IO - speech.speak (19:13:38): Speaking (u'ja'), u'エディット オートコンプリート' IO - inputCore.InputManager.executeGesture (19:13:38): Input: kb(laptop):enter IO - inputCore.InputManager.executeGesture (19:13:40): Input: kb(laptop):NVDA+space IO - inputCore.InputManager.executeGesture (19:13:41): Input: kb(laptop):NVDA+space Input: kb(laptop):alt+IMEChangeStatus1 IO - speech.speak (19:13:43): Speaking (u'ja'), u'文字変換' IO - inputCore.InputManager.executeGesture (19:13:44): Input: kb(laptop):a IO - speech.speak (19:13:44): Speaking (u'ja'), u'ア' IO - inputCore.InputManager.executeGesture (19:13:44): Input: kb(laptop):i IO - speech.speak (19:13:44): Speaking (u'ja'), u'イ' IO - inputCore.InputManager.executeGesture (19:13:45): Input: kb(laptop):u IO - speech.speak (19:13:45): Speaking (u'ja'), u'ウ' IO - inputCore.InputManager.executeGesture (19:13:46): Input: kb(laptop):e IO - speech.speak (19:13:46): Speaking (u'ja'), u'エ' IO - inputCore.InputManager.executeGesture (19:13:46): Input: kb(laptop):o IO - speech.speak (19:13:46): Speaking (u'ja'), u'オ' IO - inputCore.InputManager.executeGesture (19:13:46): Input: kb(laptop):enter IO - speech.speak (19:13:47): Speaking (u'ja'), u'あいうえお' atention1: IO - inputCore.InputManager.executeGesture (19:13:48): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:48): Speaking character u'オ' IO - inputCore.InputManager.executeGesture (19:13:49): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:49): Speaking character u'エ' IO - inputCore.InputManager.executeGesture (19:13:50): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:50): Speaking character u'ウ' IO - inputCore.InputManager.executeGesture (19:13:50): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:50): Speaking character u'イ' IO - inputCore.InputManager.executeGesture (19:13:50): Input: kb(laptop):leftArrow IO - speech._speakSpellingGen (19:13:50): Speaking character u'ア' atention2: IO - inputCore.InputManager.executeGesture (19:13:51): Input: kb(laptop):h IO - speech.speak (19:13:52): Speaking (u'ja'), u'h' IO - inputCore.InputManager.executeGesture (19:13:52): Input: kb(laptop):o IO - speech.speak (19:13:52): Speaking (u'ja'), u'ホ' IO - inputCore.InputManager.executeGesture (19:13:52): Input: kb(laptop):n IO - speech.speak (19:13:52): Speaking (u'ja'), u'n' IO - inputCore.InputManager.executeGesture (19:13:53): Input: kb(laptop):n !atention3: IO - speech.speak (19:13:53): Speaking (u'ja'), u'アイウエオ' IO - speech.speak (19:13:53): Speaking (u'ja'), u'ン' IO - inputCore.InputManager.executeGesture (19:13:59): Input: kb(laptop):z IO - speech.speak (19:13:59): Speaking (u'ja'), u'z' IO - inputCore.InputManager.executeGesture (19:13:59): Input: kb(laptop):i IO - speech.speak (19:13:59): Speaking (u'ja'), u'ジ' IO - inputCore.InputManager.executeGesture (19:14:00): Input: kb(laptop):t IO - speech.speak (19:14:01): Speaking (u'ja'), u't' IO - inputCore.InputManager.executeGesture (19:14:01): Input: kb(laptop):u IO - speech.speak (19:14:01): Speaking (u'ja'), u'ツ' IO - inputCore.InputManager.executeGesture (19:14:01): Input: kb(laptop):h IO - speech.speak (19:14:01): Speaking (u'ja'), u'h' IO - inputCore.InputManager.executeGesture (19:14:02): Input: kb(laptop):a IO - speech.speak (19:14:02): Speaking (u'ja'), u'ハ' IO - inputCore.InputManager.executeGesture (19:14:02): Input: kb(laptop):space IO - speech.speak (19:14:02): Speaking (u'ja'), u'ホンバコノ ホン ニチヨービノ ニチ ヒラガナ ハ' IO - inputCore.InputManager.executeGesture (19:14:03): Input: kb(laptop):enter IO - speech.speak (19:14:03): Speaking (u'ja'), u'本日は'

2014-07-31 12:31 Updated by: nishimoto
  • Status Update from Closed to Open
Comment

ご報告ありがとうございます。

問題提起をいただいたので、このチケットを再オープンの状態にします。

(1) 私の環境ではご指摘の不具合が再現できない

(2) なぜこのチケットの作業がご指摘のような現象を引き起こすのかわからない

という状況です。

ログを取るときに IO ではなく DEBUG レベルにしていただくと、もう少し役立つかも知れません。

また、念のために、ログファイルの先頭のバージョン情報などが入った部分もつけていただいたほうがよいでしょう。

再現性が高いのであれば、他のかたからも不具合のご報告をいただけると思いますので、引き続き情報を待ちたいと思います。

2014-07-31 12:51 Updated by: misono
Comment

デバッグログでスクリーンリーダーユーザーの方には読みにくくなりますが、下記に貼り付けます。 なお、音声エンジンは、以下のログでは jtalk を使用しています。

Atok で起きず msime で起きるということは、 msime と Mozilla コンポーネントとの関連のバグや、 msime と NVDA とのウインドウハンドルとの兼ね合いも検討したほうがよいかもしれません。

なお、今回のテストでは Firefox を用いていますが、 Thunderbirdでも同じ状況です。

INFO - __main__ (12:40:25):
Starting NVDA
INFO - core.main (12:40:25):
Config dir: C:\Users\misono\AppData\Roaming\nvda
DEBUG - core.main (12:40:25):
setting language to Windows
INFO - core.main (12:40:25):
NVDA version jpbeta140730
INFO - core.main (12:40:25):
Using Windows version sys.getwindowsversion(major=6, minor=3, build=9600, platform=2, service_pack='')
INFO - core.main (12:40:25):
Using Python version 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)]
INFO - core.main (12:40:25):
Using comtypes version 0.6.2
DEBUG - core.main (12:40:25):
Initializing addons system.
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Listing add-ons from C:\Users\misono\AppData\Roaming\nvda\addons
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Loading add-on from C:\Users\misono\AppData\Roaming\nvda\addons\dropbox
DEBUG - addonHandler.Addon.__init__ (12:40:25):
Using manifest translation from C:\Users\misono\AppData\Roaming\nvda\addons\dropbox\locale\ja\manifest.ini
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Found add-on dropbox
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Loading add-on from C:\Users\misono\AppData\Roaming\nvda\addons\hidemaru
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Found add-on hidemaru
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Loading add-on from C:\Users\misono\AppData\Roaming\nvda\addons\protalker
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Found add-on protalker
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Loading add-on from C:\Users\misono\AppData\Roaming\nvda\addons\systrayList
DEBUG - addonHandler.Addon.__init__ (12:40:25):
Using manifest translation from C:\Users\misono\AppData\Roaming\nvda\addons\systrayList\locale\ja\manifest.ini
DEBUG - addonHandler._getAvailableAddonsFromPath (12:40:25):
Found add-on systrayList
DEBUG - core.main (12:40:26):
Initializing appModule Handler
DEBUG - addonHandler.Addon.addToPackagePath (12:40:26):
Addon dropbox added to appModules package path
DEBUG - addonHandler.Addon.addToPackagePath (12:40:26):
Addon hidemaru added to appModules package path
DEBUG - core.main (12:40:26):
Initializing NVDAHelper
DEBUG - core.main (12:40:26):
Speech Dictionary processing
DEBUG - speechDictHandler.SpeechDict.load (12:40:26):
Loading speech dictionary 'C:\Users\misono\AppData\Roaming\nvda\speechDicts\default.dic'...
DEBUG - speechDictHandler.SpeechDict.load (12:40:26):
file 'C:\Users\misono\AppData\Roaming\nvda\speechDicts\default.dic' not found.
DEBUG - speechDictHandler.SpeechDict.load (12:40:26):
Loading speech dictionary 'builtin.dic'...
DEBUG - speechDictHandler.SpeechDict.load (12:40:26):
3 loaded records.
DEBUG - core.main (12:40:26):
Initializing speech
DEBUG - addonHandler.Addon.addToPackagePath (12:40:26):
Addon protalker added to synthDrivers package path
DEBUG - synthDrivers.jtalk.jtalkDriver.initialize (12:40:26):
jtalk using eSpeak version 1.48.03  04.Mar.14
INFO - synthDrivers.jtalk.mecab.Mecab_initialize (12:40:26):
dic: C:\Program Files (x86)\NVDA\synthDrivers\jtalk\dic
INFO - synthDrivers.jtalk.mecab.Mecab_initialize (12:40:26):
mecab:0.996 nvdajp-jtalk-dic (utf-8) 20140730-023826
DEBUG - synthDrivers.jtalk.jtalkDriver.initialize (12:40:26):
jt_dll C:\Program Files (x86)\NVDA\synthDrivers\jtalk\libopenjtalk.dll
DEBUG - synthDrivers.jtalk.jtalkDriver.initialize (12:40:26):
libopenjtalk 20140730-023735
INFO - synthDrivers.jtalk.jtalkDriver.initialize (12:40:26):
loaded C:\Program Files (x86)\NVDA\synthDrivers\jtalk\mei\mei_normal.htsvoice
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._set_voice (12:40:26):
_set_voice V2
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._getAvailableVoices (12:40:26):
_getAvailableVoices called
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:26):
_get_voice called
DEBUG - speechDictHandler.SpeechDict.load (12:40:26):
Loading speech dictionary 'C:\Users\misono\AppData\Roaming\nvda\speechDicts\nvdajp_jtalk-mei.dic'...
DEBUG - speechDictHandler.SpeechDict.load (12:40:26):
file 'C:\Users\misono\AppData\Roaming\nvda\speechDicts\nvdajp_jtalk-mei.dic' not found.
INFO - synthDriverHandler.setSynth (12:40:26):
Loaded synthDriver nvdajp_jtalk
INFO - core.main (12:40:26):
Using wx version 2.8.12.1 (msw-unicode)
DEBUG - core.main (12:40:26):
Initializing braille
INFO - braille.initialize (12:40:26):
Using liblouis version 2.5.3
INFO - braille.BrailleHandler.setDisplayByName (12:40:26):
Loaded braille display driver noBraille, current display has 0 cells.
DEBUG - core.main (12:40:26):
Initializing braille input
INFO - brailleInput.initialize (12:40:26):
Braille input initialized
DEBUG - core.main (12:40:26):
Initializing displayModel
DEBUG - core.main (12:40:26):
Initializing GUI
DEBUG - core.main (12:40:26):
initializing Java Access Bridge support
WARNING - core.main (12:40:26):
Java Access Bridge not available
DEBUG - core.main (12:40:26):
Initializing winConsole support
DEBUG - core.main (12:40:26):
Initializing UIA support
DEBUG - core.main (12:40:26):
Initializing IAccessible support
DEBUG - core.main (12:40:26):
Initializing input core
DEBUGWARNING - inputCore.InputManager.loadLocaleGestureMap (12:40:26):
No locale gesture map for language ja_JP
DEBUGWARNING - inputCore.InputManager.loadUserGestureMap (12:40:26):
No user gesture map
DEBUG - core.main (12:40:26):
Initializing keyboard handler
DEBUG - core.main (12:40:26):
initializing mouse handler
DEBUG - core.main (12:40:26):
Initializing touchHandler
DEBUGWARNING - touchHandler.initialize (12:40:26):
No touch devices found
DEBUG - core.main (12:40:26):
Initializing global plugin handler
DEBUG - addonHandler.Addon.addToPackagePath (12:40:26):
Addon dropbox added to globalPlugins package path
DEBUG - addonHandler.Addon.addToPackagePath (12:40:26):
Addon systrayList added to globalPlugins package path
DEBUG - addonHandler.Addon.__init__ (12:40:26):
Using manifest translation from C:\Users\misono\AppData\Roaming\nvda\addons\systrayList\locale\ja\manifest.ini
DEBUG - core.main (12:40:26):
Initializing core pump
DEBUG - core.main (12:40:26):
Initializing watchdog
DEBUG - core.main (12:40:26):
initializing updateCheck
INFO - core.main (12:40:26):
NVDA initialized
DEBUG - core.main (12:40:26):
entering wx application main loop
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:26):
_get_voice called
IO - speech.speak (12:40:26):
Speaking [LangChangeCommand ('ja'), u'ようこそNVDAへ  ダイアログ  NVDAへようこそ!\nNVDAキーを押しながらほかのキーを押すと、いろいろな操作ができます。\nInsertキーがNVDAキーとして使えます。\nNVDAキーとNを押すとNVDAメニューが開きます。\nNVDAメニューには、NVDAの設定の変更、説明、その他の機能があります。\nなお、英語キーボードでは、CapsLockキーをNVDAキーとして使えます。\n']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:27):
_get_voice called
IO - speech.speak (12:40:27):
Speaking [LangChangeCommand ('ja'), u'オプション  グループ']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:27):
_get_voice called
IO - speech.speak (12:40:27):
Speaking [LangChangeCommand ('ja'), u'無変換をNVDAキーとして使用  チェックボックス  チェック']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:27):
ようこそ,感動詞,*,*,*,*,*,ようこそ,ヨウコソ,ヨーコソ,1/4,C2
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:27):
nvda,名詞,一般,*,*,*,*,nvda,エヌブイディーエー,エヌブイディーエー,1/8,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:27):
へ,助詞,格助詞,一般,*,*,*,へ,ヘ,エ,0/1,名詞%F1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:27):
ダイアログ,名詞,一般,*,*,*,*,*
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:28):
nvda,名詞,一般,*,*,*,*,nvda,エヌブイディーエー,エヌブイディーエー,1/8,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:28):
へ,助詞,格助詞,一般,*,*,*,へ,ヘ,エ,0/1,名詞%F1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:28):
ようこそ,感動詞,*,*,*,*,*,ようこそ,ヨウコソ,ヨーコソ,1/4,C2
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:29):
カンタンフ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:30):
Input: kb(laptop):windows+d
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:30):
_get_voice called
IO - speech.speak (12:40:30):
Speaking [LangChangeCommand ('ja'), u'ペイン']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:30):
_get_voice called
IO - speech.speak (12:40:30):
Speaking [LangChangeCommand ('ja'), u'FolderView  リスト']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:30):
_get_voice called
IO - speech.speak (12:40:30):
Speaking [LangChangeCommand ('ja'), u'Edit  2の8']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:30):
ペイン,名詞,一般,*,*,*,*,ペイン,ペイン,ペイン,1/3,C1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:30):
folder,名詞,一般,*,*,*,*,folder,フォゥルダー,フォゥルダー,1/6,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:31):
view,名詞,一般,*,*,*,*,view,ビュー,ビュー,1/3,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:31):
リスト,名詞,固有名詞,人名,姓,*,*,リスト,リスト,リスト,1/3,C1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:32):
edit,名詞,一般,*,*,*,*,edit,エディットゥ,エディットゥ,1/6,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:32):
2,名詞,数,*,*,*,*,2,ニ,ニ,1/1,C3
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:32):
の,助詞,連体化,*,*,*,*,の,ノ,ノ,0/1,動詞%F2@0/形容詞%F1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:32):
8,名詞,数,*,*,*,*,8,ハチ,ハチ,2/2,C3
IO - inputCore.InputManager.executeGesture (12:40:33):
Input: kb(laptop):f
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:33):
_get_voice called
IO - speech._speakSpellingGen (12:40:33):
Speaking character u'f'
DEBUG - characterProcessing.CharacterDescriptions.__init__ (12:40:33):
Loaded 7286 entries.
DEBUG - characterProcessing.CharacterDescriptions.__init__ (12:40:33):
Loaded 7720 readings.
DEBUG - queueHandler.registerGeneratorObject (12:40:33):
Adding generator 1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:33):
エフ,名詞,一般,*,*,*,*,*
DEBUG - queueHandler.pumpAll (12:40:33):
generator 1 finished
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:33):
_get_voice called
IO - speech.speak (12:40:33):
Speaking [LangChangeCommand ('ja'), u'Firefox  3の8']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:33):
firefox,名詞,一般,*,*,*,*,firefox,ファイアフォックス,ファイアフォックス,1/9,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:34):
3,名詞,数,*,*,*,*,3,サン,サン,0/2,C3
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:34):
の,助詞,連体化,*,*,*,*,の,ノ,ノ,0/1,動詞%F2@0/形容詞%F1
IO - inputCore.InputManager.executeGesture (12:40:34):
Input: kb(laptop):enter
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:35):
_get_voice called
IO - speech.speak (12:40:35):
Speaking [LangChangeCommand ('ja'), u'未定義']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:35):
未,接頭詞,名詞接続,*,*,*,*,未,ミ,ミ,0/1,P2
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:35):
定義,名詞,サ変接続,*,*,*,*,定義,テイギ,テイギ,1/3,C1
DEBUGWARNING - watchdog._watcher (12:40:35):
Trying to recover from freeze, core stack:
  File "nvda.pyw", line 165, in <module>
  File "core.pyo", line 346, in main
  File "wx\_core.pyo", line 8010, in MainLoop
  File "wx\_core.pyo", line 7306, in MainLoop
  File "wx\_core.pyo", line 14669, in <lambda>
  File "core.pyo", line 54, in doStartupDialogs
  File "gui\__init__.pyo", line 657, in run
  File "wx\_windows.pyo", line 711, in ShowModal
  File "core.pyo", line 316, in Notify
  File "IAccessibleHandler.pyo", line 864, in pumpAll
  File "IAccessibleHandler.pyo", line 605, in processGenericWinEvent
  File "IAccessibleHandler.pyo", line 523, in winEventToNVDAEvent
  File "NVDAObjects\IAccessible\__init__.pyo", line 43, in getNVDAObjectFromEvent
  File "NVDAObjects\__init__.pyo", line 75, in __call__
  File "NVDAObjects\IAccessible\__init__.pyo", line 371, in findOverlayClasses
  File "baseObject.pyo", line 34, in __get__
  File "baseObject.pyo", line 110, in _getPropertyViaCache
  File "NVDAObjects\IAccessible\__init__.pyo", line 765, in _get_IAccessibleRole

DEBUGWARNING - core.Notify (12:40:35):
errors in this core pump cycle
Traceback (most recent call last):
  File "core.pyo", line 316, in Notify
  File "IAccessibleHandler.pyo", line 864, in pumpAll
  File "IAccessibleHandler.pyo", line 605, in processGenericWinEvent
  File "IAccessibleHandler.pyo", line 523, in winEventToNVDAEvent
  File "NVDAObjects\IAccessible\__init__.pyo", line 43, in getNVDAObjectFromEvent
  File "NVDAObjects\__init__.pyo", line 75, in __call__
  File "NVDAObjects\IAccessible\__init__.pyo", line 371, in findOverlayClasses
  File "baseObject.pyo", line 34, in __get__
  File "baseObject.pyo", line 110, in _getPropertyViaCache
  File "watchdog.pyo", line 191, in _COMError_init
CallCancelled
DEBUG - treeInterceptorHandler.update (12:40:36):
Adding new treeInterceptor to runningTable: <virtualBuffers.gecko_ia2.Gecko_ia2 object at 0x04C86BF0>
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:36):
_get_voice called
IO - speech.speak (12:40:36):
Speaking [LangChangeCommand ('ja'), u'Mozilla Firefox スタートページ - Mozilla Firefox']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:36):
mozilla,名詞,一般,*,*,*,*,mozilla,モジラ,モジラ,1/3,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:36):
firefox,名詞,一般,*,*,*,*,firefox,ファイアフォックス,ファイアフォックス,1/9,C0
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:36):
_get_voice called
IO - speech.speak (12:40:36):
Speaking [LangChangeCommand ('ja'), u'Mozilla Firefox スタートページ  ドキュメント']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:36):
_get_voice called
IO - speech.speak (12:40:36):
Speaking [LangChangeCommand ('ja'), u'Mozilla Firefox スタートページ - Mozilla Firefox']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:36):
_get_voice called
IO - speech.speak (12:40:36):
Speaking [LangChangeCommand ('ja'), u'Mozilla Firefox スタートページ  ドキュメント']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:36):
mozilla,名詞,一般,*,*,*,*,mozilla,モジラ,モジラ,1/3,C0
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:36):
_get_voice called
IO - speech.speak (12:40:36):
Speaking [LangChangeCommand ('ja'), u'エディット  オートコンプリート']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:36):
_get_voice called
IO - speech.speak (12:40:36):
Speaking [LangChangeCommand ('ja'), u'クーギョー']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:37):
firefox,名詞,一般,*,*,*,*,firefox,ファイアフォックス,ファイアフォックス,1/9,C0
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:37):
スタート,名詞,サ変接続,*,*,*,*,スタート,スタート,スタート,2/4,C2
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:37):
ページ,名詞,一般,*,*,*,*,ページ,ページ,ページ,0/3,C2
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:38):
マイナス,名詞,一般,*,*,*,*,マイナス,マイナス,マイナス,0/4,C2
IO - inputCore.InputManager.executeGesture (12:40:39):
Input: kb(laptop):alt+IMEChangeStatus1
IO - inputCore.InputManager.executeGesture (12:40:40):
Input: kb(laptop):alt+IMEChangeStatus1
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:40):
_get_voice called
IO - speech.speak (12:40:40):
Speaking [LangChangeCommand ('ja'), u'文字変換']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:40):
文字,名詞,一般,*,*,*,*,文字,モジ,モジ,1/2,C3
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:40):
変換,名詞,サ変接続,*,*,*,*,変換,ヘンカン,ヘンカン,0/4,C2
IO - inputCore.InputManager.executeGesture (12:40:42):
Input: kb(laptop):a
DEBUG - nvdajp_dic.fixNewText (12:40:42):
あ
DEBUG - nvdajp_dic.fixNewText (12:40:42):
convert hiragana to katakana: ア
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:42):
_get_voice called
IO - speech.speak (12:40:42):
Speaking [LangChangeCommand ('ja'), u'ア']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:42):
ア,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:42):
Input: kb(laptop):i
DEBUG - nvdajp_dic.fixNewText (12:40:42):
い
DEBUG - nvdajp_dic.fixNewText (12:40:42):
convert hiragana to katakana: イ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:42):
_get_voice called
IO - speech.speak (12:40:42):
Speaking [LangChangeCommand ('ja'), u'イ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:42):
イ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:43):
Input: kb(laptop):u
DEBUG - nvdajp_dic.fixNewText (12:40:43):
う
DEBUG - nvdajp_dic.fixNewText (12:40:43):
convert hiragana to katakana: ウ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:43):
_get_voice called
IO - speech.speak (12:40:43):
Speaking [LangChangeCommand ('ja'), u'ウ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:43):
ウ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:43):
Input: kb(laptop):e
DEBUG - nvdajp_dic.fixNewText (12:40:43):
え
DEBUG - nvdajp_dic.fixNewText (12:40:43):
convert hiragana to katakana: エ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:43):
_get_voice called
IO - speech.speak (12:40:43):
Speaking [LangChangeCommand ('ja'), u'エ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:43):
エ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:44):
Input: kb(laptop):o
DEBUG - nvdajp_dic.fixNewText (12:40:44):
お
DEBUG - nvdajp_dic.fixNewText (12:40:44):
convert hiragana to katakana: オ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:44):
_get_voice called
IO - speech.speak (12:40:44):
Speaking [LangChangeCommand ('ja'), u'オ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:44):
オ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:44):
Input: kb(laptop):enter
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:44):
_get_voice called
IO - speech.speak (12:40:44):
Speaking [LangChangeCommand ('ja'), u'あいうえお']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:44):
あいうえお,感動詞,*,*,*,*,*,あいうえお,アイウエオ,アイウエオ,0/5,C0,アイウエオ
IO - inputCore.InputManager.executeGesture (12:40:48):
Input: kb(laptop):home
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:48):
_get_voice called
IO - speech._speakSpellingGen (12:40:48):
Speaking character u'ア'
DEBUG - queueHandler.registerGeneratorObject (12:40:48):
Adding generator 2
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:48):
ア,名詞,一般,*,*,*,*,*
DEBUG - queueHandler.pumpAll (12:40:48):
generator 2 finished
IO - inputCore.InputManager.executeGesture (12:40:50):
Input: kb(laptop):h
DEBUG - nvdajp_dic.fixNewText (12:40:50):
h
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:50):
_get_voice called
IO - speech.speak (12:40:50):
Speaking [LangChangeCommand ('ja'), u'h']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:50):
h,記号,アルファベット,*,*,*,*,h,エイチ,エイチ,1/3,*
IO - inputCore.InputManager.executeGesture (12:40:51):
Input: kb(laptop):o
DEBUG - nvdajp_dic.fixNewText (12:40:51):
ほ
DEBUG - nvdajp_dic.fixNewText (12:40:51):
convert hiragana to katakana: ホ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:51):
_get_voice called
IO - speech.speak (12:40:51):
Speaking [LangChangeCommand ('ja'), u'ホ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:51):
ホ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:52):
Input: kb(laptop):n
DEBUG - nvdajp_dic.fixNewText (12:40:52):
n
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:52):
_get_voice called
IO - speech.speak (12:40:52):
Speaking [LangChangeCommand ('ja'), u'n']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:52):
n,記号,アルファベット,*,*,*,*,n,エヌ,エヌ,1/2,*
IO - inputCore.InputManager.executeGesture (12:40:53):
Input: kb(laptop):n
DEBUG - nvdajp_dic.fixNewText (12:40:53):
あいうえお
DEBUG - nvdajp_dic.fixNewText (12:40:53):
convert hiragana to katakana: アイウエオ
DEBUG - nvdajp_dic.fixNewText (12:40:53):
ん
DEBUG - nvdajp_dic.fixNewText (12:40:53):
convert hiragana to katakana: ン
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:53):
_get_voice called
IO - speech.speak (12:40:53):
Speaking [LangChangeCommand ('ja'), u'アイウエオ']
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:53):
_get_voice called
IO - speech.speak (12:40:53):
Speaking [LangChangeCommand ('ja'), u'ン']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:53):
アイウエオ,名詞,一般,*,*,*,*,*
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:54):
ウン,感動詞,*,*,*,*,*,ウン,ウン,ウン,1/2,C3
IO - inputCore.InputManager.executeGesture (12:40:54):
Input: kb(laptop):z
DEBUG - nvdajp_dic.fixNewText (12:40:54):
z
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:54):
_get_voice called
IO - speech.speak (12:40:54):
Speaking [LangChangeCommand ('ja'), u'z']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:54):
z,記号,アルファベット,*,*,*,*,z,ゼット,ゼット,1/3,*
IO - inputCore.InputManager.executeGesture (12:40:55):
Input: kb(laptop):i
DEBUG - nvdajp_dic.fixNewText (12:40:55):
じ
DEBUG - nvdajp_dic.fixNewText (12:40:55):
convert hiragana to katakana: ジ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:55):
_get_voice called
IO - speech.speak (12:40:55):
Speaking [LangChangeCommand ('ja'), u'ジ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:55):
ジ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:56):
Input: kb(laptop):t
DEBUG - nvdajp_dic.fixNewText (12:40:56):
t
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:56):
_get_voice called
IO - speech.speak (12:40:56):
Speaking [LangChangeCommand ('ja'), u't']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:56):
t,記号,アルファベット,*,*,*,*,t,ティー,ティー,1/2,*
IO - inputCore.InputManager.executeGesture (12:40:56):
Input: kb(laptop):u
DEBUG - nvdajp_dic.fixNewText (12:40:56):
つ
DEBUG - nvdajp_dic.fixNewText (12:40:56):
convert hiragana to katakana: ツ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:56):
_get_voice called
IO - speech.speak (12:40:56):
Speaking [LangChangeCommand ('ja'), u'ツ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:56):
ツ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:57):
Input: kb(laptop):h
DEBUG - nvdajp_dic.fixNewText (12:40:57):
h
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:57):
_get_voice called
IO - speech.speak (12:40:57):
Speaking [LangChangeCommand ('ja'), u'h']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:57):
h,記号,アルファベット,*,*,*,*,h,エイチ,エイチ,1/3,*
IO - inputCore.InputManager.executeGesture (12:40:57):
Input: kb(laptop):a
DEBUG - nvdajp_dic.fixNewText (12:40:57):
は
DEBUG - nvdajp_dic.fixNewText (12:40:57):
convert hiragana to katakana: ハ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:57):
_get_voice called
IO - speech.speak (12:40:57):
Speaking [LangChangeCommand ('ja'), u'ハ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:57):
ハ,名詞,一般,*,*,*,*,*
IO - inputCore.InputManager.executeGesture (12:40:58):
Input: kb(laptop):space
DEBUG - nvdajp_dic.getJapaneseDiscriminantReading (12:40:58):
(本) 
DEBUG - nvdajp_dic.getJapaneseDiscriminantReading (12:40:58):
(日) 
DEBUG - nvdajp_dic.getJapaneseDiscriminantReading (12:40:58):
(は) ヒラガナ
DEBUG - nvdajp_dic.getCandidateCharDesc (12:40:58):
longdesc (本) ホンバコノ ホン
DEBUG - nvdajp_dic.getCandidateCharDesc (12:40:58):
longdesc (日) ニチヨービノ ニチ
DEBUG - nvdajp_dic.getCandidateCharDesc (12:40:58):
kana (は) ハ
DEBUG - nvdajp_dic.fixNewText (12:40:58):
ホンバコノ ホン ニチヨービノ ニチ ヒラガナ ハ
DEBUG - nvdajp_dic.getJapaneseDiscriminantReading (12:40:58):
(本) 
DEBUG - nvdajp_dic.getJapaneseDiscriminantReading (12:40:58):
(日) 
DEBUG - nvdajp_dic.getJapaneseDiscriminantReading (12:40:58):
(は) ヒラガナ
DEBUG - nvdajp_dic.getCandidateCharDesc (12:40:58):
longdesc (本) ホンバコノ ホン
DEBUG - nvdajp_dic.getCandidateCharDesc (12:40:58):
longdesc (日) ニチヨービノ ニチ
DEBUG - nvdajp_dic.getCandidateCharDesc (12:40:58):
kana (は) ハ
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:58):
_get_voice called
IO - speech.speak (12:40:58):
Speaking [LangChangeCommand ('ja'), u'ホンバコノ ホン ニチヨービノ ニチ ヒラガナ ハ']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:58):
ホンバコノ,名詞,一般,*,*,*,*,*
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:58):
ホン,名詞,固有名詞,人名,姓,*,*,ホン,ホン,ホン,1/2,C3
IO - inputCore.InputManager.executeGesture (12:40:58):
Input: kb(laptop):enter
DEBUG - synthDrivers.nvdajp_jtalk.SynthDriver._get_voice (12:40:58):
_get_voice called
IO - speech.speak (12:40:58):
Speaking [LangChangeCommand ('ja'), u'本日は']
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:58):
本日,名詞,副詞可能,*,*,*,*,本日,ホンジツ,ホンジツ,1/4,C1
DEBUG - synthDrivers.jtalk.mecab.Mecab_analysis (12:40:58):
は,助詞,係助詞,*,*,*,*,は,ハ,ワ,0/1,名詞%F1/動詞%F2@0/形容詞%F2@0
IO - inputCore.InputManager.executeGesture (12:41:01):
Input: kb(laptop):NVDA+f1
INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (12:41:01):
Developer info for navigator object:
name: None
role: ROLE_EDITABLETEXT
states: STATE_FOCUSABLE, STATE_EDITABLE, STATE_FOCUSED, STATE_AUTOCOMPLETE
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionMozillaIAccessible object at 0x04CF5ED0>
Python class mro: (<class 'NVDAObjects.Dynamic_EditableTextWithAutoSelectDetectionMozillaIAccessible'>, <class 'NVDAObjects.behaviors.EditableTextWithAutoSelectDetection'>, <class 'NVDAObjects.behaviors.EditableText'>, <class 'editableText.EditableText'>, <class 'NVDAObjects.IAccessible.mozilla.Mozilla'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: u''
location: (161, 332, 335, 35)
value: u'本日はあいうえお'
appModule: <'firefox' (appName u'firefox', process ID 1448) at address 4969970>
appModule.productName: u'Firefox'
appModule.productVersion: u'31.0'
TextInfo: <class 'NVDAObjects.IAccessible.IA2TextTextInfo'>
windowHandle: 3474534L
windowClassName: u'MozillaWindowClass'
windowControlID: 0
windowStyle: 382664704
windowThreadID: 2032
windowText: u'Mozilla Firefox スタートページ - Mozilla Firefox'
displayText: u''
IAccessibleObject: <POINTER(IAccessible2) ptr=0xce1bea4 at 4eaf850>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=3474534, objectID=-4, childID=-331858320
IAccessible accName: None
IAccessible accRole: ROLE_SYSTEM_TEXT
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)
IAccessible accDescription: u''
IAccessible accValue: u'本日はあいうえお'
IAccessible2 windowHandle: 3474534
IAccessible2 uniqueID: -331858320
IAccessible2 role: ROLE_SYSTEM_TEXT
IAccessible2 states: IA2_STATE_SELECTABLE_TEXT, IA2_STATE_SUPPORTS_AUTOCOMPLETION, IA2_STATE_OPAQUE, IA2_STATE_EDITABLE, IA2_STATE_SINGLE_LINE (46088)
IAccessible2 attributes: u'margin-left:0px;text-align:start;text-indent:0px;id:searchText;tag:input;text-input-type:text;margin-right:0px;margin-top:0px;margin-bottom:0px;display:inline;line-number:1;'
2014-07-31 19:03 Updated by: nishimoto
Comment

詳細なログをご提供いただき、ありがとうございます。

現象を再現できました。

実は本家版 snapshot master 10302 でも同じ現象が確認されたので、日本語版独自の作業とは無関係と考えられます。

別途チケットを作ることにします。

2014-07-31 19:14 Updated by: nishimoto
  • Ticket Close date is changed to 2014-07-31 19:14
  • Status Update from Open to Closed
Comment

NVDA 日本語版 2014.2jp と Firefox 31.0 でも前述の現象が起きることを確認しました。

リグレッション(現在のバージョンで動いていたものが次のバージョンで動かなくなる不具合) ではないと判断されるので、このチケットはクローズします。

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login