我正在尝试为 Swing 实现一个非常、非常简单的可访问性测试,这样我就可以了解为我们已经建立的 Swing 应用程序提供可访问性支持的工作量有多大。
我有最简单的 Swing 程序,我在 Windows Vista 中使用讲述人来尝试通过屏幕阅读它的 GUI。
public class ReadableFrame extends JFrame {
private ReadableFrame() {
super();
setTitle( "Banjollity's Window" );
setSize( 640, 580 );
setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE );
JButton button = new JButton( "Hello World" );
getContentPane().setLayout( new FlowLayout() );
getContentPane().add( button );
setVisible( true );
}
/**
* @param args
*/
public static void main( String[] args ) {
new ReadableFrame();
}
}
讲述人可以阅读标题,但不能阅读其他内容。我得到“ Banjollity 的窗口,不包含其他已知控件”。如果我将 Swing JButton 替换为 AWT 按钮,如下所示:
Button button = new Button( "Hello World" );
...然后它正常工作,我得到“ Banjollity 的窗口,专注于 Hello World 按钮,包含 Hello World 按钮”。
我已经尝试将Java Access Bridge安装到 JRE/lib/ext(我强烈怀疑这工作正常,因为我的程序拒绝启动我的应用程序,直到我将 DLL 放入 Windows/System32 中)但无济于事。
任何人都可以提供帮助或分享一些建议吗?