Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Double-reading In Some Treeviews In Zend Eclipse PHP Developer Tools #3353

Closed
nvaccessAuto opened this Issue Jul 10, 2013 · 24 comments

Comments

Projects
None yet
2 participants

Reported by parham on 2013-07-10 17:52
When navigating in some treeviews in Eclipse with up and down, the current item is spoken followed by the next item.

Steps to reproduce:

  1. Open a project in Eclipse.
  2. When in the editor (press f12 to focus it if you haven't already) press alt+shift+q, then E to go to the project explorer.
  3. Navigate in this treeview.

Expected result:
When going from item A to item B, you should only hear item B.

Actual result:
When going from item A to item B, you hear "A not selected B" or something equally useless.

Comment 1 by briang1 on 2013-07-10 18:48
IO - inputCore.InputManager.executeGesture (19:38:17):
Input: kb(desktop):downArrow
IO - speech.speak (19:38:17):
Speaking ('en_GB'), u'5 band'
IO - speech.speak (19:38:17):
Speaking ('en_GB'), u'selection removed'
IO - speech.speak (19:38:17):
Speaking ('en_GB'), u'selected 5 band'
IO - inputCore.InputManager.executeGesture (19:38:23):
Input: kb(desktop):downArrow
IO - speech.speak (19:38:23):
Speaking ('en_GB'), u'Bass boost'
IO - speech.speak (19:38:23):
Speaking ('en_GB'), u'selected Bass boost'
IO - inputCore.InputManager.executeGesture (19:38:26):
Input: kb(desktop):downArrow
IO - speech.speak (19:38:26):
Speaking ('en_GB'), u'bass hollow'
IO - speech.speak (19:38:26):
Speaking ('en_GB'), u'selected bass hollow'
This from my copy of goldwave parametric filter and this is off filter from effects.

Its not just in that software. I think this has come up before. For example in some combo boxes and lists in Goldwave, you hear it state that the previous item is not selected, and /or that the one you want is selected, both after you have moved the focus.
I'm assuming there is a lag in the firing of the relevent event somewhere?

Comment 2 by jteh on 2013-07-10 22:53
The Goldwave issue is unrelated to this.

This is due to a bug in Eclipse. It fires focus on the previous item before firing focus on the next. However, there's already an app module to work around this and it seems to work for me. Is your eclipse application name different for some reason? If not, please provide the NVDA+f1 output when focused in that tree view.

Comment 3 by parham (in reply to comment 2) on 2013-07-11 05:11
Replying to jteh:

This is due to a bug in Eclipse. It fires focus on the previous item before firing focus on the next. However, there's already an app module to work around this and it seems to work for me. Is your eclipse application name different for some reason?

How can I know this? I'm using Zend PHP Developer Tools (PDT) if that helps.

If not, please provide the NVDA+f1 output when focused in that tree view.

I assume you mean the I/O log. IN that case, here it is:

IO - inputCore.InputManager.executeGesture (09:37:48):
Input: kb(laptop):upArrow
IO - speech.speak (09:37:48):
Speaking collapsed not selected 2 of 15 level 1'
IO - speech.speak (09:37:48):
Speaking collapsed 1 of 15 level 1'

Comment 4 by jteh (in reply to comment 3) on 2013-07-11 05:34
Replying to parham:

If not, please provide the NVDA+f1 output when focused in that tree view.

I assume you mean the I/O log.

Sorry. I mean:

  1. Move focus into the tree view.
  2. Press NVDA+f1.
  3. The Log Viewer will appear. Copy the text from the current cursor position to the end (i.e. shift+control+end, control+c).
    From this info, I will be able to determine the application name, among other things.

Comment 5 by parham on 2013-07-11 05:39
Ah. Here it is (and yes, the app module name is indeed different: zend-eclipse-php):

INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (10:07:59):
Developer info for navigator object:
name: u'BC'
role: ROLE_TREEVIEWITEM
states: STATE_COLLAPSED, STATE_FOCUSABLE, STATE_SELECTABLE
isFocusable: True
hasFocus: False
Python object: <NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible object at 0x063ED170>
Python class mro: (<class 'NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible'>, <class 'NVDAObjects.IAccessible.sysTreeView32.TreeViewItem'>, <class 'NVDAObjects.IAccessible.OutlineItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (48, 121, 16, 17)
value: None
appModule: <'appModuleHandler' (appName u'zend-eclipse-php', process ID 7796) at address 472e710>
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 1117492
windowClassName: u'SysTreeView32'
windowControlID: 1117492
windowStyle: 1442922535
windowThreadID: 6852
windowText: u''
displayText: u'BC'
IAccessibleObject: <POINTER(IAccessible) ptr=0x9506340 at 6249e90>
IAccessibleChildID: 2
IAccessible event parameters: windowHandle=1117492, objectID=-4, childID=2
IAccessible accName: u'BC'
IAccessible accRole: ROLE_SYSTEM_OUTLINEITEM
IAccessible accState: STATE_SYSTEM_SELECTABLE, STATE_SYSTEM_COLLAPSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (3146752)
IAccessible accDescription: None
IAccessible accValue: u'0'

Comment 7 by jteh on 2013-07-11 07:47
Please try this build: http://community.nvda-project.org/try/t3353/nvda_snapshot_try-t3353-9296,37a958d.exe
Changes:
Changed title from "Double-reading In Some Treeviews In Eclipse" to "Double-reading In Some Treeviews In Zend Eclipse PHP Developer Tools"

Comment 8 by parham (in reply to comment 7) on 2013-07-13 09:06
Replying to jteh:

Please try this build: http://community.nvda-project.org/try/t3353/nvda_snapshot_try-t3353-9296,37a958d.exe

I did. The same thing still happens. Here are the steps I executed:

  1. I opened the executable file the URL links to.
  2. I accepted the agreement, then clicked on "Keep running".
  3. I opened the PDT, then executed the steps in the description of this ticket.

In case there's something I'm missing, please let me know.

Comment 9 by jteh on 2013-07-14 23:39
That's very strange. This works as expected for me with normal Eclipse, so I don't know why PDT would be different. With the new build, can you please get the NVDA+f1 info as above and paste the AppModule line?

Comment 10 by parham (in reply to comment 9) on 2013-07-15 05:05
Replying to jteh:

With the new build, can you please get the NVDA+f1 info as above and paste the AppModule line?

Sure. I looked at it and saw nothing different, so just to make sure you have enough information to diagnose the problem, I'm pasting the same info as above.

BTW, if you want to be able to test this locally, you can get PDT from Zend: http://www.zend.com/en/company/community/pdt/downloads

INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (09:31:27):
Developer info for navigator object:
name: u'BXCore'
role: ROLE_TREEVIEWITEM
states: STATE_COLLAPSED, STATE_FOCUSABLE, STATE_FOCUSED, STATE_SELECTED, STATE_SELECTABLE
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible object at 0x05A39D30>
Python class mro: (<class 'NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible'>, <class 'NVDAObjects.IAccessible.sysTreeView32.TreeViewItem'>, <class 'NVDAObjects.IAccessible.OutlineItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (67, 155, 39, 17)
value: None
appModule: <'appModuleHandler' (appName u'zend-eclipse-php', process ID 1532) at address 5a2b1b0>
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 394644
windowClassName: u'SysTreeView32'
windowControlID: 394644
windowStyle: 1442922535
windowThreadID: 1868
windowText: u''
displayText: u'BXCore'
IAccessibleObject: <POINTER(IAccessible) ptr=0x5b5c58 at 5846670>
IAccessibleChildID: 6
IAccessible event parameters: windowHandle=394644, objectID=-4, childID=6
IAccessible accName: u'BXCore'
IAccessible accRole: ROLE_SYSTEM_OUTLINEITEM
IAccessible accState: STATE_SYSTEM_SELECTABLE, STATE_SYSTEM_SELECTED, STATE_SYSTEM_COLLAPSED, STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (3146758)
IAccessible accDescription: None
IAccessible accValue: u'1'

Comment 11 by James Teh <jamie@... on 2013-07-15 05:47
In [7fef7b9]:

Zend Eclipse PHP Developer Tools now functions the same as Eclipse.

Re #3353.

Comment 12 by jteh on 2013-07-15 05:53
Sorry. It'd probably help if I actually added all the required files to the commit. :(

Try this one: http://community.nvda-project.org/try/t3353/nvda_snapshot_try-t3353-9296,7fef7b9.exe

Comment 13 by parham (in reply to comment 12) on 2013-07-15 06:12
Replying to jteh:

Sorry. It'd probably help if I actually added all the required files to the commit. :(

It's okay :)

Try this one: http://community.nvda-project.org/try/t3353/nvda_snapshot_try-t3353-9296,7fef7b9.exe

Very cool. It works.

Comment 14 by jteh on 2013-07-15 06:28
Changes:
Milestone changed from None to next

Comment 15 by James Teh <jamie@... on 2013-07-15 06:40
In [95c91f3]:

Merge branch 't3353' into next

Incubates #3353.

Changes:
Added labels: incubating

Comment 16 by Michael Curran <mick@... on 2013-07-30 00:56
In [be81c5c]:

Zend Eclipse PHP Developer Tools now functions the same as Eclipse.

Fixes #3353.

Changes:
Removed labels: incubating
State: closed

Comment 17 by camlorn on 2013-09-14 17:46
I'm seeing this in the regular eclipse software installation dialog. Version 3.7.2. it's annoying, but can be worked around. Do later versions of eclipse fix this, or is this an NVDA issue? I'm on the latest snapshot on next.

Comment 18 by jteh on 2013-09-15 14:19
It's never been an NVDA issue. It's a bug in Eclipse (still not fixed), but NVDA has a work around for it.

If it's not working in this case, I suspect a different application name or a different type of control. Please provide the NVDA+f1 info for the problematic control.

Comment 19 by camlorn on 2013-09-17 00:59
It's the install new software dialog's tree view of new software. The info is below.

Can you point me at the filed eclipse bug, if any? Is this likely to be fixed on their end, do you think?

Here's one of the nodes in the treeview:

Developer info for navigator object:
name: u'Application Development Frameworks'
role: ROLE_CHECKBOX
states: STATE_COLLAPSED, STATE_FOCUSABLE, STATE_FOCUSED, STATE_SELECTED, STATE_SELECTABLE
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.IAccessible object at 0x05331470>
Python class mro: (<class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: u'Version: '
location: (369, 261, 182, 17)
value: u'0'
appModule: <'eclipse' (appName u'eclipse', process ID 7148) at address 533e630>
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 265352
windowClassName: u'SysTreeView32'
windowControlID: 265352
windowStyle: 1445056693
windowThreadID: 6904
windowText: u''
displayText: u'Application Development Frameworks'
IAccessibleObject: <POINTER(IAccessible) ptr=0x8a6af68 at 53511c0>
IAccessibleChildID: 81
IAccessible event parameters: windowHandle=265352, objectID=-4, childID=81
IAccessible accName: u'Application Development Frameworks'
IAccessible accRole: ROLE_SYSTEM_CHECKBUTTON
IAccessible accState: STATE_SYSTEM_SELECTABLE, STATE_SYSTEM_SELECTED, STATE_SYSTEM_COLLAPSED, STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (3146758)
IAccessible accDescription: u'Version: '
IAccessible accValue: u'0'

And here's the treeview itself:

Developer info for navigator object:
name: None
role: ROLE_TREEVIEW
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.IAccessible.sysTreeView32.TreeView object at 0x0534D250>
Python class mro: (<class 'NVDAObjects.IAccessible.sysTreeView32.TreeView'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (312, 261, 575, 129)
value: None
appModule: <'eclipse' (appName u'eclipse', process ID 7148) at address 533e630>
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 265352L
windowClassName: u'SysTreeView32'
windowControlID: 265352
windowStyle: 1445056693
windowThreadID: 6904
windowText: u''
displayText: u'Application Development FrameworksBusiness Intelligence, Reporting and ChartingCollaborationDatabase DevelopmentEclipse PlatformEclipse Platform SDKEclipse RCP Target ComponentsEclipse SDK'
IAccessibleObject: <POINTER(IAccessible) ptr=0x8a2f15c at 517c8f0>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=265352L, objectID=-4, childID=0
IAccessible accName: None
IAccessible accRole: ROLE_SYSTEM_OUTLINE
IAccessible accState: STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1048580)
IAccessible accDescription: None
IAccessible accValue: exception: (-2147352573, 'Member not found.', (None, None, None, 0, None))

Comment 20 by jteh on 2013-09-17 01:41
Ah. The key is that these are check boxes and the code is only considering normal tree items. This needs to be addressed separately.

For reference, the relevant Eclipse bug is bug 315339.

Comment 21 by camlorn on 2013-09-18 17:51
Are you saying open a separate ticket? I'm not sure if you're telling me that it's a separate case in the code or a separate bug.

Comment 22 by jteh on 2013-09-18 20:35
It's a separate bug. Please do file.

Comment 23 by jteh on 2013-11-26 23:14
Changes:
Milestone changed from next to 2013.2

Comment 24 by sidnc86 on 2014-03-14 09:43
I am still facing this issue. The NVDA version I'm using is 2014.1 and Windows 7 with it. Here is the NVDA+F1 log:
Developer info for navigator object:
name: u'bw_demo'
role: ROLE_TREEVIEWITEM
states: STATE_COLLAPSED, STATE_FOCUSABLE, STATE_FOCUSED, STATE_SELECTED, STATE_SELECTABLE
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible object at 0x05321D30>
Python class mro: (<class 'NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible'>, <class 'NVDAObjects.IAccessible.sysTreeView32.TreeViewItem'>, <class 'NVDAObjects.IAccessible.OutlineItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (86, 181, 50, 17)
value: None
appModule: <'appModuleHandler' (appName u'javaw', process ID 6404) at address 51588b0>
appModule.productName: u'Java(TM) Platform SE 7 U17'
appModule.productVersion: u'7.0.170.2'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 133152
windowClassName: u'SysTreeView32'
windowControlID: 133152
windowStyle: 1442955431
windowThreadID: 6976
windowText: u''
displayText: u'bw_demo'
IAccessibleObject: <POINTER(IAccessible) ptr=0x755bbd8 at 526a8a0>
IAccessibleChildID: 5
IAccessible event parameters: windowHandle=133152, objectID=-4, childID=5
IAccessible accName: u'bw_demo'
IAccessible accRole: ROLE_SYSTEM_OUTLINEITEM
IAccessible accState: STATE_SYSTEM_SELECTABLE, STATE_SYSTEM_SELECTED, STATE_SYSTEM_COLLAPSED, STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (3146758)
IAccessible accDescription: None
IAccessible accValue: u'0'
INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (14:39:26):
Developer info for navigator object:
name: u'bw_demo'
role: ROLE_TREEVIEWITEM
states: STATE_COLLAPSED, STATE_FOCUSABLE, STATE_FOCUSED, STATE_SELECTED, STATE_SELECTABLE
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible object at 0x052348B0>
Python class mro: (<class 'NVDAObjects.Dynamic_TreeViewItemOutlineItemIAccessible'>, <class 'NVDAObjects.IAccessible.sysTreeView32.TreeViewItem'>, <class 'NVDAObjects.IAccessible.OutlineItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: None
location: (86, 181, 50, 17)
value: None
appModule: <'appModuleHandler' (appName u'javaw', process ID 6404) at address 51588b0>
appModule.productName: u'Java(TM) Platform SE 7 U17'
appModule.productVersion: u'7.0.170.2'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 133152
windowClassName: u'SysTreeView32'
windowControlID: 133152
windowStyle: 1442955431
windowThreadID: 6976
windowText: u''
displayText: u'bw_demo'
IAccessibleObject: <POINTER(IAccessible) ptr=0x7b0e8d8 at 4fafdf0>
IAccessibleChildID: 5
IAccessible event parameters: windowHandle=133152, objectID=-4, childID=5
IAccessible accName: u'bw_demo'
IAccessible accRole: ROLE_SYSTEM_OUTLINEITEM
IAccessible accState: STATE_SYSTEM_SELECTABLE, STATE_SYSTEM_SELECTED, STATE_SYSTEM_COLLAPSED, STATE_SYSTEM_FOCUSED, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (3146758)
IAccessible accDescription: None
IAccessible accValue: u'0'

What is the work around discussed? I haven't quite understood it.

Comment 25 by jteh on 2014-03-14 11:02
That's because it seems to be running under javaw.exe rather than zend-eclipse-php.exe. Any idea why it's different on your system? We can't fix this case; we have no way of telling that this is Eclipse.

@nvaccessAuto nvaccessAuto added the bug label Nov 10, 2015

@nvaccessAuto nvaccessAuto added this to the 2013.2 milestone Nov 10, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment