Edge with UIA: allow activating buttons in browse mode by walking ancestors until an action succeeds (#15748)
Fixes #14612
Summary of the issue:
when accessing Microsoft Edge with UI Automation, NVDA is unable to activate most buttons and controls in browse mode.
This is because NvDA only tries to invoke/select/toggle the deepest element at the browse mode caret position, which may be a text leaf, or span within the interactive control, and not the control itself.
Description of user facing changes
Microsoft Edge via UI Automation: NVDA can now activate buttons and other controls in browse mode.
Description of development approach
UIA NVDAObject's doAction method: if the element cannot be invoked or selected or toggled, then NotImplementedError is raised.
UIA BrowseMode document's _activateNVDAObject method: Rather than just trying to activate the given object with its doAction method, instead start at the given object and move up its ancestors, until a call to doAction succeeds. I.e. activates the given object or its closest ancestor that supports performing actions.