如果我有一个表单是页面主要内容的一部分,通过JavaScript在页面加载时将焦点指定到第一个表单字段上,会对无障碍性产生任何负面影响吗?
如果我有一个表单是页面主要内容的一部分,通过JavaScript在页面加载时将焦点指定到第一个表单字段上,会对无障碍性产生任何负面影响吗?
简短回答是不会让事物无法访问,但可能会导致混淆。下面是更长的答案。您的用户是否知道他们正在访问一个具有表单的页面,并且在填写表单之前是否需要阅读任何描述性文本?我是一个屏幕阅读器用户,当焦点被放在随机字段中时,这可能很烦人。当我的焦点自动放置在Stackoverflow上查看问题时,编辑答案字段中的每个时候都会让我感到恼怒,因为我必须强制我的屏幕阅读器从表单字段导航到页面顶部。
如果我们有一个键盘用户(无论是使用屏幕阅读器还是习惯使用键盘的用户),他们期望在第一次按Tab键时导航到页面顶部的链接,那么这可能会有点困扰。对于屏幕阅读器,您还可以考虑添加WAI-ARIA以添加方向,以便用户不会被抛到表单中间。
如果用户更有可能直接在字段中输入内容,那么我认为自动对焦是值得的。但出于上述原因,我不会在每个带有输入字段的页面上使用它。
如果您使用自动对焦,请确保立即在输入元素后面的脚本中或将来使用HTML5自动对焦属性进行设置。不要在window.onload
之后才执行它。当您输入时,点击其他位置只会让文档过晚地完成加载,并将焦点窃取到另一个元素上,这很烦人。
引用 MDN autofocus -> accessibility considerations(2022年9月28日检索):
为了举例说明,就目前而言,https://www.google.com 在搜索框上使用了自动对焦功能,而维基百科和亚马逊则没有。如果在页面中键入搜索框是唯一的目的,并且混淆的风险很低,那么考虑使用自动对焦功能是值得的。否则,最好跳过自动对焦。自动聚焦表单控件可能会让使用屏幕阅读技术的视障人士和认知障碍者感到困惑。当赋予一个控件
autofocus
后,屏幕阅读器将在事先未警告用户的情况下将其“传送”到该表单控件所在位置。在应用
autofocus
属性时,请仔细考虑可访问性。自动聚焦控件可能会导致页面在加载时滚动。聚焦还可能导致某些触摸设备上显示动态键盘。虽然屏幕阅读器会宣布获得焦点的表单控件的标签,但屏幕阅读器不会在标签之前宣布任何内容,而在小型设备上的有视力用户同样会忽略先前内容所创建的上下文。
我不这么认为,片段是HTTP的一个组成部分,它们设置了*html页面的焦点。
我不这么认为。屏幕阅读器可能甚至不会注意到这一点,因为它不解释页面上的JavaScript。
另一个使用“正常”浏览器的用户将获得光标已经在正确位置的优势,这有助于仅使用键盘进行导航。