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,


Join to automatically receive all group messages.