NVDA should handle events other than "show" for live regions #246

Closed
nvaccessAuto opened this Issue Jan 1, 2010 · 7 comments

2 participants

@nvaccessAuto

Reported by vtsaran on 2008-12-02 23:38
None
Blocked by #385

@nvaccessAuto

Comment 1 by jteh on 2008-12-05 02:19
Our live region support doesn't care about the role. However, it does work for "show" events only; it is a very incomplete implementation at present. This ticket should either be closed as invalid or changed to cover the fact that NVDA doesn't handle any events other than "show" for live regions.

Out of curiosity, what does the ARIA "status" role map to in accessibility APIs such as IA2?

@nvaccessAuto

Comment 2 by vtsaran (in reply to comment 1) on 2008-12-17 21:12
Replying to jteh:

Our live region support doesn't care about the role. However, it does work for "show" events only; it is a very incomplete implementation at present. This ticket should either be closed as invalid or changed to cover the fact that NVDA doesn't handle any events other than "show" for live regions.

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?

Out of curiosity, what does the ARIA "status" role map to in accessibility APIs such as IA2?

Log and Status seem to behave in the same way.

Changes:
Changed title from "NVDA should support ARIA role of status for proper handling of various live regions" to "NVDA should handle any events other than "show" for live regions"

@nvaccessAuto

Comment 4 by jteh (in reply to comment 2) on 2008-12-18 02:52
Replying to vtsaran:

Are there any plans to standardize support for live regions now that NVDA is used by developers to test ARIA?

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.
Changes:
Changed title from "NVDA should handle any events other than "show" for live regions" to "NVDA should handle events other than "show" for live regions"

@nvaccessAuto

Comment 5 by jteh on 2009-06-23 05:48
Changes:
Milestone changed from 0.6 to 0.7

@nvaccessAuto

Comment 7 by mdcurran on 2009-11-29 01:22
I have started work on this.
BZR branch http://bzr.nvaccess.org/nvda/ia2LiveRegions

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:

  • supports aria-live:polite,assertive and rude. Though currently due to NVDA not having any particular speech prioritization, there is no difference between the three.
  • Supports aria-relevant:additions,text, all, and not specified.
  • Does not support aria-relevant:removed. Not sure what exactly to speak here, nore how to handle internationalization for a word like 'removed' since our in-process code doesn't really have any internationalization capabilities at the moment.
  • Does not yet support aria-atomic:true. Technically this isn't too hard to do in Firefox though.
  • This support only works in IAccessible2 applications, specifically most best in Mozilla Gecko applications. Support for IE or non-IAccessible2 browsers would be completely different, there is no useful way to abstract this.

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.

@nvaccessAuto

Comment 8 by aleksey_s on 2009-11-29 08:37
Mick, you may find the winEventsInprocess branch useful, as i've already implemented handling mechanizm.

@nvaccessAuto

Comment 9 by mdcurran on 2009-12-08 01:56
ia2LiveRegions branched merged in r3400.
Provides major performance inhancements. Supports aria-relevant. Supports text changes. Support for things such as atomic can be addressed in a new ticket.
Changes:
State: closed

@nvaccessAuto nvaccessAuto added this to the 2010.1 milestone Nov 10, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment