Topics

UIA Grid/Table

Karl-Otto Rosenqvist
 

Hi!
I have an commercial application, Visma Administration, that I use. I managed to get their custom grid control somewhat accessible by creating an app module that caught the text within the focus rect.
Now they've provided me with a beta version where they've implemented UIA for the grids but NVDA doesn't speak at all. I downloaded the UIA.py global plugin to test UIA support and now NVDA reports the following when I'm in one of the grids.

INFO - globalCommands.GlobalCommands.script_navigatorObject_devInfo (22:44:01.532):
Developer info for navigator object:
name: u'Grid'
role: ROLE_DATAGRID
states: STATE_FOCUSABLE, STATE_FOCUSED
isFocusable: True
hasFocus: True
Python object: <NVDAObjects.UIA.UIA object at 0x05159390>
Python class mro: (<class 'NVDAObjects.UIA.UIA'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'documentBase.TextContainerObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <type 'object'>)
description: ''
location: RectLTWH(left=821, top=695, width=916, height=304)
value: None
appModule: <'appModuleHandler' (appName u'spcsadm', process ID 6404) at address 515ab30>
appModule.productName: u'Visma Administration'
appModule.productVersion: u'2019.2'
TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>
windowHandle: 591354
windowClassName: u'SafGrid'
windowControlID: 7407
windowStyle: 1350631424
windowThreadID: 3720
windowText: u'Custom1'
displayText: u'Djurg\xe5rdens Ridsport o St\xe4ngsel AB FTG2H\xe4st och Hage by TR HoH_181227H\xe4st och Hage by TR HoH_SQLMawingu Mawingu\xd6vningsbolaget AB Ovnbol2000'
UIAElement: <POINTER(IUIAutomationElement) ptr=0x9b928d8 at 4daab70>
UIA automationID: SafGrid
UIA frameworkID: Win32
UIA runtimeID: (42, 591354)
UIA providerDescription: [pid:3004,providerId:0x905FA Main:Nested [pid:6404,providerId:0x905FA Main(parent link):Unidentified Provider (unmanaged:spcsadm.exe)]; Nonclient:Microsoft: Non-Client Proxy (unmanaged:UIAutomationCore.dll); Hwnd(parent link):Microsoft: HWND Proxy (unmanaged:UIAutomationCore.dll)]
UIA className: SafGrid
UIA patterns available: LegacyIAccessiblePattern, GridPattern, SelectionPattern, TablePattern

Do I have to create an app module that handles the UIA Grid/Table events in order to make it speak correctly?
I'm a experienced developer but I have some trouble getting up to speed with the NVDA app module development in Python. It doesn't help that I'm visually impaired either because it takes much energy when trying to find documentation and examples.

Can anyone point me in the right direction please?

Best regards

Karl-Otto

--
Karl-Otto Rosenqvist
Mawingu
Orgnr: 750804-3937
+46 (0)701 75 98 56
karl-otto@...