Поддержка 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.

Может кто встречался. Что нужно сделать?
Re: Поддержка Accessibility, ScreenReader для RichEdit со вставленным OLE объеко
От: Аноним  
Дата: 13.08.14 13:01
Оценка: 2 (1) +1
Здравствуйте, ViktorZ, Вы писали:

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


VZ>Может кто встречался. Что нужно сделать?


Попробуйте еще вот эту утилиту http://blog.paciellogroup.com/2013/03/aviewer-2013/
Есть еще AccProbe(http://accessibility.linuxfoundation.org/a11yweb/util/accprobe/)
Возможно, нужно проверить что role или state выставляется правильно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.