Problems using NVDA with a Java application

Radu Coravu <radu_coravu@...>


I'm a developer working to provide better accessibility in a Java-based application called Oxygen XML Editor.
One of our end users uses our application with JAWS but he'd rather use it with NVDA.
So I started to use our application with NVDA, I have to say it looks like a better alternative, I even like the voice better.
There's one problem, our application has side views (see the attached screenshot) and whenever I move the cursor in the text content the "Outline" side view selects the appropriate node structure in its internal tree. We do that without giving explicit focus to the Outline view, but NVDA still reads the changes made in the Outline view whenever I move the cursor in the main text area.

Is there a setting in NVDA to prohibit it to announce changes in application components which are not keyboard focused?

I also reproduced the problem with a small Java application:

public static void main(String[] args) {
JFrame fr = new JFrame("AAA");
fr.setSize(500, 500);
JPanel panel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.gridy = 0;
c.gridx = 0;
JTree tree = new JTree();
JTextArea jt = new JTextArea("SOME\na\nb\nctext");
jt.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
tree.setSelectionRow(e.getDot() % 4);
panel.add(jt, c);
panel.add(tree, c);

fr.getContentPane().add(panel, BorderLayout.CENTER);
moving the caret in the text area also moves the selection in the tree under it and sometimes NVDA reads the selection in the tree although the focus is always in the text area.


Radu Coravu
<oXygen/> XML Editor

Join to automatically receive all group messages.