Java 自定义Swing控件中与本机控件相似的可访问性?

Java 自定义Swing控件中与本机控件相似的可访问性?,java,swing,accessibility,blind,Java,Swing,Accessibility,Blind,我有一个Swing自定义控件,它提供与JLabel几乎相同的功能。默认情况下,使用辅助技术(如屏幕阅读器)的用户无法访问它。我正在研究,并试图找出如何将PMSimpleLabel类与其他对象关联,如JLabel类的setLabelFor方法 到目前为止所采取的方法似乎或多或少模仿了JLabel的可访问性实现。我不确定这是否是正确的方法,后者似乎有一些我不理解的因素 这可能是一个相当新的问题,但我正试图通过从事这个特定的项目来自学Java,而且在大多数其他方面都进展得相当顺利。我想知道是否有人对如

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

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


这可能是一个相当新的问题,但我正试图通过从事这个特定的项目来自学Java,而且在大多数其他方面都进展得相当顺利。我想知道是否有人对如何解决这一问题有任何见解,或者在JDK文档中提供的内容之外有什么建议。

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

有一些解决方法,例如修改get/setAccessibleName方法,或者改用AccessibleName描述


长期的解决方案可能是在可能的情况下使用常规Swing组件

问题很大程度上是由于自定义组件造成的。AccessibleJComponent类有一个回退机制来命名没有可访问名称的控件,但这是硬编码的,用于查找JLabel而不是自定义标签类

有一些解决方法,例如修改get/setAccessibleName方法,或者改用AccessibleName描述


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

我所知道的使定制Swing组件可访问的唯一指南是IBM使用100%纯java编写可访问应用程序的指南™ (2004)。我所知道的使定制Swing组件可访问的唯一指导是在IBM指南中使用100%纯java编写可访问的应用程序™ (2004).