如何防止 NVDA 自动将焦点设置在最后使用的 HTML 元素上?

Mat*_*u G 8 firefox accessibility focus autofocus nvda

我们正在我们现有的 Web 应用程序上实现可访问性。我们使用 Firefox 和 NVDA。关于我们的 Web 应用程序的小介绍:我们的 Web 应用程序是具有多个步骤的表单(第 1 步、第 2 步:这些是不同的网页)。每个步骤都有一个上一个/下一个超链接,可以转到上一个或下一个步骤。在最后一步,用户会看到他们的输入并可以提交表单或返回更改值。当用户转到上一页以更改某些值时,我们会放置一个 #anchor 以便页面转到该锚点。然后,在 Jquery 中,我将焦点放在该锚点之后的第一个可聚焦元素上。

这很好用,除非 NVDA 处于活动状态:

当 NVDA 处于活动状态时,NVDA 会强制将焦点放在用户上次访问此页面时上次使用的 HTML 元素上。就我而言,NVDA 将重点放在 Next 超链接上。NVDA 覆盖了我在 $(document).ready() 函数中设置的焦点。

我试图更改 NVDA 中的几乎所有设置,但还没有找到可以解决我的问题的设置。

我已经在网络上搜索了任何我可以设置的 ARIA 属性来告诉 NVDA 我将管理焦点和导航,但我没有在那里找到任何东西。

有谁知道如何解决这个问题?

非常感谢!

Rya*_*n B 0

就我而言,NVDA 将焦点放在“下一个”超链​​接上。NVDA 覆盖了我在 $(document).ready() 函数中设置的焦点。

这听起来就像如果一个人点击了上一个,你正在做

<a href="#" onClick="history.go(-1); return false;">Go back</a> 
Run Code Online (Sandbox Code Playgroud)

我认为这可能是与浏览器相关的问题。有些人会在您离开页面后记住您所在的位置。由于您没有重新加载页面,只是返回,ready()因此不会再次触发。再次生火ready()的问题已经被问过,这可能会有所帮助。但是根据我的假设,您可能会在确定用户是否按下 back 时遇到一些问题。

我在网上搜索了任何可以设置来告诉 NVDA 我将管理焦点和导航的 ARIA 属性,但我没有在那里找到任何内容。

ARIA 在这里什么也不做。问题在于您如何在应用程序中向后导航。

我可以解决此问题的唯一方法是重新设计应用程序。如果您依赖history.go(-1),则需要创建一个模仿的新功能ready()