辅助功能工具 - AccScope

AccScope 工具支持开发人员和测试人员在其应用的开发和设计期间(而不是在应用开发周期的后期测试阶段)评估该应用的辅助功能。 测试甚至可以在早期原型阶段开始。 AccScope 可以直观显示屏幕阅读器如何公开应用提供的 UI 自动化信息,并且可以显示可能需要向应用添加信息或支持以改进其辅助功能的方面

注意

AccScope 是一种旧工具。 建议改为使用 Accessibility Insights

关于 AccScope

AccScope 随 Windows 软件开发工具包 (SDK) 一起安装。 它位于 SDK 安装路径的 \bin\<version>\<platform>\AccScope 文件夹中。 运行程序 AccScope.exe。

AccScope 是桌面应用,而不是 Windows Store 应用。 可以使用它查看任何显示为窗口的应用,包括桌面应用或 Windows Store 应用。

在首次使用 AccScope 时,可能需要以管理员身份运行 AccScope,才能启用讲述人模式。

AccScope 在 Windows SDK 中作为辅助功能工具二进制文件的一部分提供。 它不是作为单独的 exe 下载分发的,在以前的 SDK 中不存在。

“文件”菜单选项

  • 选择“刷新”可刷新 AccScope 中的所有信息以匹配目标窗口的当前状态。 对于包含大量元素的 UI,可能需要几秒钟才能完成。
  • 选中或取消选中“前端显示”可更改 AccScope UI 的窗口显示行为。 选中“前端显示”是默认设置
  • 选择“退出”可退出 AccScope

视图选项

  • 选择“全屏”可在全屏视图中运行 AccScope 工具(然后使用跳格键查看目标窗口)。 如果 AccScope 和目标应用都全屏运行,那么在应用和 AccScope 视图之间,元素的放置、边框和整体可视化效果将会对应

    注意

    AccScope 及其目标应在同一显示器上运行

     

  • 选择“自动焦点”,使 AccScope 能够在用户将焦点移动到窗口(使用鼠标或键盘)时更改目标窗口

  • 选择“自动刷新”以启用 AccScope 模式,该模式每 5 秒刷新目标窗口的所有辅助功能数据。 如果目标窗口的 Microsoft UI 自动化数据不断更改,这非常有用。

  • 选择“活动区域”以突出显示在目标窗口中发出通知的任何活动区域。 活动区域事件触发显示一个红色弹出窗口,其中包含有关活动区域的信息,包括其名称及其“aria-live”值(或不直接使用 HTML 但使用 UI 自动化支持中的“活动区域”概念的应用的等效 ARIA 值模拟)。

元素模式

可以选择通过以下模式之一查看目标窗口:

  • 叶控件:显示具有父子关系的控件元素的UI 自动化视图,也就是“叶级别”交互式控件的视图。 使用此选项可查看控件视图的 UI 自动化树中是否正确显示所有交互式控件
  • 文本模式:显示目标窗口中 TextPattern 容器的可见文本范围。 使用此选项可直观地表示 UI 自动化 TextPattern 元素的可见文本范围
  • 讲述人:显示讲述人可以使用讲述人“项导航”标志识别的 UI 自动化元素
  • 自定义筛选器:显示具有控件子集选项的筛选控件树:“按钮”、“复选框”、“组合框”、“网格”、“超链接”、“列表”、“菜单”或“表”

更改“元素模式”设置会触发可视化效果的刷新。 对于包含大量元素的 UI,可能需要几秒钟才能完成。

布局选项

可以选择“视觉对象”或“列表”作为 AccScope 布局的可视化模式。 视觉对象将元素放置在与目标窗口相同的关系中的坐标空间中。 列表对 AccScope 窗口中左对齐的降序列表中的元素进行排序,列表顺序等效于 Tab 键顺序或阅读顺序

  • 从“显示图像”中选择一个选项,以控制图像元素的简单矩形何时被实际图像替换(或被该图像的小视区替换,因为矩形通常小于实际图像)。 默认值为“悬停时”,即在 AccScope 中导航并将鼠标悬停在图像元素的矩形上方时显示图像。 其他选项为“始终”或“永不”
  • 选择“显示工具提示”可在每次将鼠标悬停在 AccScope 可视化效果中的元素上时,显示基本元素信息。 如果“元素模式”为“叶控件”或“文本模式”,则工具提示中显示的信息是优先级最高的元素级 UI 自动化属性。 如果“元素模式”是“讲述人”,则信息包括讲述人为元素阅读的文本
  • 选择“显示数字”可显示用于在布局中指示控件呈现顺序的序列号。 数字方案基于“元素模式”设置:
    • 叶控件:数字指示叶控件在 UI 自动化树中显示的顺序
    • 文本模式:数字指示文本范围在文档范围内显示的顺序
    • 讲述人:数字指示元素在讲述人项导航中导航的顺序

选择窗口

在标签“窗口”下,你将找到一个下拉列表,其中列出了系统上当前处于活动状态的所有 HWND 窗口。 下拉列表中显示的每个窗口的文本是窗口标题,也是方括号括起来的十六进制窗口 ID。 选择其中一个以更改 AccScope 正在报告的目标窗口。 可以再次选择同一项,以获取与显式“刷新”相同的行为

使用 AccScope 可视化效果

下图是 AccScope 可视化效果的屏幕截图。 此特定屏幕截图显示 AccScope 工具,查看 XAML 辅助功能示例输出的顶级窗口,作为同一台计算机上的应用运行。 此屏幕截图显示叶控件的默认元素模式和布局的视觉对象值

Screenshot of the AccScope visualization

请注意此可视化效果如何表示应用中你看到的近似坐标空间中的控件。 但是,它不显示 XAML 视觉对象或文本控件的完整文本,而是使用 UI 自动化显示来自每个控件元素的 Name 属性值。

除了前面所述的菜单选项之外,还可以使用以下技术:

  • 单击“视觉对象”或“列表”可视化效果中的任何元素的矩形以显示“UIA 属性”弹出窗口。 这列出了该元素的许多重要 UI 自动化属性,包括一些标准 IUIAutomationElement 属性和其他信息,如 ARIA 值和提供程序说明
  • 右键单击“视觉对象”或“列表”可视化效果中的任何元素的矩形可显示上下文菜单以实施元素支持的模式。 例如,如果元素支持 InvokePattern,则上下文菜单包括 Invoke 的项。 选择该项,则会在相应的应用中实施适当的模式 API。 AccScope 支持以下模式的此功能:Invoke、ExpandCollapse、Toggle、SelectionItem、ScrollItem
  • 调整“透明度”滑块可更改 AccScope 窗口的不透明度/透明度。 默认情况下,它显示为 100% 不透明度。 使用“前端显示”模式时,使窗口部分透明可用于通过 AccScope UI 查看目标窗口的各个部分
  • 如果它们显示,可使用水平滚动条和垂直滚动条更改可视化效果的视图中心。 如果使用“视觉对象”布局选项,但未使用“全屏”视图选项,且将 AccScope 窗口保留为较小的窗口(与目标窗口相比),这会非常有用

测试讲述人方案

讲述人方案是使用 AccScope 时测试的最重要方面,该方案专门用于直观显示将基本讲述人项导航应用于应用时的工作方式

若要测试讲述人方案,请使用以下 AccScope 配置选项

  • 元素模式:讲述人
  • 布局:视觉对象
  • 布局选项:“显示工具提示”和“显示数字”均已选中

下面是针对讲述人方案要测试的应用的一些特定方面:

  • 元素顺序:根据可视化效果中显示的数字(绿色圆圈)验证讲述人朗读控件的顺序是否正确。 如果元素不按预期的顺序朗读,请修改应用的 UI 结构和生成的 UI 自动化树,然后再次测试,直到你验证元素按照预期的顺序朗读。
  • 口述文本:在可视化效果中移动鼠标,并将鼠标悬停在每个元素矩形上以显示每个元素的工具提示。 在“讲述人”模式下,工具提示显示“讲述人文本”条目,该条目实际上是讲述人朗读的文本。 通常,此文本由“名称”和“控件类型”组成。 验证这是 UI 中每个控件的正确信息。 如果有任何信息不正确,请通过用于此操作的特定 UI 框架启用的技术修改 UI 自动化属性。 (如果“控件类型”不是预期的,则可能需要使用其他控件,因为这通常完全由 UI 框架的控件实现控制。)然后再次测试并验证“讲述人文本”是否正确。
  • 元素布局:检查以下每种情况:
    • 验证讲述人是否未公开冗余元素。 冗余元素的一个示例是每个 Windows Store 磁贴项中的评分控件。
    • 验证重要元素(用户在应用中完成关键任务所需的元素)是否都出现在讲述人项导航中。
    • 如果使用“视觉对象”布局且由于控件彼此重叠导致元素缺失,可切换到“列表”布局以查看讲述人报告的顺序
    • 验证应用的总体 UI 自动化树结构是否准确且符合预期。