IAccessible (MSAA): Accessing Firefox/Chrome causing Adobe Accessibility.api calls
Asked Answered
U

0

7

I noticed with Process Monitor that accessing Mozilla Firefox over the IAccessible (MSAA) Interface causes file accesses to an Adobe Reader file called "Accessibility.api". When I access Mozilla Firefox with Microsoft's Inspect.exe (using MSAA) I don't get these file accesses.

This is the code (C++) that causes about 28 accesses to the "Accessibility.api" file accesses:

CComPtr<IAccessible> mainElement;
::AccessibleObjectFromWindow(mainWindowHandle, static_cast<DWORD>(OBJID_CLIENT), IID_IAccessible, reinterpret_cast<void**>(&mainElement));

Every ::AccessibleChildren or IEnumVariant::Next call also causes about 28 accesses per child element.

How can I prevent these file accesses like Inspect.exe is doing?

Update 2018-11-30

I get the same results with Chrome.

Adobe Reader is not installed as plug-in on these Browsers.

I tried to rename the Accessible.api file (located in C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\plug_ins\Accessibility.api) to disable it but after that I can't access the browser elements any more. The resulting child-elements differ. Inspect.exe (using MSAA) or Ranorex Spy (without browser extension) don't have these problems. I checked the results also with AccProbe and this tool generates the same results like me.

Update 2018-12-03

It looks like that this affects only 32-bit applications. Inspect.exe and Ranorex Spy are 64-bit applications. My application and also AccProbe (installed JRE is 32-bit) are 32-bit. Because Adobe Reader is 32-bit I assume that's why only 32-bit applications are affected. I could also reproduce this behaviour with a 32-bit version of Ranorex Spy.

Now I know that the behaviour is not caused by a wrong implementation. But the question why so many accesses to this Adobe Reader Accessibility.api file are done is still open...

Under answered 27/11, 2018 at 9:9 Comment(4)
IAccessible is very, very old. So is not unlikely to hit providers that are ancient, like Adobe Reader. Today's better mouse trap is IUIAutomation, start reading here.Vindicate
Hello Hans, thank you for your comment. IAccessible may be old, but it's still supported. I tried UIAutomation but for me it was very unstable to use.Under
It is not very unstable in Inspect.exe. Do ask the real question to get the help you need.Vindicate
Sorry, but for me UIAutomation is not an option. IAccessible could be old, but it's also working well in Inspect.exeUnder

© 2022 - 2024 — McMap. All rights reserved.