NVDA and window classes


Stephen
 

Hi.
Some screen readers, I won't say which ones, allow you to assign window classes so that any button, checkbox, combo box ETC, will read properly.
I have an application that uses some kind of listview class, and NVDA doesn't recognise it as a propper listview.  Is there a way I can assign a window class to a control, with an addon perhaps?
I am using NVDA version 2022.3.2.
Thanks.


 

Hi,

I exactly know the screen reader and the feature you are talking about. Short of contacting the app developer, can you: 1. Move focus to the control in question, press NVDA+F1, and copy and paste developer info here or to me privately? Tat way we can figure out what's going on (don't copy the entire log, just developer info will do). 2. Try with Narrator and see if it behaves the same as NVDA. If yes, this might be something to tell the app vendor. 3. See if an add-on for this program is available.

Cheers,

Joseph


Stephen
 

I doubt if an addon is available for it. It's a app called portable update
you can get it from www.portableupdate.com.
Here's the developer info

Developer info for navigator object:

name: None

role: Role.UNKNOWN

processID: 2864

roleText: None

states:

isFocusable: False

hasFocus: False

Python object: <NVDAObjects.IAccessible.IAccessible object at 0x035A0CB0>

Python class mro: (<class 'NVDAObjects.IAccessible.IAccessible'>, <class 'NVDAObjects.window.Window'>, <class 'NVDAObjects.NVDAObject'>, <class 'documentBase.TextContainerObject'>, <class 'baseObject.ScriptableObject'>, <class 'baseObject.AutoPropertyObject'>, <class 'garbageHandler.TrackedObject'>, <class 'object'>)

description: None

location: None

value: None

TextInfo: <class 'NVDAObjects.NVDAObjectTextInfo'>

appModule: <'appModuleHandler' (appName 'portup', process ID 2864) at address 3b616d0>

appModule.productName: 'Portable Update\x004\x14\x01FileVersion\x00'

appModule.productVersion: '2.05.0002\x000\x0e\x01Intern'

appModule.helperLocalBindingHandle: c_long(98744688)

windowHandle: 328482

windowClassName: 'ListView20WndClass'

windowControlID: 0

windowStyle: 1443892045

extendedWindowStyle: 0

windowThreadID: 2856

windowText: ''

displayText: exception: cannot unpack non-iterable NoneType object

IAccessibleObject: <POINTER(IAccessible) ptr=0x5e95a60 at 7613cb0>

IAccessibleChildID: 19

IAccessible event parameters: windowHandle=328482, objectID=-4, childID=19

IAccessible accName: exception: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))

IAccessible accRole: exception: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))

IAccessible accState: exception: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))

IAccessible accDescription: exception: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))

IAccessible accValue: exception: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))

 

----- Original Message -----
From: Joseph Lee <joseph.lee22590@...>
Sent: 10/12/2022 12:03:24 PM
Subject: Re: [nvda] NVDA and window classes

Hi,

I exactly know the screen reader and the feature you are talking about. Short of contacting the app developer, can you: 1. Move focus to the control in question, press NVDA+F1, and copy and paste developer info here or to me privately? Tat way we can figure out what's going on (don't copy the entire log, just developer info will do). 2. Try with Narrator and see if it behaves the same as NVDA. If yes, this might be something to tell the app vendor. 3. See if an add-on for this program is available.

Cheers,

Joseph


 

Hi,

This is a 32-bit Visual Basic 6 application. It might be possible to obtain screen text through screen scraping (display model) or via Autoit (Google searches provide a solution for it). As Visual Basic is end of life from Microsoft, I'm afraid that we can't really do anything regarding accessibility unless the app vendor is willing to invest in moving to a newer technology that provides much improved accessibility support for assistive technologies (Windows Presentation Foundation, for example).

I don't think Narrator (on Windows 11) can work with this app properly. It uses a technology that is not really up to date in terms of accessibility support. Specifically, it tells screen readers that controls are powered by Microsoft Active Accessibility (MSAA), something Narrator doesn't "speak" (interact with) fluently (Narrator is optimized to work with UI Automation).

As for an add-on for Portable Update: whoever is going to write an add-on (provided that you did reach out to ap vendor first) may need to learn how NVDA's display model works. Window class reassignment (in NVDA world, overlay classes) may work if NVDA does include a display model way of interacting with list views, and if not, a different approach must be used. Let's talk about technical side of all this on NVDA add-ons list so we won't clutter this list.

Cheers,

Joseph


 

On Sat, Dec 10, 2022 at 01:38 AM, Joseph Lee wrote:
Let's talk about technical side of all this on NVDA add-ons list so we won't clutter this list.
-
Thank you.  In case Stephen does not have this information . . .

NVDA Add-On Developers Group, AKA NVDA Add-Ons Central

This group is focused on the development of NVDA Add-Ons.  It is not an end-user support group.  

--

Brian Virginia, USA Windows 10 Pro, 64-Bit, Version 22H2, Build 19045; Office 2016, Version 16.0.15726.20188, 32-bit

"Be Yourself" is the worst advice you can give to some people.

       ~ Tom Masson


Steve Nutt
 

Well actually, there is more than one screen reader that does it. Window-Eyes did it, as does JAWS.

 

I couldn’t have a primary screen reader any more that doesn’t allow control reclassification.

 

All the best


Steve

 

From: nvda@nvda.groups.io <nvda@nvda.groups.io> On Behalf Of Joseph Lee
Sent: 10 December 2022 01:03
To: nvda@nvda.groups.io
Subject: Re: [nvda] NVDA and window classes

 

Hi,

I exactly know the screen reader and the feature you are talking about. Short of contacting the app developer, can you: 1. Move focus to the control in question, press NVDA+F1, and copy and paste developer info here or to me privately? Tat way we can figure out what's going on (don't copy the entire log, just developer info will do). 2. Try with Narrator and see if it behaves the same as NVDA. If yes, this might be something to tell the app vendor. 3. See if an add-on for this program is available.

Cheers,

Joseph