使用SWT Accessible Screenreader有时会忽略我的getName字符串

时间:2017-10-10 07:26:00

标签: java swt screen-readers nvda jaws-screen-reader

不同的屏幕阅读器(VoiceOver,NVDA,Narrator)会忽略我在UI不同位置的代码。方法getName(AccessibleEvent e)被调用并提供正确的结果,但有时会被VoiceOver,NVDA或Narrator忽略。这种行为似乎是随机的。

以下案例适用于VoiceOver,但NVDA完全忽略了它。

Accessible accessible = getControlForAccesible().getAccessible();
accessible.addAccessibleListener(new AccessibleAdapter() {

    @Override
    public void getName(AccessibleEvent e) {
        e.result = getTextForScreenReader();
    }

});

此代码位于Composite的子类中,在我的情况下充当按钮。所以这个按钮里面没有子视图。我使用drawText - GC方法绘制文本。它还附加了一个工具提示,也被忽略了。

无论AccessibleAdapter我使用哪种方法,结果仍然相同,而在我的代码的其他部分,这些不同的方法会提供不同的结果。

有没有人有类似的问题?

0 个答案:

没有答案