【问题标题】:Accessibility in a custom Swing control which apes a native one?自定义 Swing 控件中的可访问性,它模仿原生控件?
【发布时间】:2023-03-09 01:09:01
【问题描述】:

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

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

【问题讨论】:

  • 我所知道的使自定义 Swing 组件可访问的唯一指南是在 IBM 使用 100% 纯 java™ 编写可访问应用程序的指南中的 Building Custom Accessible Component (2004) .

标签: java swing accessibility


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2015-10-21
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2014-12-09
    • 2011-02-23
    相关资源
    最近更新 更多