Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Not reading updates when setAccessibleDescription() is called in Java #3119

nvaccessAuto opened this Issue Apr 1, 2013 · 12 comments


None yet
2 participants

Reported by spmealin on 2013-04-01 03:01
When the setAccessibleDescription(String) method in the AccessibleContext class is called in Java, NVDA does not read the new accessible description value until focus is moved and then reacquired.

For example, if focus is set on a JPanel object, and then the accessible description is updated (because of a received keystroke), it is necessary to alt-tab away from the application and back again before NVDA reads the new accessible description aloud.

I’m not sure if this is a bug or feature request, but would it be possible to get NVDA to monitor propertyChange events, and read them as soon as they are received? This would reflect functionality found in other screen readers, such as Jaws.

Thank you

Comment 1 by jteh on 2013-04-01 22:20
It's certainly possible. It'd be great if you can provide a very simple test case.

Attachment AccessibleDescriptionDemo.java added by spmealin on 2013-04-02 14:21

Comment 2 by spmealin on 2013-04-02 14:22
Attached is a very simple demo that shows the problem. As you press up-arrow and down-arrow with a screen reader, it should read a new message. However, NVDA does not read anything. If I need to change it to make things more clear, please let me know.

Comment 3 by jteh on 2013-04-03 04:43
Milestone changed from None to 2013.2

Comment 4 by mdcurran on 2013-06-17 05:42
This is for several reasons:

  • It seems we have not bothered supporting nameChange, valueChange or descriptionChange events in java at all. This can be done quite easily I think. Java Access Bridge certainly supports them.
  • NVDA is currently caching the value of properties such as name and description for controls in Java for the lifetime of the object in NVDA. This is probably due to limitations in NVDA many years ago (pre core cycle caching). This can be fixed easily.
    • For your specific example, you would probably be better setting accessible value, not description in the case of a simple changing numeric value. However, this wouldn't have affected the success of the testcase due to the first point.

These issues can be fixed pretty easily (in that I know exactly what needs to be done). However, there is still a bit of coding involved, so I would ask that you or your organisation consider making a donation to the project if you have not done so recently. Java is not widely used by our users and therefore is never a majorly high priority.

Comment 5 by mdcurran on 2013-06-17 06:30
Mostly all done in branch javaEvents. Last commit 2ca26a8

Comment 6 by mdcurran on 2013-06-17 06:48
Here is an NVDA try build of the javaEvents branch as it is now:
Please try this build with Java applications (including your example) to see if the issue has been solved.
NVDA should now automatically speak name, description and value changes for the control with focus.

Comment 7 by jteh on 2013-06-26 03:01
Milestone changed from 2013.2 to next

Comment 9 by mdcurran on 2013-06-26 05:49
Added labels: incubating

Comment 10 by spmealin on 2013-07-02 19:52
According to our tester, things seem to be working using the build linked a few posts back.


Comment 11 by Michael Curran <mick@... on 2013-07-05 04:09
In [7d18f42]:

Merge branch 'javaEvents' - changes to the name or value of the focused control in a Java application is now automatically announced and reflected when further reviewing the control. Fixes #3119.

Removed labels: incubating
State: closed

Comment 12 by mdcurran on 2013-07-05 04:10
Milestone changed from next to 2013.2

@nvaccessAuto nvaccessAuto added this to the 2013.2 milestone Nov 10, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment