NVDAObjects.UIA: provide a base implementation of UIA item status property event (#14080)
Closes #13973
Summary of the issue:
In parts of Visual Studio 2022 and possibly other apps, NVDA is not announcing item status property changes.
Description of user facing changes
NVDA will announce item name and status when the status changes.
Description of development approach
Add base implementation of UIA item status property event handler in base UIA NVDA object, borrowing heavily from an existing implementation in ShelExperienceHost (Windows 10 Action Center) app module introduced in 2019
* NVDAObjects.UIA: introduce base implementation of UIA item status property event. Re #13973.
Announce item status UIA property whenever it changes provided that there is no pending event of the same coming from the same element. Note that both the element name and item status are announced.
* NVDAObjects.UIA: cache item status property text to avoid duplicate announcements. Re #13973.
Borrowing from Windows 10 Action Center (ShellExperienceHost) app module: cache item status propety for the element so it can be compared to the text coming from item status property event, and if they match, drop the event. This also removes the need to use event handler's pending events function.
Co-authored-by: Sean Budd <sean@nvaccess.org>