Topics

NVDA 2020.2 doesn't read .NET comboboxes


 

Hi,

I bet it’s a combination of these. Let’s try asking Microsoft .Net Framework team first, and if they tell us that it is with NVDA, then we should do something from our side based on data we get then. Thanks for the update.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Wednesday, August 19, 2020 4:18 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

 

It appears that checking for the ComboBox.dropDown value (true/false) then responding accordingly in the SelectedIndexChanged event, fixes the problem.

 

In GagesComboBox.SelectedIndexChanged:

If GagesCheckBox.dropDown is false

Check if NVDA is the current screen reader

speak the selected text for each item

 

This will work for our needs, but the original problem needs fixed in either NVDA or .net.

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Wednesday, August 19, 2020 4:46 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi all,

Another follow-up: nope, calling the first child of the combo box as “value” won’t work either. As I suspected, defining a UIA element selected event handler inside this custom app module would suffice, along with looking into the solution Andy proposed yesterday.

I’m done.

Cheers,

Joseph

 

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Joseph Lee via groups.io
Sent: Wednesday, August 19, 2020 1:36 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi all,

A parallel discussion is taking place on Program-l (located at Freelists).

Based on further tests, I think these combo boxes may need to be rewritten or an NVDA specific workaround may need to be written:

  1. It does ship with value pattern. Yet when trying to locate the value for this combo box, COM pointer (for UIA selection pattern) returns NULL (0x0).
  2. Telling NVDA to treat them as combo box without value pattern won't work either due to the above NULL pointer issue.
  3. Both result in NULL pointer access error (COM error is thrown).

A possible workaround would be to use a dedicated app module that announces new values whenever UIA element selected event is fired from the child list item object. Unfortunately, it does not resolve a major use case: NVDA will not announce current value when you move focus to these combo boxes. To mitigate this, an overlay class must be defined for the combo box itself that will return the name of the first selected child object as its value.

Thanks.

Cheers,

Joseph

 


Andy B.
 

Hi,

 

It appears that checking for the ComboBox.dropDown value (true/false) then responding accordingly in the SelectedIndexChanged event, fixes the problem.

 

In GagesComboBox.SelectedIndexChanged:

If GagesCheckBox.dropDown is false

Check if NVDA is the current screen reader

speak the selected text for each item

 

This will work for our needs, but the original problem needs fixed in either NVDA or .net.

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Wednesday, August 19, 2020 4:46 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi all,

Another follow-up: nope, calling the first child of the combo box as “value” won’t work either. As I suspected, defining a UIA element selected event handler inside this custom app module would suffice, along with looking into the solution Andy proposed yesterday.

I’m done.

Cheers,

Joseph

 

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Joseph Lee via groups.io
Sent: Wednesday, August 19, 2020 1:36 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi all,

A parallel discussion is taking place on Program-l (located at Freelists).

Based on further tests, I think these combo boxes may need to be rewritten or an NVDA specific workaround may need to be written:

  1. It does ship with value pattern. Yet when trying to locate the value for this combo box, COM pointer (for UIA selection pattern) returns NULL (0x0).
  2. Telling NVDA to treat them as combo box without value pattern won't work either due to the above NULL pointer issue.
  3. Both result in NULL pointer access error (COM error is thrown).

A possible workaround would be to use a dedicated app module that announces new values whenever UIA element selected event is fired from the child list item object. Unfortunately, it does not resolve a major use case: NVDA will not announce current value when you move focus to these combo boxes. To mitigate this, an overlay class must be defined for the combo box itself that will return the name of the first selected child object as its value.

Thanks.

Cheers,

Joseph

 


 

Hi all,

Another follow-up: nope, calling the first child of the combo box as “value” won’t work either. As I suspected, defining a UIA element selected event handler inside this custom app module would suffice, along with looking into the solution Andy proposed yesterday.

I’m done.

Cheers,

Joseph

 

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Joseph Lee via groups.io
Sent: Wednesday, August 19, 2020 1:36 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi all,

A parallel discussion is taking place on Program-l (located at Freelists).

Based on further tests, I think these combo boxes may need to be rewritten or an NVDA specific workaround may need to be written:

  1. It does ship with value pattern. Yet when trying to locate the value for this combo box, COM pointer (for UIA selection pattern) returns NULL (0x0).
  2. Telling NVDA to treat them as combo box without value pattern won't work either due to the above NULL pointer issue.
  3. Both result in NULL pointer access error (COM error is thrown).

A possible workaround would be to use a dedicated app module that announces new values whenever UIA element selected event is fired from the child list item object. Unfortunately, it does not resolve a major use case: NVDA will not announce current value when you move focus to these combo boxes. To mitigate this, an overlay class must be defined for the combo box itself that will return the name of the first selected child object as its value.

Thanks.

Cheers,

Joseph


 

Hi all,

A parallel discussion is taking place on Program-l (located at Freelists).

Based on further tests, I think these combo boxes may need to be rewritten or an NVDA specific workaround may need to be written:

  1. It does ship with value pattern. Yet when trying to locate the value for this combo box, COM pointer (for UIA selection pattern) returns NULL (0x0).
  2. Telling NVDA to treat them as combo box without value pattern won't work either due to the above NULL pointer issue.
  3. Both result in NULL pointer access error (COM error is thrown).

A possible workaround would be to use a dedicated app module that announces new values whenever UIA element selected event is fired from the child list item object. Unfortunately, it does not resolve a major use case: NVDA will not announce current value when you move focus to these combo boxes. To mitigate this, an overlay class must be defined for the combo box itself that will return the name of the first selected child object as its value.

Thanks.

Cheers,

Joseph


 

Hi,

That would be a better solution for this context.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 1:07 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

I think there is another fix to the problem. We are using a library that detects screen readers, then allows us to speak anything we want. Maybe I will have it do that whenever the selected index for the combobox changes.

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Tuesday, August 18, 2020 4:02 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Figured out what’s up – see another reply. It comes down to Microsoft’s stances on UIA value pattern.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:55 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Yea, we are aware of the problem. I work with him on the project. Thought I would bring it up to you guys since it involved NVDA. In either case, launch the app. When it takes you to the avionics tab, press CONTROL+G to jump to the gages list. Once there, press down arrow. Nothing is spoken even though the selection changes.

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Tuesday, August 18, 2020 3:19 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Is Jason aware of this issue? Also, we need an STR (steps to reproduce), because when I run this from Version 20H2 (build 19042.450) with NVDA latest alpha build installed, it only prompts a UAC dialog and nothing else (of course I had to let SmartScreen know that this is a safe application).

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:14 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 

 

 


Andy B.
 

I think there is another fix to the problem. We are using a library that detects screen readers, then allows us to speak anything we want. Maybe I will have it do that whenever the selected index for the combobox changes.

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Tuesday, August 18, 2020 4:02 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Figured out what’s up – see another reply. It comes down to Microsoft’s stances on UIA value pattern.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:55 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Yea, we are aware of the problem. I work with him on the project. Thought I would bring it up to you guys since it involved NVDA. In either case, launch the app. When it takes you to the avionics tab, press CONTROL+G to jump to the gages list. Once there, press down arrow. Nothing is spoken even though the selection changes.

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Tuesday, August 18, 2020 3:19 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Is Jason aware of this issue? Also, we need an STR (steps to reproduce), because when I run this from Version 20H2 (build 19042.450) with NVDA latest alpha build installed, it only prompts a UAC dialog and nothing else (of course I had to let SmartScreen know that this is a safe application).

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:14 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 

 

 


 

Hi,

Figured out what’s up – see another reply. It comes down to Microsoft’s stances on UIA value pattern.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:55 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Yea, we are aware of the problem. I work with him on the project. Thought I would bring it up to you guys since it involved NVDA. In either case, launch the app. When it takes you to the avionics tab, press CONTROL+G to jump to the gages list. Once there, press down arrow. Nothing is spoken even though the selection changes.

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Tuesday, August 18, 2020 3:19 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Is Jason aware of this issue? Also, we need an STR (steps to reproduce), because when I run this from Version 20H2 (build 19042.450) with NVDA latest alpha build installed, it only prompts a UAC dialog and nothing else (of course I had to let SmartScreen know that this is a safe application).

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:14 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 

 


 

Hi,

Test results:

Setup: Windows 10 Version 2004 (Windows Sandbox), NVDA 2020.2 portable copy, TFM executable (downloaded from Dropbox)

Steps to reproduce:

  1. Run TFM and NVDA 2020.2.
  2. If Windows Security talks about unsafe app, say “run anyway”.
  3. If UAC appears, say “yes”.
  4. When TFM starts, move to “gauges” combo box and press up or down arrows.

 

Expected: NVDA announces combo box items.

Actual: no such announcement.

 

Results:

  • Object type: UIA, with actual combo box items seen as a UIA list item.
  • Is this reproducible with Narrator: no (announces combo box items when pressing up or down arrow keys).
  • Does the object raise UIA events: yes (UIA element selected event is raised, seen when running NVDA in debug logging mode with Windows 10 App Essentials add-on present).
  • Does disabling add-ons make a difference: no.

 

Ultimate cause: for some reason Windows Forms sets UIA value pattern available Id to true. Although NVDA knows about UIA combo boxes, it doesn’t deal with cases like this. It then comes down to Microsoft’s stances on this for Windows Forms controls, and if Microsoft says this is a standard behavior for even latest Windows Forms release, then the only thing we can do is ask Jason to either invest in a different GUI toolkit or write an app module that tells NVDA that combo boxes like these should be treated as NVDAObjects.UIA.ComboBoxWithoutValuePattern.

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Joseph Lee via groups.io
Sent: Tuesday, August 18, 2020 12:19 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Is Jason aware of this issue? Also, we need an STR (steps to reproduce), because when I run this from Version 20H2 (build 19042.450) with NVDA latest alpha build installed, it only prompts a UAC dialog and nothing else (of course I had to let SmartScreen know that this is a safe application).

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:14 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 


Andy B.
 

Yea, we are aware of the problem. I work with him on the project. Thought I would bring it up to you guys since it involved NVDA. In either case, launch the app. When it takes you to the avionics tab, press CONTROL+G to jump to the gages list. Once there, press down arrow. Nothing is spoken even though the selection changes.

 

 

Sent from Mail for Windows 10

 

From: Joseph Lee
Sent: Tuesday, August 18, 2020 3:19 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Hi,

Is Jason aware of this issue? Also, we need an STR (steps to reproduce), because when I run this from Version 20H2 (build 19042.450) with NVDA latest alpha build installed, it only prompts a UAC dialog and nothing else (of course I had to let SmartScreen know that this is a safe application).

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:14 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 

 


 

Hi,

Is Jason aware of this issue? Also, we need an STR (steps to reproduce), because when I run this from Version 20H2 (build 19042.450) with NVDA latest alpha build installed, it only prompts a UAC dialog and nothing else (of course I had to let SmartScreen know that this is a safe application).

Cheers,

Joseph

 

From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Andy B.
Sent: Tuesday, August 18, 2020 12:14 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 


Andy B.
 

https://www.dropbox.com/s/b1gvfi4lv0fkpte/tfm.zip?dl=1 is the binary/compiled version. The source is found at https://github.com/jfayre/talking-flight-monitor-net.

 

Sent from Mail for Windows 10

 

From: James Scholes
Sent: Tuesday, August 18, 2020 2:57 PM
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] NVDA 2020.2 doesn't read .NET comboboxes

 

Could you post a compilable sample?

 

Regards,

 

James Scholes

 

On 18/08/2020 at 1:45 pm, Andy B. wrote:

> Hi,

>

> Does anyone have experience with using comboboxes found in .net winforms

> applications? I created a winforms application recently. Unfortunately,

> NVDA doesn’t automatically read the items unless you press alt+down

> arrow to expand the list first. How should we fix this problem?

>

> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for

> Windows 10

>

>

 

 

 


James Scholes
 

Could you post a compilable sample?

Regards,

James Scholes

On 18/08/2020 at 1:45 pm, Andy B. wrote:
Hi,
Does anyone have experience with using comboboxes found in .net winforms applications? I created a winforms application recently. Unfortunately, NVDA doesn’t automatically read the items unless you press alt+down arrow to expand the list first. How should we fix this problem?
Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10


Andy B.
 

Hi,

 

Does anyone have experience with using comboboxes found in .net winforms applications? I created a winforms application recently. Unfortunately, NVDA doesn’t automatically read the items unless you press alt+down arrow to expand the list first. How should we fix this problem?

 

 

Sent from Mail for Windows 10