Поддержка Accessibility, ScreenReader для RichEdit со вставленным OLE объеком
От: ViktorZ  
Дата: 13.08.14 07:18
Оценка: +1
Здравтвуйте,

У меня кастомный контрол на основе RichEdit.Для обеспечения требуемой функциональности я туда вставляю OLE объекты с кастомной отрисовкой. Контрол — аналог контрола, строки ввода для адресов в Outlook. Там отрезолвленные адреса становятся как бы объектами.

Задача — поддержать Acessibility — что бы ScreenReader прочитывал содержимое всего контрола включая текст во вставленных объектах.
Как решаю: Обработываю событие WM_GETOBJECT. Возвращаю объект поддерживающий интерфейс IAccessible, в методе 'get_accValue' возвращаю текст содержащий всё содержимое всех вставленых объектов. В результате специальная тулза Inspect.exe в режиме MSAA (MS Active Accessibility) показывает мной возвращённое значение как ACC Value для этого контрола.

Но только вот встроенный виндовый ScreenReader (narrator.exe) не видит этого значения. ScreenReader (narrator.exe) проговаривает только текст введённый в RichEdit но не значение возвращаемое из 'get_accValue' интерфейса IAccessible.

Может кто встречался. Что нужно сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.