4

私はSwingの非常に単純なアクセシビリティテストを実装しようとしています。これにより、すでに確立されているSwingアプリケーションにアクセシビリティサポートを提供することがどれほど大きな作業になるかを把握できます。

私は最も単純なSwingプログラムを持っており、WindowsVistaのナレーターを使用して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'sWindow、他の既知のコントロールは含まれていません」と表示されます。Swing JButtonを次のようにAWTボタンに置​​き換えると、次のようになります。

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

...その後、正常に動作し、「Banjollityのウィンドウ、Hello Worldボタンにフォーカス、HelloWorldボタンが含まれています」が表示されます。

JavaAccessBridgeをJRE/lib / extにインストールしようとしましたが(DLLをWindows / System32に配置するまで、プログラムがアプリケーションの起動を拒否したため、これが正しく機能していると強く思います)、役に立ちませんでした。

誰かが助けたり、いくつかの提案を共有したりできますか?

4

4 に答える 4

4

そうではありません、ナレーターは悪いスクリーンリーダーです。Javaアクセスブリッジをインストールしてから、一度に40分間実行されるジョーをデモとして使用するか、Javaもサポートする無料のスクリーンリーダーであるNVDAを使用する必要があります。

于 2009-06-26T00:30:29.247 に答える
0

これはナレーターの問題のようです。Java Access Bridge対応のVMでJAWSを使用すると、画面上の各コンポーネントが正常に読み取られます。

于 2009-06-25T18:47:56.023 に答える
0

Buttonでの調査結果が示すように、ナレーターがネイティブWindowsアプリケーションでラベルを読み取っても構わないと思っている場合は、おそらく重量のあるコンポーネントを使用して、OSがそれらを認識し、ナレーターがそれらを読み取ることができます。

于 2009-06-25T13:10:39.763 に答える
0

残念ながら、SwingコンポーネントはIAccessibleインターフェイスを実装する必要があります。実装が完了すると、ナレーターはコンポーネントを検出してそのコンテンツを読み取ることができます。それがなければ、コントロールを発見する方法はありません。

于 2009-06-28T04:18:26.230 に答える