自定义Swing控件中的可访问性会模仿本地控件吗?

时间:2019-03-14 03:44:03

标签: java swing accessibility blind

我有一个Swing定制控件,它的功能几乎与JLabel相同。默认情况下,使用辅助技术的人(如屏幕阅读器)无法访问此功能。我正在研究Megamek GitHub Project,并试图找出如何将PMSimpleLabel类与其他对象相关联,如JLabel类的setLabelFor方法中一样。

到目前为止,所采取的方法似乎或多或少地模仿了JLabel的可访问性实现。我不确定这是否是正确的解决方法,后者似乎有一些我不理解的要素。

这可能是一个相当新手的问题,但是我正在尝试通过从事这个特定​​项目来自学Java,并且在大多数其他方面,它进展得很好。我想知道是否有人对如何解决这个问题有任何见解,还是在JDK文档中没有提供建议。

1 个答案:

答案 0 :(得分:0)

该问题在很大程度上归因于自定义组件。 AccessibleJComponent类具有一个备用机制来命名控件,这些控件本来没有可访问的名称,但这是硬编码的,用于查找JLabel而不是自定义标签类。

有一些解决方法,例如修改get / setAccessibleName方法,或切换为使用可访问的描述。

从长远来看,解决方案可能是使用常规的Swing组件