В современном мире важно, чтобы веб-приложения и настольные программы были доступны для всех пользователей, включая тех, кто использует программы чтения с экрана. Компонент TVirtualStringTree в среде разработки Delphi предоставляет мощные возможности для работы с деревьями данных, но для обеспечения доступности его необходимо интегрировать с программами чтения с экрана, такими как NVDA.
Проблема
Пользователи столкнулись с проблемой, что свойство AccessibleName компонента TVirtualStringTree не работает должным образом. При попытке установить значение свойства в событии OnGetText, программа чтения с экрана не получает заданную строку. В результате, чтение происходит не по текущему узлу, а по всему содержимому дерева, как будто изменений не было.
Решение
Для решения проблемы необходимо добавить в раздел uses проекта или одного из его модулей единицу VirtualTrees.Accessibility. Эта единица регистрирует провайдеры доступности, которые будут считывать только информацию о фокусируемом элементе в дереве, а также имена столбцов.
Пример кода
uses
VirtualTrees, // Основная единица VirtualTreeView
VirtualTrees.Accessibility; // Единица для поддержки доступности
Дополнительные сведения
Также стоит отметить, что TVirtualStringTree предоставляет событие OnGetImageText, которое используется для предоставления доступного текста для изображений в дереве. Это может быть полезно, если в узле используются различные изображения для представления состояний, и вы хотите описать эти состояния с помощью меток изображений.
Важные замечания
Пользователи C++ Builder столкнулись с дополнительной проблемой: включение файла VirtualTrees.Accessibility.hpp не приводит к регистрации провайдеров доступности, так как соответствующий код отсутствует в файле .hpp, но присутствует в файле .pas. Это означает, что для C++ Builder может потребоваться отдельное решение для регистрации провайдеров доступности.
Заключение
Интеграция TVirtualStringTree с программами чтения с экрана является ключевым аспектом создания доступных приложений. С помощью правильной настройки и использования дополнительных возможностей, таких как OnGetImageText, разработчики могут обеспечить, что их приложения будут доступны для широкого круга пользователей, включая тех, кто зависит от технологий доступности.
Примечание: Статья предназначена для использования в контексте сайта, посвященного Delphi и Pascal, и содержит примеры кода на Object Pascal.
Компонент `TVirtualStringTree` в Delphi должен быть интегрирован с программами чтения с экрана для обеспечения доступности веб-приложений и настольных программ.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.