C# JAWS不读取listview列标题
我在.Net中创建了一个C#windows窗体应用程序。它有一个主要的形式。主窗体有一个具有四列的ListView控件,如下所示:C# JAWS不读取listview列标题,c#,listview,screen-readers,jaws-screen-reader,C#,Listview,Screen Readers,Jaws Screen Reader,我在.Net中创建了一个C#windows窗体应用程序。它有一个主要的形式。主窗体有一个具有四列的ListView控件,如下所示: 名字 姓 年龄 性别 我用1行填充列表视图,其中包含以下值 名字-拉西克 姓-比哈里 年龄-32 性别-男性 以下是截图: 我正试图通过JAWS屏幕阅读器工具测试它对特别有能力的用户的可访问性。问题是,每当我选择一行时,它只会逐个读取所有列值的值。它不会同时读取标题文本。我的期望是它应该是这样的-名字:拉西克,姓氏:比哈里,年龄:32岁,性别:男性 JAWS支持一
Insert+Ctrl+1
,它将读取第一列的值,如下图所示-名字:Rasik。如果按Insert+Ctrl+2
,它将读取第二列的值,如下图所示-姓氏:Bihari。默认情况下,我希望在listView控件中选择一行后立即执行此操作,即它应该读取“列标题文本”:“列值”对中的整行。如果需要设置listView控件的任何属性,或者JAWS中的任何设置有帮助,有人对此有任何线索吗
如果要查找示例行为,请转到Visual Studio->调试菜单->附加到进程
。在“附加到流程”窗口中,有一个“可用流程”分组框,其中显示可以附加代码的所有可用流程的列表。它也是一个listview控件。当我使用VisualStudio运行JAWS时,在这个窗口上,当我用鼠标选择一行时,它会很好地逐个读取所有列标题文本和列值对
在同一台机器上,我的示例应用程序的JAWS表现不同。我自己就能够解决这个问题。实现它不需要额外的编码。实际上,默认情况下,JAWS通过其配置来抑制这种读取行为。您需要显式配置JAWS以
-
方式读取列表视图的行
当应用程序正在运行且当前焦点位于所显示窗体上的列表视图控件上时,按JAWS键+F2。它打开JAWS管理器弹出窗口,显示所有项目可配置的列表。选择第二个选项“自定义列表视图”,然后按OK,如下面的快照所示:
在“自定义标题”窗口中,您将看到当前选中了“忽略”单选按钮,如下面的快照所示:
将单选按钮选择更改为适当的选项,以更改列表视图控件的屏幕读取行为
最令人恼火的问题是,对于应用程序中出现的每个列表视图控件,都需要分别进行此配置。没有集中化的机制可以一次性为整个应用程序配置它
注意:由于默认情况下JAWS配置为只读列值,这当然意味着它适用于具有特殊功能的用户。Freedom scientific必须对此进行研究,因为阅读列标题可能是不需要立即阅读的无关信息。此外,如果有特殊能力的用户需要读取列标题,则始终存在+Ctrl+
选项以该格式读取
此外,不同的屏幕阅读器工具(如thunder storm、NVDA)在这种列表视图读取情况下具有不同的行为