Доступность в пользовательском элементе управления Swing, который является родным - PullRequest
1 голос
/ 14 марта 2019

У меня есть пользовательский элемент управления Swing, который выполняет функцию, почти идентичную JLabel.Он не доступен по умолчанию для людей, которые используют вспомогательные технологии, такие как программа чтения с экрана.Я работаю над Megamek GitHub Project и пытаюсь выяснить, как связать класс PMSimpleLabel с другими объектами, как в классе setLabelFor класса JLabel.

Подход, принятый до сих порпохоже, более или менее подходит для реализации доступности JLabel.Я не уверен, что это правильный путь, похоже, в последнем есть некоторые элементы, которые я не понимаю.

Это может быть довольно новенький вопрос, но я пытаюсьнаучить себя Java, работая над этим конкретным проектом, и во многих других отношениях все идет хорошо.Мне интересно, есть ли у кого-нибудь понимание того, как справиться с этим, или предложения, выходящие за рамки того, что предусмотрено в документации JDK.

1 Ответ

0 голосов
/ 16 марта 2019

Проблема оказывается в значительной степени из-за пользовательских компонентов.Класс AccessibleJComponent имеет резервный механизм для именования элементов управления, которые в противном случае не имеют доступных имен, но это жестко запрограммировано для поиска JLabel, а не пользовательского класса меток.

Существует несколько обходных путейдля этого, например, путем изменения методов get / setAccessibleName или перехода на использование доступного описания.

В долгосрочной перспективе решение, вероятно, заключается в использовании обычных компонентов Swing, где это возможно

...