我正在使用 Eclipse IDE 进行 Java 开发。当我执行以下代码时,NVDA 仅读取“这是一个帧”。它不读取按钮。
导入 javax.swing.; 导入 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。我在 Windows 10 上使用 Eclipse 和 NVDA。
最佳答案
正常情况下,它应该可以工作。您可以尝试以下操作:
- 确保访问桥已启用
- 安装并启用访问桥后重新启动 NVDA 和您的应用,甚至重新启动
- 如果您使用的是 64 位系统,请尝试 32 位和 64 位 JVM。两者只能其中之一有效。
- 确保焦点确实转到按钮上,而不是停留在框架上。焦点可能处于半死状态,您无法阅读任何内容,并且 Tab 键不执行任何操作。
- Java 8:检查
jre\lib\accessibility.properties
是否包含类似assistive_technologies=com.sun.java.accessibility.AccessBridge
的行。我不知道 Java 11+ 是否还存在类似的东西。
请注意,Swing 和访问桥已经过时并且已被弃用。对于较新的项目,您应该使用另一个 GUI 库。 为了使 GUI 易于访问,您可以使用 SWT。
关于java - 如何让 NVDA 读取 Swing/GUI 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60125292/