Numerous crashes in 25.3

The Microsoft docs say that the accessibility code is used by Microsoft Active Accessibility and Microsoft UI Automation. Microsoft UI Automation can be used by testing tools, e.g. TestComplete, robotic process automation tools like Power Automate, and other tools that need to inspect UI elements.

I asked the AI overlords what else can use it and they tell me that security tools, "screen capture protection" tools, and even remoting tools like RDP, TeamViewer, VMWare Horizon, and others can invoke it.

Maybe it's in play just because of your VDI environment. Do you have any automated processes running to interact with application elements you can disable for testing?

Hah - Just as Michael asked AI, I was doing the same thing. I was just about to hit send on this post when his appeared.

Well, to be clear - the code in Toad that Narrator calls is running, I didn't mean to say necessarily that Narrator is calling it. But I just don't know what that is.

I posed the question to ChatGPT, here's what I got. It's AI answer, of course, so take it with a grain of salt (the part about Teams and Zoom seems wrong to me. I have Teams running all day long)

I have a call stack from a delphi application. We have some code in the VirtualTrees.Accessibility.pas unit which is giving an access violation. uiautomationcore.dll is calling oleacc.dll, which is calling some code in VirtualTrees.Accessibility. For me, this code only fires (without an access violation, I might add) when Windows Narrator is running. The weird thing is that the user says that Windows Narrator is not enabled. Which other window feature might cause uiautomationcore.dll to get involved?

Short answer: a lot of Windows accessibility features besides Narrator load uiautomationcore.dll. Narrator is only one client of UI Automation.

The most common culprits in real-world crash reports are these:


1. “Show text cursor indicator” / “Text cursor”

(Settings → Accessibility → Text cursor)

This is enabled surprisingly often, especially on Windows 11.
It hooks UIA globally and queries every focus change, caret move, and control.

Even if Narrator is off, this feature causes:

uiautomationcore.dll → oleacc.dll → your IAccessible / UIA provider

VirtualTrees implements MSAA + UIA bridges, so it gets hit.


2. “Voice Access”

(Settings → Accessibility → Speech → Voice Access)

This is on by default on many OEM installs.
It is a UI Automation client that scans all UI trees.

Users often do not realize it is running because:

  • It autostarts
  • It shows no obvious UI unless listening

It hits VirtualTrees very aggressively.


3. PowerToys

If installed, these modules use UI Automation:

PowerToy UIA usage
FancyZones Enumerates window trees
PowerToys Run UIA for text + accessibility
Mouse Utilities UIA hooks
Screen Ruler UIA

PowerToys is a huge cause of “why is UIAutomation running?”


4. Windows Search / Start Menu

These use UI Automation to:

  • Read accessible names
  • Inspect list and tree controls
  • Query focused elements

When Start Menu or Search is open:

SearchHost.exe
StartMenuExperienceHost.exe

They will hit your accessibility provider.


5. Third-party screen tools

Common offenders:

  • Snagit
  • Teams
  • Zoom
  • Citrix
  • Any screen reader
  • OCR tools
  • RPA bots (UiPath, Power Automate)

All use UI Automation.


6. Windows “Live captions”

(Settings → Accessibility → Captions)

This uses UI Automation to read window text.


7. Windows “Focus” features

(Settings → Accessibility → Focus)

These hook UIA to track focused controls.

I was able to get the offending code to fire with this setting, but not LiveCaptions or Focus or Voice Access

OMG!!! You guys are awesome!

I had Use text cursor indicator enabled so I could increase the size of the text cursor so I could see it with my failing eyesight. After I turned that off, I could no longer make Toad crash. I tried all the different scenarios that had crashed it before, and none of them crash Toad now.

But, what if a user must have that enabled? Isn’t there some way to make Toad more compatible with that feature. After all, no other programs–that I use at least–have an issue with that.

Cheers,
Russ

And after turning back on, Toad crashes easily.

What is interesting is that I did not have to stop and restart Toad either after disabling or after re-enabling to get the effects.

The INI setting in next version should prevent the error with Text Cursor enabled.

I'll see if I can reproduce the AV with that Text Cursor on. There is probably a way to fix. Sometimes being able to reproduce it is 90% of the battle.

1 Like

Michael discovered that it can be reproduced on an Azure VM through Remote Desktop, which we have in our environment.

I have found a solution (no Toad.ini change required) although I left in support for the Toad.ini change just in case.

Let me know if you are able to download the beta and try it.

I can’t even figure out how to download the beta. I went to the Beta forum and found a link to the beta, but that page is the main page for the Toad product. I don’t see a beta download anywhere.

Cheers,
Russ

Go here.

The download links are under "Which version". I'm sure you know this, but you have 64 bit Toad.

The beta will be updated on Monday (usually around 8-9am CST). If you install it now, you can re-install it then to get the latest (no need to uninstall the old first)

LOLs That is funny. I hadn’t realized that it would kick off a download directly. I wasn’t paying attention. Maybe I should get my eyes examined.:wink:

I will look again on Monday after the new beta is released.

Cheers,
Russ

John,

I am so pleased with the support you and Michael have provided. You really dug into my problem and found the root cause. Thank you both so much.

Cheers,
Russ

You're quite welcome, Russ. I enjoy helping customers and solving problems. This was a fun one.

1 Like