隐式提交(按回车键提交)对使用阅读器和键盘导航的人有用吗?

Jea*_*din 2 forms accessibility

我正在寻找有关残障用户如何使用隐式提交 ( https://www.w3.org/TR/html50/forms.html#implicit-submission ) 的见解?

我想知道在可访问性世界中是否必须在焦点位于输入文本中时按 Enter 键提交表单?我确信它在某些情况下可能有用,但我知道它在其他情况下也可能有害......

例如,如果某些键盘用户按 Enter 键想要添加新行,但发送表单,该怎么办?如果他在扫描所有表单输入之前在一个长表单中按 Enter 键,并且提交的表单缺少一些需要填写的重要信息,该怎么办?

另一方面,能够提交表单而无需浏览所有表单以将焦点放在提交按钮上并提交...

我知道 JAWS 和 NVDA 提供了转到下一个按钮的键盘快捷方式,所以我想知道这对他们来说是否真的有用。用户对使用阅读器或键盘导航浏览网页的期望是什么?

Que*_*inC 6

我是屏幕阅读器用户。我认为,使用回车键隐式提交是绝对必须的。除非它引起的烦恼比它解决的要多,但这种情况极为罕见。

通常,屏幕阅读器和仅使用键盘的用户比普通用户慢得多。而且我确认当回车键没有按预期工作时必须手动导航到提交按钮非常烦人。

碰巧,如果你正确地做事,它是隐含的,你不需要做任何事情来支持它。不破坏隐式输入提交的最基本规则是:

  • 使用<input type="submit"/>,<button type="submit"/><input type="image"/>指示按下回车时自动触发的提交按钮。
  • 在表单上使用 onsubmit 事件,而不是点击按钮
  • 确保表单只有一个提交按钮

提交按钮必须存在,不能被禁用,并且不能显示:none以便通过输入隐式提交工作。如果您愿意,该按钮可能在屏幕上不可见。

第二条规则提醒您onclick 按钮是错误的,因为在另一个字段中按 Enter 时不会触发它。从而打破隐式提交。这是隐式提交无法按预期工作的最常见原因。

第三条规则确保在进行隐式提交时按下右键。如果有多个按钮,通常应该取DOM顺序的第一个,但浏览器有时会有不同的行为,尤其是IE。所以最好总是避免它。

现在为你的小恐惧:

例如,如果某些键盘用户按 Enter 键想要添加新行,但发送表单,该怎么办?

原则上不会意外发生。输入文本字段时,会通知屏幕阅读器,无论是单行 ( <input type="text"/>) 还是多行 ( <textarea>)

如有疑问,请记住附上有意义的适当标签。如果标签是“评论”、“消息”或“地址”,我可以合理地期望该字段是多行的;如果它是“名字”或“城市”,我隐含地知道它不是。

如果他在扫描所有表单输入之前在一个长表单中按 Enter 键,并且提交的表单缺少一些需要填写的重要信息,该怎么办?

这是很常见的,但你不应该害怕它。

您的工作是向用户提供清晰有效的错误消息,同时在表单内提供尽可能简单的导航。返回、理解和修复错误越困难,表单最终提交的可能性就越小;它下降得非常快,对于屏幕阅读器用户来说更是如此。如何做好是另一个问题。

  • @Kyle Holmberg:这是一个坏主意,因为它违背了预期的行为。默认情况下,在文本区域中,Enter **不会**触发表单提交。我宁愿建议 Ctrl+Enter 无论如何提交,例如许多邮件客户端都会这样做。 (3认同)

小智 2

网络上的大多数表单都具有内置的隐式提交行为,因此辅助技术的用户不会对此感到惊讶,而且我在使用屏幕阅读器时也没有遇到过这个问题。

但是,您应该确保始终提供正确的按钮来提交表单。参见 WCAG 3.2.2

您还应该确保事后/稍后可以尽可能轻松地返回并更改数据。