#java #swing #accessibility #blind
#java #swing #Специальные возможности
Вопрос:
У меня есть пользовательский элемент управления Swing, который выполняет почти ту же функцию, что и JLabel. По умолчанию он недоступен для людей, использующих вспомогательные технологии, такие как программа чтения с экрана. Я работаю над проектом Megamek GitHub и пытаюсь выяснить, как связать класс PMSimpleLabel с другими объектами, как в методе setLabelFor класса JLabel.
Принятый до сих пор подход, по-видимому, заключается в том, чтобы более или менее имитировать реализацию доступности JLabel. Я не уверен, что это правильный способ сделать это, похоже, в последнем есть некоторые элементы, которые я не понимаю.
Комментарии:
1. Единственное известное мне руководство по обеспечению доступности пользовательских компонентов Swing содержится в создании пользовательского доступного компонента в руководстве IBM по написанию доступных приложений с использованием 100% чистой Java™ (2004).
Ответ №1:
Проблема, оказывается, в значительной степени из-за пользовательских компонентов. Класс AccessibleJComponent имеет резервный механизм для присвоения имен элементам управления, которые обычно не имеют доступных имен, но это жестко запрограммировано для поиска JLabel, а не пользовательского класса label.
Для этого есть несколько обходных путей, таких как изменение методов get / setAccessibleName или переключение на использование доступного описания вместо этого.
Решение в долгосрочной перспективе, вероятно, заключается в использовании обычных компонентов Swing, где это возможно