2013-07-08 47 views
8

Tôi đang cố gắng cải thiện khả năng truy cập của ứng dụng Delphi đã tạo cho người dùng khiếm thị. Ứng dụng của tôi sử dụng nhiều thành phần GUI tùy chỉnh. Họ chủ yếu là xuống từ TWinControl hoặc TGraphicControl.Làm cách nào để hiển thị các điều khiển GUI tùy chỉnh cho trình đọc màn hình?

Các thành phần tùy chỉnh của tôi dường như vô hình khi thử nghiệm với NVDA. Ví dụ NVDA sẽ trả lời bằng cách đọc tên của điều khiển (hoặc các chi tiết khác) khi di chuột qua các điều khiển VCL Delphi thông thường như các nút hoặc biểu mẫu. Ngược lại, NVDA không phản hồi chút nào khi di chuột qua bất kỳ điều khiển tùy chỉnh nào của tôi.

Làm cách nào để hiển thị các thành phần tùy chỉnh của tôi cho NVDA và phần mềm đọc màn hình khác?

+2

bản sao có thể có của [Tạo các thành phần giao diện người dùng có thể truy cập trong Delphi] (http://stackoverflow.com/questions/16320914/creating-accessible-ui-components-in-delphi) Câu trả lời tuyệt vời của Remy tại câu hỏi này sẽ hướng dẫn bạn giải pháp –

+1

@DavidHeffernan Cảm ơn bạn đã liên kết. Tôi không nghĩ câu hỏi này là bản sao chính xác. Câu trả lời của Remy giải quyết việc triển khai IAccessible, đây chỉ là một trong các API có thể được triển khai. – Shannon

Trả lời

4

Tìm câu trả lời trên trang NVDA Design Overview. NVDA sử dụng một số API trợ năng để thu thập thông tin về các điều khiển GUI. NVDA hỗ trợ:

Dường như tôi sẽ cần phải thực hiện một trong những API trên. Không chắc chắn những ưu và nhược điểm của từng API là gì.

Creating Accessible UI components in Delphi cung cấp chi tiết về triển khai IAccessible. (Cảm ơn bạn đã liên kết David)

+1

Tôi thích nghi ngờ rằng MSAA sẽ dễ dàng hơn cho bạn để thực hiện hơn UIAutomation. Tôi cũng nghĩ rằng MSAA cũ sẽ có hỗ trợ rộng hơn so với UIAutomation gần đây hơn. Vì vậy, trừ khi bạn cần hỗ trợ chức năng chỉ có sẵn trong UIAutomation, bạn có thể được phục vụ tốt hơn với MSAA. –