0

我正在修改一个 Winforms 应用程序,使其可以通过 Dragon Professional 15 访问。我最近还添加了对屏幕阅读器(包括 JAWS 和 MAGic)的支持,因此该应用程序在很大程度上已经过审查,以确保AccessibleName(和,在适当的情况下,AccessibleRole ) 属性被填写。

Dragon 在这个应用程序的大部分方面都做得相当好,但有些部分完全无法运行。经过大量的试验和错误,我能够确定问题的原因是我的应用程序中使用了TableLayoutPanels驻留在TableLayoutPanel中的任何控件都不能被 Dragon 使用(即,当我说出AccessibleName值时,Dragon 找不到控件)。例如,此文档树中的按钮在以下配置中可以正常工作:

工作文件配置

(注意:noFocusCueButton类派生自Button,并且在类的视觉方面只有很小的变化。)

在此配置中,我可以说出noFocusCueButton的AccessibleName,Dragon 会识别并单击它。但是,一旦我移至此配置:

损坏的文档配置

...Dragon 无法再检测到noFocusCueButton并与之交互。我在TableLayoutPanel上搜索了一些可以解释这一点的属性,但我没有看到任何明显的东西。我也搜索过其他遇到此问题的人,但没有提出任何建议。那里有任何 SO 专家对此一无所知吗?

4

1 回答 1

2

在只能被描述为“我的生活故事”中,我在发布问题后不到几分钟就发现了问题(尽管我事先花了几个小时)。

显然,在某些时候,TableLayoutPanel的AccessibleRole属性已设置为List。将其设置回默认值可以解决问题。

于 2020-03-20T14:06:35.027 回答