デバッグコードを無効化して評価版アドオンを作成しました:
focusHighlight-3.0-dev-150531
https://dl.dropboxusercontent.com/u/62564469/focusHighlight-3.0-dev-150531.nvda-addon
本家の addon ML に投稿してみた:
I have worked around some strange issue with focusHighlight addon and made the following dev version: focusHighlight-3.0-dev-150531 https://dl.dropboxusercontent.com/u/62564469/focusHighlight-3.0-dev-150531.nvda-addon The issue I have reported is regarding combo box with the expanded state. Usually combo box can be manipulated by up/down arrow keys and the value should be announced immediately. With the previous version of focusHighlight, NVDA cannot report the value of combo box, especially with the case that the combo box is expanded, additional list box is popped up, and the focus is moved to one of the list items within the pop-up list box. The issue can be reproduced in the following way: 1. start notepad.exe (or Microsoft Word) of Windows 7 2. open 'File' menu and open 'Save As' dialog 3. move focus to a combo box, such as 'save as type' or 'encoding' 4. press down arrow key. in this case, it becomes automatically expanded. 5. press up/down arrow keys to move around items. I have been thinking that the expanded combo boxes aren't handled correctly with NVDA, however, if the combo box remains collapsed, up/down arrow keys can be handled correctly. The problem is with some combo boxes used by Windows common dialogs such as notepad or Microsoft Office, i.e. combo boxes automatically become expanded and things go wrong. So far, I worked around this in the following way: def event_valueChange(self, obj, nextHandler): if obj.windowClassName == 'ComboBox' and obj.role == oleacc.ROLE_SYSTEM_TOOLTIP: updateFocusLocation(obj) updateNavigatorLocation() api.setFocusObject(obj) nextHandler() which makes Windows focus on the combobox itself, rather than the list items. For Windows 8.1, the combobox behaviors are something different, so the issue is not serious.
本家アドオンコミュニティの Focus Highlight が 3.0 に更新されました。
このチケットはクローズします。
focusHighlight アドオン利用時にコンボボックスの値の変化がうまく通知できない現象。
コンボボックスが「展開」したときに、リストアイテムに不適切にフォーカスが移動してしまうことが関連しているらしい。 Windows 7 のメモ帳や Word 2010 などの「名前をつけて保存」ダイアログでは下矢印キーだけで「展開」してしまう。
まだテストコードだが、valueChange したときに setFocusObject を実行して強制的にフォーカスをリストアイテムからコンボボックスに移す実装を試している。
https://gist.github.com/nishimotz/e75049498651222d5efd