role = form如何帮助实现可访问性?

use*_*833 68 html forms accessibility role twitter-bootstrap-3

我已经读过该role属性被添加到Bootstrap以获取可访问性,我想知道如何<form role="form">帮助访问.有关此特定用法的示例,请参见http://getbootstrap.com/css/#forms-example.

搜索Bootstrap的回购"角色"无济于事.

我的问题是信息似乎是多余的.的概念,即该元素是一个形式已经由HTML标签(表示<form>),那么什么帮助,如果我们还添加元素被打roleform?添加role="..."是否role会有所不同form(我不知道是什么 - 但让我们假装)是有意义的; 就目前而言(特别是没有具体推理/用例的例子),它充其量是令人费解的.

And*_*ine 81

如果您role="form"向表单添加,则屏幕阅读器会将其视为网页上的区域.这意味着用户可以使用他/她的区域快速导航键轻松跳转到表单(例如,在JAWS 15中,您使用R为此).此外,您的用户将能够轻松找到表单开始和结束的位置,因为屏幕阅读器标记了区域的开始和结束.

  • 因为*R*键旨在通过ARIA区域(例如文章,导航元素,内容信息等).这就是为什么你只有一个区域,如果你用`role`属性标记它.然后你的屏幕阅读器会说:"页面包含X标题,Y链接和Z区域". (7认同)
  • 感谢您提及ARIA(可访问的富Internet应用程序).[本页面和嵌入式视频](http://blog.paciellogroup.com/2013/02/using-wai-aria-landmarks-2013/)帮助我对[role`属性]感到欣赏(http:/ /www.w3.org/TR/role-attribute/).现在我明白了`角色`定义了*ARIA地标区域*.JAWS用户使用特定键从一个地标移动到下一个地标,当到达地标时,JAWS宣布地标的目的(例如"横幅地标","搜索地标","导航地标","主要地标")从而协助视障用户. (5认同)
  • 为什么这样的程序(JAWS 15)没有跳转到带有*`R`*的`<form>`标签 - 为什么它只跳转到`form`**角色**? (4认同)

Nel*_*elu 6

我想指出的是,评论中提到的文章@ user664833 指出不role="form"应该继续使用<form>元素,而应该放在一个<div>或其他一些不在语义上表明它包含表单元素的元素上.

<form>现代屏幕阅读器可能已经正确处理了元素.

引用(链接):

建议role="form"在语义中性元素上使用[ ],例如<div>不在<form>元素上,因为元素已经暴露了默认角色语义.


小智 5

事实上,ARIA 1.1 W3C 建议明确指出不应更改第 1.4 节(来源)中的宿主语言语义:

“当宿主语言为该类型的对象提供语义元素时,创建具有样式和脚本的对象是不合适的。虽然 WAI-ARIA 可以提高这些对象的可访问性,但最好通过允许用户代理处理这些对象来提供可访问性。本机对象。”

所以,写作<form role='form'>不仅是多余的,而且违背了建议。