使用 NVDA 屏幕阅读器自动进行辅助功能测试

2023-11-29

我正在致力于为我们的一个网络应用程序实现可访问性(针对视障人士)。它需要符合 ARIA。现在我们正在使用屏幕阅读器手动测试我们的更改。 例如,我们的应用程序中有树控件。我打开 NVDA 屏幕阅读器,然后浏览我的树节点。 NVDA 屏幕阅读器会说话

  • 节点 XYZ 展开,(当我用右箭头键展开XYZ节点时)

  • 节点 XYZ 折叠,(当我用左箭头键折叠 XYZ 节点时)

除了声音之外,它还写下了这段文字。

但这一切都是手动的。现在我们要为其设置自动化测试用例,以便测试用例可以捕获任何回归错误。是否存在这样的工具,我们可以使用它来自动化我们的测试用例。任何方向都会有帮助。

PS:只是为了比较。我们有 nunit 来为 C# 应用程序编写测试用例。编写测试用例后,我们将它们集成到我们的构建过程中。当我们运行构建时,任何重大更改都会被捕获。我正在寻找类似的东西来测试我们的 aria 合规性和屏幕阅读器与我们的网络应用程序的行为。


我不知道有任何用于测试屏幕阅读器的现有工具,但是,有一些可测试网站和 Web 应用程序的辅助功能 API。

axe-coreDeque Systems 的产品被广泛使用并得到良好支持。

我写了一个蟒蛇包使用 axe-core 和 selenium 运行自动化 Web 可访问性测试。

虽然它并不完全是您想要的内容,但它确实涵盖了大约 60% 的可访问性指南,包括 aria 角色和属性。它应该有助于确定屏幕阅读器的可用性。

您可以将 ax 集成到 C# 中,类似于我的 python 包和Java包,也是由Deque创建的.

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NVDA 屏幕阅读器自动进行辅助功能测试 的相关文章

  • 通过 Javascript 代码单击 HTML 表单的提交按钮

    我对WEB编程不太了解 所以请随时询问我是否遗漏了任何细节 有一个我经常访问的网站 它要求用户每次访问时都需要登录 对于这个网站的登录页面 我试图写下一个用户脚本 它将自动登录 我设法填写了表单字段 但不知道如何通过 JavaScript
  • XCUITest 类拆解不会删除应用程序。但如果其实例拆卸则有效。我究竟做错了什么?

    我有一个类拆卸 它试图删除该应用程序 但它无法识别 app terminate class DeviceSettingsUtilities UITestUtilities func removeApp productName String
  • Excel进程的最大数量?

    如果我这样做 例如 for int i 0 i lt 22 i var app new Excel Application 然后创建22个excel进程 但是 如果我这样做 for int i 0 i lt 25 i var app new
  • Python 是否有相当于 Java 的 AWT Robot 类? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道类似的Python类Java机器人 http java sun com javase 6 docs api java awt Ro
  • 在Excel中通过VBA调用COM加载项

    我有一个用 VSTO 编写的 COM 加载项 我想使用 VBA 宏来调用它 对于加载项 我需要启动它 输入一些文本 自动 然后运行应用程序 该加载项都是按钮 我无法轻松访问代码 因为其中一些代码是加密的 它是第三方 遗憾的是 当单击此加载项
  • 从 ANT 运行 BAT 文件

    我浏览了论坛上的许多帖子 但无法整理出来 我正在尝试从 ANT 脚本运行 BAT 文件 文件夹层次结构是这样的 Project build xml build C test bat 我编写的 ANT 文件是
  • UiAutomator getLastTraversedText()

    我试图使用 Android UiAutomator 测试 Android Webview 据我了解文档 http developer android com tools help uiautomator UiDevice html getL
  • 每个环境使用不同的 URL 运行相同的 Testcafe 测试

    我正在研究 TestCafe 概念验证 我在一个测试环境中进行了一些测试 我需要一种方法来在最多 3 个具有不同 URL 的不同测试环境中运行相同的测试 对于这种情况有最佳实践吗 解决方案是在 testcafe 命令行上添加自定义选项 例如
  • 触发其他配置并使用 Jenkins 发送当前构建状态

    在某个 Jenkins 配置中 我希望触发另一个配置 post建立行动 我想将当前构建状态作为参数之一传递 IE 表示状态 SUCCESS FAIL UNSTABLE 的字符串 int 我有两个选项来创建构建后触发器 Using the j
  • 当模态覆盖覆盖背景项目时,防止背景项目接收焦点?

    我正在努力使叠加模式更易于访问 它的工作原理本质上就像这个 JSFiddle https jsfiddle net 0dzcs30n 8 当您打开模式时 焦点无法正确进入模式 并且它继续关注页面中的其他 隐藏 背景 项目 你可以在我的 JS
  • Github - 自动将问题分配给项目

    我想将问题自动分配给 Github 中的项目 基本上自动为每个自动打开的问题自动生成以下屏幕截图 有任何想法吗 有两个本机支持的选项 有一个官方操作可以添加问题并拉取请求projects https docs github com en i
  • 无法从 GetProcessId(.. hWnd) (pInvoke) 中提取 processID

    我使用以下方法 DllImport kernel32 dll SetLastError true static extern int GetProcessId IntPtr hWnd 尝试获取正在运行的进程的 processId 我拥有的唯
  • 在真实设备上通过命令行实现 UIAutomation

    我知道从Xcode 4 2可以运行UIAutomation通过命令行编写脚本 我已经尝试过这个并且在模拟器中对我来说工作得非常好 我想知道如何在实际设备中运行此命令 我搜索并获取了在设备上运行的命令 instruments w
  • 用于 JAWS 开发的文本控制台?

    我正在开发一个网络应用程序 我希望通过屏幕阅读器使其易于使用 在 JAWS 中测试东西非常耗时 是否可以让 JAWS 显示文本而不是阅读它 我实际上不想听到开发过程中的内容 我只是想看看 JAWS 会读什么 据我所知 大白鲨 没有语音查看器
  • Windows.Automation 中的旧版 IAccessible

    如何使用C 获取AutomationElement的LegacyIAccessible State和其他LegacyIAccessibles 就像工具中的 Inspect exe 一样 The LegacyIAccessible是新的 并且
  • 如何编辑 Mailchimp 自动化电子邮件的纯文本版本?

    我已经使用 Mailchimp 运行自动化工作流程一段时间了 其中有一个简单的欢迎新闻通讯 自动化电子邮件编辑器仅允许我编辑电子邮件的 HTML 版本 并自动生成基于文本的版本 但是 它仅在首次创建电子邮件时生成纯文本版本 从那时起 我已经
  • 向 jQuery .toggle() 方法添加 WAI-ARIA 支持

    我想配对怀阿利亚aria hidden http www w3 org TR wai aria states and properties aria hidden支持 jQuery 的 toggle 方法 所以给出 p Hi there p
  • 通过 Instruments 使用 UIAutomation 操作 iphone 时,什么是 UIATargetHasGoneAWOLException。

    我正在使用 UIAutomation 通过 Xcode 中的 Instruments 在 iPhone 上执行某些操作 但遇到了一个奇怪的异常 UIATargetHasGoneAWOLException 有人知道这个异常是什么意思吗 我发现
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • 什么时候可以使用Javascript,什么时候不可以?

    不使用太多 javascript jquery 是个好习惯吗 我们应该尽可能避免它 为了良好的可访问性 吗 什么时候可以使用 JavaScript 什么时候不能在网页设计和开发中使用 JavaScript 在什么场景 什么条件下 Updat

随机推荐

  • 为 LinkedList 类实现 C# IEnumerable

    我正在尝试在 Linux 上使用 monoDevelop 用 C 编写自定义 LinkedList 类 只是为了测试和学习 下面的代码永远不会编译 我不知道为什么 它甚至没有告诉我出了什么问题 它所说的只是 错误 编译器似乎已崩溃 检查构建
  • WEB-INF/classes 中的 war 包中的 EJB 3.1 - javax.ejb.CreateException:无法创建无状态 EJB [重复]

    这个问题在这里已经有答案了 我想 我误解了在war包中打包ejb beans的规则 Goal 我想在war包中使用ejb beans 设想 我的战争中有一些豆子 Stateless public class RegistrationServ
  • android html.fromhtml 从网络加载图像

    我们如何 html fromhtml 从网络加载图像并设置到 imageview 中 异步图片下载 首先要做的是确保您请求下载清单文件中图像的权限
  • 如何为非英语版本的项目显示适当的语言标签

    我有一个带有 URI 的项目http hdl handle net 10862 717用我们当地的语言 有英文版本 http hdl handle net 10862 152
  • 以数组形式发送数据的多个单选按钮组

    我尝试过以下方法 在我的控制器中 我有一个数组 现在的问题是我只能选择这四个中的一个
  • 我怎样才能将utf8字符转换为iso8859-1

    问题就是标题说的 谁能告诉我如何在红宝石中做到这一点 更新 ruby iconv从 Ruby 1 9 3 开始已被encode方法 看J rg W Mittag 的回答详细信息 但简而言之 utf8string pp iso string
  • WSO2 API Manager,是否可以禁用访问令牌机制

    是否可以在 WSO2 API Manager 中禁用访问令牌机制 所以我们不必设置身份验证承载标头 我知道我可以将访问令牌超时设置为 1秒 以使其无限 Answer recommended by WSO2 Collective 是的你可以
  • 我应该在每个页面上重新生成会话 ID 吗?

    我正在尝试为我的用户身份验证会话添加更多安全性 当用户登录时我regenerate session id但我想听听你的回答 如果我regenerate session id在我验证用户身份的每个页面上都会帮助我 在每个页面上验证用户身份 我
  • 如何使用 python 使用 SSL 连接到 Elasticsearch?

    我正在尝试使用 SSL 从 Python 连接到 Elasticsearch 节点 我正在使用基本代码 from elasticsearch import Elasticsearch from ssl import create defau
  • 如何查看我的反应式扩展查询正在做什么?

    我正在编写一个包含大量运算符的复杂反应式扩展查询 我怎样才能看到发生了什么 我问并回答这个问题是因为它出现得相当多 并且可能具有良好的通用性 在开发 Rx 运算符时 您可以随意将此函数附加到它们以查看发生了什么 public static
  • Android - 管理布局景观

    我需要一个活动根据方向加载不同的片段 活动 gt 肖像 片段肖像 活动 gt 景观 片段景观 这是activity layout xml
  • PostgreSQL 检查时间戳字段是否为空

    我遵循了这些指示检查用户登录时是否被软删除 在下面的示例中 我可以检查布尔值 Class User lt ActiveRecord Base def self find for authentication conditions super
  • 从 CSD 查找二维空间谱的正确方法

    我尝试从上述方程中实现空间谱 附后 其中kX kY是k空间中的网格点 C w r 第 i 个和第 j 个传感器之间的互谱密度 这里是大小为 ns ns gt 传感器数量的矩阵 x y 是传感器之间的距离 nk kx ky 的网格密度 我寻找
  • 调用 OnTriggerStay() 时检查按键情况

    我有一个 NPC 当玩家碰撞器与 NPC 发生碰撞时 我的玩家可以与其交谈 我使用这段代码来实现这一点 private void OnTriggerStay2D Collider2D other if other gameObject ta
  • Asp.Net Mvc 在临时数据视图中显示异常

    我正在处理基本控制器中的错误 我需要在剃刀视图中显示存储在 tempdata 中的错误 异常类型 我怎样才能做到这一点 基本控制器代码 protected override void OnException ExceptionContext
  • iPhone 版 Google 移动分析的调度问题

    我已将 Google 移动分析集成到我的 iPhone 应用程序中 但由于某种原因 页面浏览量和事件未调度 我将其放入我的应用程序委托 applicationDidFinishLaunching 方法中 我已经删除了 UA 字符串 GANT
  • Javascript 获取数据表列名称

    我正在使用 Google 图表构建堆叠条形图 创建一个监听器来处理 onclick 事件 共有三列 站点名称 已完成和未完成 我希望侦听器捕获用户是否单击 完成或不完整 当我单击第一行数据时 这就是我得到的 我知道在我的 getColumn
  • Perl:匹配模式后如何打印下一行?

    我想在匹配图案或线条后打印特定数据 我有一个这样的文件 List car Design S Date Sun 10 10 b black g green r red Car Type No color N17 bg099 g Total 1
  • 删除小型设备(手机)上的边距空白

    我不希望小型设备的边缘有任何空白 当屏幕已经很小时 使用除屏幕全宽之外的任何内容都会适得其反 所以我通过 WordPress 使用主题 但我找到了容器 div 并能够修改它 我想让它更窄 我还声明了一个比容器 宽度为 65 更宽的 div
  • 使用 NVDA 屏幕阅读器自动进行辅助功能测试

    我正在致力于为我们的一个网络应用程序实现可访问性 针对视障人士 它需要符合 ARIA 现在我们正在使用屏幕阅读器手动测试我们的更改 例如 我们的应用程序中有树控件 我打开 NVDA 屏幕阅读器 然后浏览我的树节点 NVDA 屏幕阅读器会说话