xalia-0.4.0
This release replaces both the Linux and Windows backends.
The new Linux backend is based on Tmds.DBus.Protocol, a lower level library. It has feature-parity with the older Tmds.DBus backend, while losing some limitations and work-arounds that Tmds.DBus made necessary.
The new Windows backend is based primarily on the Win32 API and MSAA, unlike the old backend which was based on UI Automation. This one isn't nearly as featured as the backend it's replacing. Unfortunately, Windows accessibility is a mess of different technologies with various bits of glue holding them together. I was hoping that UI Automation would provide a good interface to all of this, but it turns out that none of the proxies are adequate (either MSAA-to-UIA or Win32-to-MSAA). And so, the best long-term solution appears to be to interact directly with whatever the application provides (Win32 messaging, MSAA, or UI Automation), rather than depend on UI Automation for everything as before.
There's a pretty good chance that for Win32 we'll eventually want some proxy that hooks other processes, in order to switch it to a push model (like what browsers are doing), but I'm resisting this as long as I can because I want to encourage more people to use accessibility APIs, and that sort of example is not encouraging.