Как разрешить NVDA читать элементы Swing / GUI - PullRequest
0 голосов
/ 08 февраля 2020

Я использую Eclipse ide для Java разработки. Когда я выполняю следующий код, NVDA читает только «Это кадр». Кнопка не читается.

import javax.swing. ; import javax.accessibility. ;

public class MyButton {
    public static void main(String [] args) {
        JFrame f = new JFrame ("This is a frame");
JButton b = new JButton ("This one is a button");
    b.setBounds(50,100,95,30);
//f.add(b);
f.setSize(400,400);
f.setLayout(null);
f.setVisible(true);
b.setToolTipText("This tooltip makes the button accessible");;
}
}

** Я включил AccessBridge через центр удобства доступа. Я использую Eclipse и NVDA на Windows 10.

Ответы [ 2 ]

1 голос
/ 08 февраля 2020

Обычно это должно работать. Вы можете попробовать следующее:

  • Убедитесь, что мост доступа включен
  • Перезапустите NVDA и ваше приложение или даже перезагрузите компьютер после установки и включения моста доступа
  • Если вы работаете в 64-битной системе, попробуйте 32-битную и 64-битную JVM. Может работать только один из двух.
  • Убедитесь, что фокус действительно переходит к кнопке и не остается на рамке. Фокус может быть в полумертвом положении, где вы ничего не можете прочитать, а вкладка ничего не делает.
  • Java 8: убедитесь, что jre\lib\accessibility.properties содержит строку типа assistive_technologies=com.sun.java.accessibility.AccessBridge. Я не знаю, существует ли что-то подобное для Java 11 +.

Обратите внимание, что Swing и мост доступа старые и устарели. Для новых проектов вы должны использовать другую библиотеку GUI. Чтобы сделать доступным GUI, вы можете вместо этого использовать SWT.

0 голосов
/ 16 февраля 2020

Из-за длинного списка проблем я перешел на Eclipse для Java EE. Я также обновил свой NVDA примерно в то же время. В соответствии с разделом «Что нового» в обновлении были сделаны некоторые улучшения в Java AccessBridge. Я не уверен, было ли это обновление NVDA или переход на Java EE, но все работает как надо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...