NVDA などのスクリーンリーダーを使用している場合、マウスを上に置いたときにメニューのテキストを読み上げることができるようにしたいと考えています。メニューバーのボタンを押すとテキストを聞くことができますが、それらの上にカーソルを置いたときは聞こえません (ボタンの上にカーソルを置くだけで、スクリーンリーダーは他のプログラムのメニューを読み上げます)。
以下のように AccessibleContext を設定しました。
JMenu.getAccessibleContext().setAccessibleName("text");
JMenu.getAccessibleContext().setAccessibleDescription("more text");
listeners
マウスがそれらの上に置かれたことを検出するオブジェクトに設定できますが、テキストをスクリーンリーダーにキャストして読み取ることができるかどうか、またはどのようにキャストできるかはわかりません。試してみToolTipText
ましたが、そのテキストもスクリーンリーダーで読み上げられません。RequestFocus
JMenu では機能しますが、マウスでオブジェクトにカーソルを合わせるだけでオブジェクトにフォーカスを設定すると、別の問題が発生します。
メニューバーの上にマウスを置いたときに、スクリーンリーダーに JMenu-text を読み取らせる方法を知っている人はいますか?
Windows マシン (XP および w7) で Java6 EE と Java AccessBridge (バージョン 2.02) を使用しています。