我正在修改一个 Winforms 应用程序,使其可以通过 Dragon Professional 15 访问。我最近还添加了对屏幕阅读器(包括 JAWS 和 MAGic)的支持,因此该应用程序在很大程度上已经过审查,以确保AccessibleName(和,在适当的情况下,AccessibleRole ) 属性被填写。
Dragon 在这个应用程序的大部分方面都做得相当好,但有些部分完全无法运行。经过大量的试验和错误,我能够确定问题的原因是我的应用程序中使用了TableLayoutPanels。驻留在TableLayoutPanel中的任何控件都不能被 Dragon 使用(即,当我说出AccessibleName值时,Dragon 找不到控件)。例如,此文档树中的按钮在以下配置中可以正常工作:
(注意:noFocusCueButton类派生自Button,并且在类的视觉方面只有很小的变化。)
在此配置中,我可以说出noFocusCueButton的AccessibleName,Dragon 会识别并单击它。但是,一旦我移至此配置:
...Dragon 无法再检测到noFocusCueButton并与之交互。我在TableLayoutPanel上搜索了一些可以解释这一点的属性,但我没有看到任何明显的东西。我也搜索过其他遇到此问题的人,但没有提出任何建议。那里有任何 SO 专家对此一无所知吗?