我有一个 Swing 自定义控件,它提供与 JLabel 几乎相同的功能。默认情况下,使用辅助技术(例如屏幕阅读器)的人无法访问它。我正在研究 Megamek GitHub Project ,并尝试找出如何将 PMSimpleLabel 类与其他对象关联起来,如 JLabel 类的 setLabelFor 方法中所示。
到目前为止所采取的方法似乎或多或少模仿了 JLabel 的辅助功能实现。我不确定这是否是正确的方法,后者似乎有一些我不理解的元素。
最佳答案
事实证明,问题很大程度上是由于自定义组件造成的。 AccessibleJComponent 类有一个后备机制来命名控件,否则这些控件没有可访问的名称,但这是硬编码的以查找 JLabel 而不是自定义标签类。
对此有一些解决方法,例如修改 get/setAccessibleName 方法,或改用可访问的描述。
从长远来看,解决方案可能是尽可能使用常规 Swing 组件
关于java - 自定义 Swing 控件中的可访问性模仿了 native 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55154650/