Я изменяю приложение Winforms, чтобы оно было доступно через Dragon Professional 15. Я также недавно добавил поддержку программ чтения с экрана (включая J AWS и MAGi c), так что приложение, по большей части, было рассмотрено чтобы убедиться, что свойство AccessibleName (и, при необходимости, AccessibleRole ) заполнено.
Dragon довольно хорошо справляется с большинством приложений, но есть части, с которыми он совершенно не работает. После многих проб и ошибок я смог определить, что причиной проблемы было использование TableLayoutPanels в моем приложении. Любой элемент управления, который находится в TableLayoutPanel , не потребляется Dragon (ie. Когда я говорю о значении AccessibleName , Dragon не может найти элемент управления). Например, кнопка в этом дереве документов прекрасно работает в следующей конфигурации:
![working document configuration](https://i.stack.imgur.com/V7noy.png)
(Примечание: noFocusCueButton класс происходит от Button и имеет только незначительные изменения, касающиеся визуальных аспектов класса.)
В этой конфигурации я могу говорить AccessibleName из noFocusCueButton и Дракон распознает его и щелкнет по нему. Однако, как только я перехожу к этой конфигурации:
![broken document configuration](https://i.stack.imgur.com/yvr9t.png)
... Дракон больше не может обнаруживать и взаимодействовать с noFocusCueButton . Я искал какое-то свойство на TableLayoutPanel , которое могло бы объяснить это, но я не вижу ничего очевидного. Я также искал других людей, сталкивающихся с этой проблемой, но ничего не придумал. Кто-нибудь из ТАКИХ экспертов знает что-нибудь об этом?