0

我要求 JAWS 版本 9 可以读取禁用的 JButton。即,如果我有一个带有文本“True”的 JButton,它应该被读取为“True,disabled button”之类的内容。但是当我使用setEnabled(false)它时,它不再参与选项卡焦点序列,因此永远不会被读取。正如我所描述的那样,是否可以让 JAWS 读取已禁用的 JButton?

我现在的“解决方案”是模拟禁用的按钮并设置可访问的名称,如下所示:

button.setForeground(Color.GRAY);
button.getAccessibleContext().setAccessibleName(buttonText + " disabled");

但我真的更愿意使用真正的禁用按钮。

4

1 回答 1

3

作为一个不得不与许多摆动界面作斗争的下巴用户,我不相信这是可能的,你应该坚持你的解决方案。同样值得注意的是,Oracle 已经停止了 Java Access Bridge 的工作,因此新版本的 Java 将来可能无法使用下巴。不过,我找不到一个链接来确认或否认这一点。即使 Oracle 没有停止对 Access Bridge 的支持,在过去的几年里也没有任何有意义的工作。我认为不可能将 64 位 JVM 与 Jaws 和 Swing 一起使用,但我可能错了。一般来说,Swing 和 Jaws 的可访问性很差,除非您处于受控环境中,在该环境中您可以确保用户在没有事先测试的情况下不会升级到新版本的软件。虽然我知道如果将来要完成用户界面重写是非常重要的,但我会考虑从 Swing 迁移到 SWT。SWT 可以很好地与开箱即用的钳口配合使用,因为它在后台使用标准控件。我将 Eclipse 用作一个相当易于访问的 IDE,并且我查看过的所有 SWT 应用程序(UML 编辑器除外)都可以通过 Jaws 进行访问,并且无需定制。

于 2010-10-26T23:38:38.297 回答