【问题标题】:How to make JAWS read a simple label?如何让 JAWS 读取一个简单的标签?
【发布时间】:2020-06-03 23:30:57
【问题描述】:

应该很简单,但显然没有人知道:如果我在基于 Windows 窗体的对话框中添加一个 Label 控件,并且我希望 JAWS 读取此标签,我将如何实现?

AccessibleDescription 用于按钮等其他控件可以正常工作,但它不适用于标签。甚至 MSdoes not quite seem to know。我也问过 FreedomScientific,但他们只是给了我一些默认答案,比如

  • 检查 www.microsoft.com/enable
  • 阅读 JAWS 帮助文件
  • 利用 JAWS 脚本(虽然我不想直接控制 JAWS)
  • 为应用定制提供服务的公司地址

都不是很有帮助。

【问题讨论】:

  • 不,我认为这没有帮助。
  • 你好@floele。我面临着类似的问题。如果能帮到我,我将不胜感激。
  • 您是否有其他控件,例如组合框、表单上的文本框或整个表单上的一个标签?
  • @RBT 在这种特殊情况下,我只有标签。想一个简短的描述性文字来解释当前对话的目的。

标签: c# .net winforms accessibility jaws-screen-reader


【解决方案1】:

我的 Windows 窗体应用遇到了这个问题。

JAWS 似乎不会自动读取静态屏幕文本。

按键盘上的“INSERT”+“B”触发“读取当前窗口”JAWS 操作 - JAWS 然后读取 Label.AccessibleDescription 属性(以及其他屏幕详细信息)。

因此,据我所知,您需要设置可访问性属性,并且用户必须执行 JAWS 击键才能读取标签。

【讨论】:

    【解决方案2】:

    JAWS 不一定使用开发人员术语记录:如果您尝试使用 HTML,请查看 Navigation Quick Keys for HTML or the JAWS Keystroke for the type of element you are using

    尝试对 FORM 使用“F”或对 HEADING 使用“H”或 INSERT+F5 以查看表单字段列表是否显示在列表中。对于使用 JAWS 的最终用户来说,TITLE 并没有什么特定的导航辅助工具(尽管逆向工程如何通过 JAWS “呈现”它们是一个简单的试验和错误)。

    【讨论】:

    • 我说的是 Windows 窗体/.NET。与 HTML 无关。
    【解决方案3】:

    我使用 AccessibleName 属性并将 TextBox、Button 和 ComboBox 设置为可以在该属性中读取的名称。这似乎适用于大多数事情。我还不能让它读取标签。如果标签显示动态数据,我建议将标签的动态部分(整体或部分)更改为可编辑或不可编辑的文本框,并设置其辅助功能名称。当它被标记或获得焦点时,它应该准备好 AccessibleName,然后是值。所以 tbAmoundOwed 听起来应该像“Amount Owed Text Box 125.78 美元”(或类似的东西,取决于使用 Jaws 或其他阅读器。)**** 这仍在进行中。我还没有找到如何在 ListView 中读取列标题。如果您将焦点设置到 ListView 中的一行,您通常还需要通过将焦点设置到 ListView 来跟进。

    【讨论】:

      【解决方案4】:

      默认情况下,如果标签单独位于整个表单上,JAWS 永远不会读取标签的文本值。但总的来说,这不是一种常见的情况。因此,如果您在表单上还有其他控件,例如复选框、选项按钮、文本框等(以及标签),可以从属性窗口为其设置 tabStop 属性,那么此解决方案将起作用。在窗体上添加一个组框,并将标签和任何其他控件焦点控件放置在组框内。将焦点控件的制表位属性设置为 True。现在,当应用程序启动并且由于 tabStop 属性设置为 true 的制表符停止控件而导致焦点到达组框内时,JAWS 将读取标签的文本。

      还有另一个概念是在 JAWS 中虚拟化一个窗口,它需要一些脚本,但很少使用,而且它不是最终用户可以轻松使用的事实和标准方式。

      编辑 1:其他选项是使用文本框而不是标签。文本框是可聚焦的控件。现在明显的问题是文本框看起来如何像标签。设置以下两个属性来实现这一点:

      1. 只读 = 真
      2. BorderStyle = 无

      编辑 2:您还可以考虑工具提示。可以启用 JAWS 中的设置来读取控件的工具提示。因此,如果有一对标签和文本框控件代表某个字段,那么您可以将工具提示添加到 JAWS 可以读取的文本框中。

      【讨论】:

        【解决方案5】:

        我发现的最简单的方法是将样式设置为可选并将制表位设置为 true。

        /// <summary>
        /// Label which can receive focus on tab. Used to communicate text to a screen reader.
        /// </summary>
        public class AccessibleLabel : Label
        {
            public AccessibleLabel()
            {
                SetStyle(ControlStyles.Selectable, true);
                TabStop = true;
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多