如果删除 HTML 元素,焦点应该设置在哪里?

dra*_*zen 5 html internet-explorer accessibility focus screen-readers

我有这样的 HTML(简化):

<ul>
  <li><a id="1" onclick="removeItself(1)" href="#">first</a></li>
  <li><a id="2" onclick="removeItself(2)" href="#">second</a></li>
</ul>
<input type="text"></input>
Run Code Online (Sandbox Code Playgroud)

如果点击其中一个链接,它将被删除。就我而言,删除后,整个列表将再次呈现。

有很多问题,但一般是如果具有焦点的元素被删除,在哪里设置焦点?

例如,如果第二个列表元素被删除或所有元素都被删除,焦点应该设置在哪里?

在这种情况下,什么解决方案可以通过网络访问?将焦点始终设置在列表中的第一项是否可以接受,但如果删除所有项目以将焦点设置到下一个(输入)或上一个元素?

在 IE 中,焦点将被重置,并且将从页面的开头开始。

uno*_*obf 3

我在这里应用的一般原则是:

  1. 如果存在下一个元素,则将焦点放在下一个元素上,
  2. 否则,如果存在前一个元素,则将其放在前一个元素上,
  3. 否则,将其放在有意义的之前或之后的某个元素上,如果没有,则不执行任何操作

这是 Angular.js TodoMVC 应用程序,我已将其修改为以这种方式运行(尽管您可能会说我在上面的第 3 点上做得不够好)

http://dylanb.github.io/todomvc/index.html#/

这是一篇关于删除工作过程的博客文章

http://unobfuscated.blogspot.com/2015/02/angularjs-accessibility-deleting-todo.html