Skip to content

NVDA becomes sluggish with WPF TreeView UIAutomation Events #11109

@donnie-msft

Description

@donnie-msft

Hi, I work on the Microsoft Visual Studio IDE, specifically the NuGet Package Manager (repo), which is our custom Master-Detail control (WPF control). Our control has performance problems with the NVDA reader. My research has me suspecting that NVDA is being bombarded with UIA Events from our TreeView control and is processing all of them and the narration becomes unstable. In my attached log file (nvda.log), you'll notice a lot of "Ignoring event" entries.

Recently closed issue with 1Password seems similar, but I understand this won't be released for testing until May 22, 2020: #10508
New Issue also seems like related improvement in this area: #11077

I'd like to discuss our issue here to understand if it's related to these other performance improvement efforts, or if there's a separate issue.

Steps to reproduce:

I'll summarize the behavior I observed. If you need more detailed Visual Studio repro steps, please let me know.

Actual behavior:

  1. Selecting a package list item in NuGet's Master list causes the Detail Pane to re-load/re-bind a TreeView with a dependency tree for that specific package (average ~10 and peak around ~90 tree nodes). This tree has grandchildren
    Screenshot of NuGet Package Manager, with a selected Master item (1 of 4), and the resulting Tree item (approximately 100 nodes).
    image

  2. I viewed UIAutomation Events using AccEvent.exe, and saw ~230 UIA events (see below example) from simply selecting a new item in our Master list.

  3. NVDA will not render any text-to-speech until AccEvent.exe displays all the UIA events in the event viewer (30 seconds to a minute).

    1. Microsoft Narrator renders text-to-speech immediately, while UIA events continue to fire in the background.
    2. The screenshot below shows that the NVDA Focus Highlighter (blue dotted line) stays on the "Updates" tab even though I've already moved my keyboard focus to the Master listbox and selected the item, Newtonsoft.Json, there:
      image

Expected behavior:

NVDA should follow tab-focus with the keyboard without significant delay.

System configuration

NVDA installed/portable/running from source: installed

NVDA version: 2019.3.1

Windows version: Windows 10

Name and version of other software in use when reproducing the issue: Microsoft Visual Studio 2019

Other information about your system:

Other questions

Does the issue still occur after restarting your computer? Yes

Have you tried any other versions of NVDA? If so, please report their behaviors. No

If addons are disabled, is your problem still occuring? Using plain NVDA.

Did you try to run the COM registry fixing tool in NVDA menu / tools? No

Metadata

Metadata

Assignees

No one assigned

    Labels

    Abandonedrequested reports or updates are missing since more than 1 year, author or users are not available.api/uiaFeature or bug requires an understanding of UIAapp/visual-studioperformance

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions