使用屏幕阅读器(如 NVDA)时,我希望将鼠标悬停在菜单上时能够听到菜单的文本。当我按下菜单栏中的按钮时,我能够听到文本,但当我将鼠标悬停在它们上方时则无法听到(屏幕阅读器仅在将鼠标悬停在按钮上时才会读取其他程序的菜单)。
我已将 AccessibleContext 设置如下:
JMenu.getAccessibleContext().setAccessibleName("text");
JMenu.getAccessibleContext().setAccessibleDescription("more text");
我可以设置listeners
检测鼠标何时悬停在它们上方的对象,但我不知道是否/如何将文本投射到屏幕阅读器以进行阅读。我试过ToolTipText
了,但屏幕阅读器也不会读取该文本。RequestFocus
在 JMenu 上有效,但是仅通过将鼠标悬停在对象上来将焦点设置为对象会带来其他问题。
有谁知道当鼠标悬停在菜单栏上时如何让屏幕阅读器读取 JMenu 文本?
我在 Windows 机器(XP 和 w7)上使用 Java6 EE 和 Java AccesBridge(2.02 版)。