java - 如何让 Vista 的讲述人将我的 Swing 组件读回给我?

标签 java windows windows-vista accessibility narrator

我正在尝试为 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 的窗口,不包含其他已知控件”。如果我用这样的 AWT 按钮替换 Swing JButton:

Button button = new Button( "Hello World" );

...然后它正常工作,我得到“Banjollity 的窗口,专注于 Hello World 按钮,包含 Hello World 按钮”。

我试过安装 Java Access Bridge到 JRE/lib/ext(我强烈怀疑它工作正常,因为我的程序拒绝启动我的应用程序,直到我将 DLL 放入 Windows/System32 中)但无济于事。

有人可以提供帮助或分享一些建议吗?

最佳答案

你不知道,Narator 是一个糟糕的屏幕阅读器。您需要安装 java 访问桥,然后使用 jaws一次运行 40 分钟作为演示或 NVDA这是一个免费的屏幕阅读器,也支持 Java。

关于java - 如何让 Vista 的讲述人将我的 Swing 组件读回给我?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1043757/

相关文章:

Delphi 2009 SOAP 请求不使用 Windows Vista 传输用户名

windows-vista - 用于探索 Windows Vista 音频设备链(树?)的工具

java - MongoTemplate upsert - 从 pojo 进行更新的简单方法(哪个用户已编辑)?

java - spectj:如何将库中的方面编织到用户代码中?

java - 从后台弹出 fragment

java - JSON中的日期时间字段

c++ - 终止 Qt 进程 : What's Windows Task Manager doing that I'm not?

c# - Windows 上任何单个进程可以处理的最大内存量

c++ - (WinAPI) 模拟 ComboBox 中的项目选择

c++ - Vista 窗口标题中的图片(标识)