【问题标题】:Is there purpose to include a tabindex attribute on an input[type="reset"]?是否有目的在 input[type="reset"] 上包含 tabindex 属性?
【发布时间】:2014-02-06 07:13:05
【问题描述】:

在 input[type="reset"] 上包含 tabindex 属性是否有可访问性或语义目的?还是应该避免这种情况,以免表单被意外且经常重置?

【问题讨论】:

  • 可访问性和可用性之间是有区别的——如果您的用户经常不小心重置表单,那么这听起来像是一个可用性问题。如果你有一个重置按钮,它应该像任何其他表单控件一样始终可以访问。
  • 这个有点不相干,但是你为什么有reset按钮呢?您最后一次使用表单并决定重置其内容是什么时候?你最后一次不小心使用它是什么时候?简而言之:重置按钮对您有帮助吗?

标签: html forms accessibility semantics


【解决方案1】:

如果您有一个重置按钮,那么设置tabIndex=-1 通过将其从跳位顺序中删除来降低由该按钮引起的风险。 tabIndex 属性的任何负值都意味着浏览器不允许“使用顺序焦点导航来访问元素”。 (这在 HTML 4 中没有定义,它不允许负值,但它是常见的浏览器行为,并且在 HTML5 中被标准化。)这意味着用户不会通过点击重置按钮并按下来意外破坏他的输入数据输入。

另一方面,在极少数实际需要重置按钮的情况下,这将是一个可访问性问题。没有鼠标或有运动障碍的用户会发现很难或不可能重置表单。对于为了方便而使用键盘导航和控件的用户来说,这也是一个可用性问题:他会注意到重置按钮在选项卡中被跳过,并且可能不知道该怎么做。

类似的考虑适用于其他值,这可能会改变元素在跳格顺序中的位置。通常,使标签顺序与元素的明显顺序不同往往会造成混淆。但是,如果在标记中重置按钮在提交按钮之前,则将其放在 Tab 键顺序的后面可能会降低用户破坏其数据而不是提交数据的风险。

重置按钮的关键问题,在可用性和可访问性等方面,是不应该使用它,除非在极少数情况下(在这种情况下,它通常应该首先出现在表单中,无论是在标记中还是在选项卡中命令)。正如可用性大师 Jakob Nielsen,wrote 很久以前所说:“如果几乎所有重置按钮都被移除,Web 将是一个更快乐的地方。这个按钮几乎从不帮助用户,但经常伤害他们。”

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 1970-01-01
    • 2017-07-03
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多