SWT CCombo无法正确响应辅助功能事件(屏幕阅读器)

时间:2015-01-30 04:59:17

标签: java swt accessibility

我创建了一个CCombo对象。我添加了AccessibilityControlListener并覆盖了getRole(AccessibleControlEvent e)方法。方法内的代码是

e.detail = ACC.ROLE_COMBOBOX;

但屏幕阅读器(JAWS)仍然将CCombo读为编辑只读。但它应该读取组合框,因为我已经覆盖了默认角色。但它似乎没有用。此外,CCombo对象甚至不会响应被覆盖的 accessiblitylistener accessibilitycontrollistener 方法。

1 个答案:

答案 0 :(得分:1)

(这不是答案,但是评论字段用完了空间)

除了大多数SWT小部件之外,CCombo不是本机小部件。相反,它由其他(本机)小部件组成,即文本,按钮和列表。显然,并非所有可访问性事件都被覆盖或重定向到正确的小部件。

SWT Bugzilla列出了CCombo和可访问性(搜索'ccombo accessibility')的几个问题。查看错误的年龄和活动,似乎不太可能很快修复它们。

如果您可以选择使用(本机)Combo小部件,那么最好还是可以选择。

根据您需要修复的绝望程度,您还可以编写自己的CCombo并修复其中的辅助功能问题。当然,只有当您的代码创建了所有CCombo时。

了解窗口小部件的内部结构,您还可以将相应的辅助功能侦听器附加到相应的子级(文本,按钮,列表),如果这足以解决您的问题。

相关问题