【问题标题】:JAWS not reading listview column headersJAWS 不读取 listview 列标题
【发布时间】:2016-04-27 06:52:51
【问题描述】:

我在 .Net 中创建了一个 C# windows 窗体应用程序。它有一个主要形式。主窗体有一个 ListView 控件,四列如下:

  1. 名字
  2. 姓氏
  3. 年龄
  4. 性别

我用以下值填充 1 行列表视图

  1. 名字 - Rasik
  2. 姓氏 - 比哈里语
  3. 年龄 - 32
  4. 性别 - 男性

截图如下:

我正在尝试通过 JAWS 屏幕阅读器工具测试其对特殊用户的可访问性。问题是每当我选择其中一行时,它只会一一读取所有列值的值。它不会随之读取标题文本。我的期望是它应该读起来像 - 名字:Rasik,姓氏:Bihari,年龄:32,性别:男性。

JAWS 支持一些键盘快捷键以明确地具有此行为。就像你按Insert + Ctrl + 1 一样,它会像这样读取第一列的值 - 名字:Rasik。如果您按Insert + Ctrl + 2,那么它将读取第二列的值,如下所示 - 姓氏:Bihari。默认情况下,我希望我们在 listView 控件中选择一行,即它应该读取 'column header text' : 'column value' 对中的整行。如果需要设置 listView 控件的任何属性或 JAWS 中的任何设置可以提供帮助,是否有人对此有任何线索?

如果您正在寻找示例行为,请转至 Visual Studio -> Debug Menu -> Attach to Process。在“附加到进程”窗口中有一个“可用进程”组框,其中显示了您可以附加代码的所有可用进程的列表。它也是一个列表视图控件。当我用 Visual Studio 运行 JAWS 时,在这个窗口上,当我用鼠标选择一行时,它会非常好地读取所有列标题文本和列值对。

在同一台机器上,我的示例应用程序的 JAWS 行为不同。

【问题讨论】:

    标签: c# listview screen-readers jaws-screen-reader


    【解决方案1】:

    我自己能解决这个问题。实现它不需要额外的编码。实际上,默认情况下,JAWS 通过其配置抑制了这种读取行为。您需要显式配置 JAWS 以以 <Column Header>-<Column Value> 方式读取列表视图的行。

    当您的应用程序正在运行并且当前焦点位于正在显示的表单上的列表视图控件上时,按 JAWS KEY + F2。它会打开 JAWS 管理器弹出窗口,显示可以配置的所有项目的列表。选择第二个选项“自定义 ListView”,然后按 OK,如下面的快照所示:

    在“自定义标题”窗口中,您将看到当前选中了“忽略”单选按钮,如下面的快照所示:

    将单选按钮选择更改为适当的选项以更改列表视图控件的屏幕阅读行为。

    最烦人的问题是,需要为应用程序中出现的每个列表视图控件单独完成此配置。没有集中的机制为您的整个应用程序一次性配置它。

    注意:由于默认情况下 JAWS 配置为只读列值,这当然意味着它适用于有特殊能力的用户。 Freedom Scientific 必须围绕它进行研究,因为阅读列标题可能是无关紧要的信息,这不是一次想要的。此外,如果有特殊能力的用户需要读取列标题,那么<JAWS KEY> + Ctrl + <Column Header Index> 选项总是在那里以该格式读取它。

    此外,雷暴、NVDA 等不同的屏幕阅读器工具在这种列表视图阅读的情况下具有不同的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 2017-07-29
      相关资源
      最近更新 更多