Re: Introducing support for selective UIA event registration in NVDA Alpha snapshots


Bill Dengler
 

Hi,
Is it possible to disable this on a per-process level?
I've written an app module (a self-contained version of #10910) that needs to react to background windows from the app.

Thanks,
Bill

-----Original Message-----
From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Joseph Lee
Sent: Monday, 6 July 2020 02:20
To: nvda-devel@groups.io
Subject: Re: [nvda-devel] Introducing support for selective UIA event registration in NVDA Alpha snapshots

Hello everyone,
Folks on NVDA add-ons list may have seen the below message, but just to reiterate:
For people using Windows 10 App Essentials: you'll notice that if you do enable the option described here, you won't be able to hear emoji panel changes as you scroll through emoji categories. I'm testing a potential temporary fix, which will be rolling out to development snapshot users soon.
As noted by Leonard, please do file issues on GitHub should you notice regressions.
Cheers,
Joseph


-----Original Message-----
From: nvda-devel@groups.io <nvda-devel@groups.io> On Behalf Of Leonard de Ruijter
Sent: Sunday, July 5, 2020 11:11 PM
To: nvda-devel@groups.io; program-l@...
Subject: [nvda-devel] Introducing support for selective UIA event registration in NVDA Alpha snapshots

Dear all,


As many of you may know, people using Microsoft Visual Studio or other applications mainly accessed by UIAutomation can experience some major lag while using them with NVDA. In an attempt to fix this, I've spent some hours in coming up with an approach that majorly improves performance in these applications. Thanks to great feedback from NV Access and them merging it, it can now be enabled in most recent NVDA Alpha snapshots by enabling the "Enable selective registration for UI Automation events and property changes" option in NVDA's advanced settings.


Taking Visual Studio as an example, with this option enabled, I notice major performance improvements in the following areas:

* Nuget package manager

* Loading/moving through the error list

* Options like go to base, go to implementation, go to definition. etc.

Performance improvements aren't limited to that though. To go a bit technical, rather than requesting for all UIA events and processing/discarding them in NVDA's process, we're now mostly only requesting events for objects of interest. This means that many events fired on other controls than the focused control aren't simply discarded by NVDA, but rather not even seen by NVDA at all, thereby taking out the processing time needed to discard them.

As there might be some regressions introduced by this feature, it is marked advanced/experimental. As I hope it eventually will become the default, I'd really appreciate it if you could report any bugs or regressions perceived with this feature enabled on NVDA's Github.


Kind regards,

Leonard

Join nvda-devel@groups.io to automatically receive all group messages.