nvda
3c35b912 - NVDAObjects/UIA: add UIAAutomationId getter (#11447)

Commit
5 years ago
NVDAObjects/UIA: add UIAAutomationId getter (#11447) * NVDAObjects.UIA.UIA: introduce UIAAutomationId getter. Re #11445. Sometimes a COM error is raised when trying to obtain cached automation Id, particularly if a UIA element isn't ready yet (for example, in modern keyboard). To avoid COM error, introduce a dedicated UIA Automation Id getter that either returns the Automation Id if found or an empty string. The overall structure is based on UIAFullDescription and UIAHelpText getters. * UIA find overlay classes: use a local UIA Automation Id variable to hold current Id information. Re #11445. When going through overlay classes, instead of fetching cached Automation Id from the underlying UIA element, use the current Automation Id as returned by what U*IA actually says (based on new Automation Id getter). This reduces attribute access and removes the need for a try/except block for some cases as either the actual Automation Id or an empty string will be recorded. However, for backward compatibility, some notable try/except blocks such as search field checks will remain. * UIA find overlay classes: lint on changed lines. Re #11445. * UIA dev info: explain that Automation Id will rely on cached value when asking for dev info. Re #11445.
Author
Parents
Loading