Chromium-based browsers offer a number of accessibility-related features. When you visit about:accessibility
, you can see more about the state of these features (similarly, you can find the states in about:histograms/Accessibility.ModeFlag
). You can enable features via the Accessibility page, or pass the command line argument --force-renderer-accessibility
into the browser.
In some cases, you may be surprised to find some of the accessibility features enabled even when you have not manually enabled them:
This can happen when the browser detects interactions from a UI Automation tool; such API calls are mostly from accessibility tools like screen-readers. However, some features like Windows 10’s Text Cursor Indicator:
…are implemented using UIA, and when this feature is enabled, the browser enables the corresponding accessibility features.
Back in the spring, some improvements to the Accessibility code caused a series of regressions that would result in crashes, hangs, and memory exhaustion when a loading many pages, including YouTube:
These regressions were impactful for many customers who didn’t expect to be running the impacted code. Fortunately, the problems were quickly fixed.
Unfortunately for end-users, tracking down how Accessibility features got enabled on their browsers is presently used to be non-trivial. (Update: read on)
For Microsoft Edge users running Windows 10 version 20H1 or later, visiting about:histograms/UIA
will show a truncated hash of the process name of the UIA client:
The value shown is the Integer representation of the first four bytes of the SHA-1 Hash of the process name. Some common values include:
Truncated Hash | Process Name |
612857738 | EoAExperiences.exe (Win10 Text Cursor Indicator feature) |
1759000766 | TextExpander.exe |
319076627 | Narrator.exe |
427450884 | Snagit32.exe |
592588840 | Magnify.exe |
3897604127 | magnify.exe |
494880639 | nvda.exe |
Unfortunately, there’s no easy way to go from a truncated hash back to the original string; hashes are one-way. (The only way to do it is brute force — start with a list of possible strings and hash them all to find a match).
A simple PowerShell script mostly written by Artem Pronichkin allows you to get the hashes of all of your running processes, which you can then compare to the reported value:
In the future, we hope to streamline this experience somewhat, but for now, it’s an annoyingly geeky scavenger hunt.
Update: In Edge 93+, the edge://accessibility
page includes a simple “Show Client Info” button. Easy peasy.
Impatient optimist. Dad. Author/speaker. Created Fiddler & SlickRun. PM @ MSFT '01-'12, and '18-, presently working on Microsoft Edge. My words are my own. View more posts