Menu navigation bug in OpenOffice Writer
Steps to reproduce:
Open Writer appliccation. Press alt to bring up the menu bar. Press right arrow a few times to go to the Format submenu, press enter. Press down arrow to go to the symbol... menu item Press enter to activvate this dialog. Then, press escape to go out of the dialog (to the main window). Press alt. Navigate to the format submenu.
Expected behavior:
NVDA should say "Format submenu"
Actual behavior:
NVDA goes to silence when the focus is on the format submenu. If you press escape and go to there next time, this again will be spoken, but if you go in ssome dialog inside that submenu, after coming back and trying to access it again there is no speech.
System configuration:
NVDA version: next-15363,a87d8187
NVDA Installed or portable: installed
Other information: Tried with all add-ons disabled, everything restored to the factory defaults, the same situation. I think this might be OpenOffice Writer accessibility issue as I noticed a few focus bugs here as well (could not currently remember the exact situation.) Windows version: Windows 10 Insider (64-bit) build 17134.112 OpenOffice Writer version 4.00.9789
Other questions:
Does the issue still occur after restarting your PC? Yes.
Have you tried any other versions of NVDA? Yes.
I don't have OO installed to test this on. Does this happen with libre office too?
Same problem. Windows 7, Open Office 4.1.5, NVDA 2018.3 beta3. When NVDA is silent, information about the object is the following:
role: ROLE_MENUITEM states: STATE_FOCUSABLE, STATE_HASPOPUP isFocusable: True hasFocus: False
maybe it's important.
Here is the whole developer info when reproducing this issue in NVDA 2019.1 with Open Office 4.1.6:
IO - inputCore.InputManager.executeGesture (18:10:26.219):
Input: kb(laptop):rightArrow
DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IA2Attributes (18:10:26.299):
IAccessibleObject.attributes COMError (-2147467259, 'Unbekannter Fehler', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IA2Attributes (18:10:26.338):
IAccessibleObject.attributes COMError (-2147467259, 'Unbekannter Fehler', (None, None, None, 0, None))
IO - inputCore.logTimeSinceInput (18:10:26.338):
0.120 sec since input
IO - speech.speak (18:10:26.338):
Speaking [u'Tabelle Untermen\xfc Zeigt Befehle zum Einf\xfcgen, Bearbeiten und Entfernen einer Tabelle innerhalb eines Textdokuments an.']
IO - inputCore.InputManager.executeGesture (18:10:26.759):
Input: kb(laptop):rightArrow
IO - inputCore.InputManager.executeGesture (18:10:29.799):
Input: kb(laptop):NVDA+f1
DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IA2Attributes (18:10:29.819):
IAccessibleObject.attributes COMError (-2147467259, 'Unbekannter Fehler', (None, None, None, 0, None))
INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (18:10:30.273):
Developer info for navigator object:
name: u'Tabelle'
role: ROLE_MENUITEM
states: STATE_FOCUSABLE, STATE_HASPOPUP
isFocusable: True
hasFocus: False
Python object: <NVDAObjects.Dynamic_SymphonyTextMenuItemIAccessible object at 0x0525C090>
Python class mro: (<class 'NVDAObjects.Dynamic_SymphonyTextMenuItemIAccessible'>, <class 'appModules.soffice.SymphonyText'>, <class 'NVDAObjects.IAccessible.MenuItem'>, <class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.behaviors.EditableText'>, <class 'editableText.EditableText'>, <class 'NVDAObjects.NVDAObject'>, <class 'documentBase.TextContainerObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: u'Zeigt Befehle zum Einf\xfcgen, Bearbeiten und Entfernen einer Tabelle innerhalb eines Textdokuments an.'
location: RectLTWH(left=328, top=83, width=50, height=19)
value: None
appModule: <'soffice' (appName u'soffice', process ID 13944) at address 51d3350>
appModule.productName: None
appModule.productVersion: u'4.00.9790'
TextInfo: <class 'appModules.soffice.SymphonyTextInfo'>
windowHandle: 393808L
windowClassName: u'SALFRAME'
windowControlID: 0
windowStyle: 349110272
windowThreadID: 13736
windowText: u'Unbenannt 1 - OpenOffice Writer'
displayText: u'Tabelle'
IAccessibleObject: <POINTER(IAccessible2) ptr=0x6914ee4 at 51c5a30>
IAccessibleChildID: 0
IAccessible event parameters: windowHandle=393808, objectID=-4, childID=-342
IAccessible accName: u'Tabelle'
IAccessible accRole: ROLE_SYSTEM_MENUITEM
IAccessible accState: STATE_SYSTEM_HASPOPUP, STATE_SYSTEM_FOCUSABLE, STATE_SYSTEM_VALID (1074790400)
IAccessible accDescription: u'Zeigt Befehle zum Einf\xfcgen, Bearbeiten und Entfernen einer Tabelle innerhalb eines Textdokuments an.'
IAccessible accValue: None
IAccessible2 windowHandle: 393808
IAccessible2 uniqueID: -342
IAccessible2 role: ROLE_SYSTEM_MENUITEM
IAccessible2 states: IA2_STATE_OPAQUE (1024)
IAccessible2 attributes: exception: (-2147467259, 'Unbekannter Fehler', (None, None, None, 0, None))
In Libre office 6.2.2 the problem is not occuring.
Comming back to this, in Open Office 4.1.7 following is also written to the NVDA log when reproducing this issue:
ERROR - displayModel.DisplayModelTextInfo._get__storyFieldsAndRects (22:54:33.493) - MainThread (12348):
Traceback (most recent call last):
File "locationHelper.pyc", line 258, in toLogical
File "locationHelper.pyc", line 170, in toLogical
File "windowUtils.pyc", line 93, in physicalToLogicalPoint
RuntimeError: Couldn't convert point(x=219, y=83) from physical to logical coordinates for window 2032862
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "displayModel.pyc", line 312, in _get__storyFieldsAndRects
File "locationHelper.pyc", line 261, in toLogical
RuntimeError: Couldn't convert RectLTWH(left=219, top=83, width=59, height=19) to logical coordinates
cc: @leonardder
Issue is still present in OO 4.1.15. If you arrow past the "Insert" menu and then back to it, the menu is read again.