jQuery UI 使用 Google 辅助功能开发人员工具的日期选择器焦点问题

jQuery UI Datepicker focus issues using Google Accessibility Developer Tools

我有验收测试,在带有 jQuery UI Datepicker 的页面上输入数据。

由于某种原因,在不相关的输入字段中输入了数据时打开了日期选择器。这会导致其他元素在稍后的测试中被遮挡和无法点击。

测试使用 Google 的 Accessibility Developer Tools 通过在使用 ChromeDriver 的 sendKeys() 输入数据时触发的侦听器。看起来这可能会聚焦 datepicker 元素但不会取消聚焦。

日期选择器或辅助功能工具的工作方式是否会导致这种行为?

当可访问性脚本为 运行 (axs_testing.js) 时,它会通过在每个元素上调用 focus() 来检查每个元素是否可见。当 datepicker 获得焦点(打开对话框)时会出现问题,然后当另一个元素被聚焦时,对话框不会关闭。

这是因为它没有在字段失去焦点时关闭的触发器。如果是这样,当您单击它时日历会立即消失,因为焦点会从该字段上移开并导致触发发生。

对此的解决方案是修改可访问性脚本,以便在它调用 focus() 的地方添加一个检查以查看它是否试图聚焦于日期选择器然后(确保它尚未聚焦)你之后关闭日期选择器对话框。