Join GitHub today
NVDA should handle events other than "show" for live regions #246
Comment 1 by jteh on 2008-12-05 02:19
Out of curiosity, what does the ARIA "status" role map to in accessibility APIs such as IA2?
Comment 2 by vtsaran (in reply to comment 1) on 2008-12-17 21:12
I think we should change the description for this ticket. Are there any plans to standardize support for live regions now that NVDA is used by developers to test ARIA?
Log and Status seem to behave in the same way.
Comment 4 by jteh (in reply to comment 2) on 2008-12-18 02:52
A proper implementation of live regions is planned, but we don't have any estimate as to when that will occur. It requires going in-process, which is always quite complicated and thus is a lot harder and takes a lot longer to implement.
Comment 7 by mdcurran on 2009-11-29 01:22
The work consists of detecting these events in nvdaHelperRemote, checking the object to see if it is a live region, and what kind of live region it is, and then, possibly sending the text back to NVDA for speaking.
To make this possible, I also had to work on getting text to NVDA for speaking from another process. We already had nvdaControler, which was a good, but old, RPC implementation, but this has been removed and now nvdaController is now a new rpc implementation inside nvdaHelperLocal. nvdaHelperRemote in this live region case is the rpc client, though in future it will be possible for us to make another stand-alone rpc client library for use in any application, to force NVDA to speak.
Live region support in the above branch currently:
In short this new code improves upon NVDA's old live region support by providing much better performance for many/large updates. NVDA now speaks text changes in live regions rather than only additions. Live region markup is followed much more accurately. Since the NVDA 2009.1 beta and or RC, only the last 3 or so live region updates in quick succession were being spoken. This code also fixes this.
Finally note that as most of this code is inside nvdaHelper (c++ dll) to test you will either have to compile your own nvdaHelper, or wait until a new one is compiled before or at the time of merging this branch in to main.