java - 自定义 Swing 控件中的可访问性模仿了 native 控件?

标签 java swing accessibility

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

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

最佳答案

事实证明,问题很大程度上是由于自定义组件造成的。 AccessibleJComponent 类有一个后备机制来命名控件,否则这些控件没有可访问的名称,但这是硬编码的以查找 JLabel 而不是自定义标签类。

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

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

关于java - 自定义 Swing 控件中的可访问性模仿了 native 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55154650/

相关文章:

Java:用一个队列实现堆栈,有什么问题吗?

java - TextArea 溢出分配给它的边界以及 Borderlayout 的中心并覆盖整个窗口

java - 如何禁用 JXTable 默认搜索操作?

java - 修复后覆盖未调用的绘制方法

javascript - YouTube 控制可访问性报告

html - 找到具有有效 href 属性的 anchor 元素,但未提供链接内容

html - 选项卡自定义文件上传按钮

Java - 从主方法中的另一个方法访问变量

Java 重绘问题 - 每次移动都会看到椭圆

java - 计算字符串中两个字符之间的总字符数 - JAVA