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


67

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

我没有在Bootstrap的回购中搜索“角色”

我的问题是该信息似乎多余。HTML标记本身()已经表达了元素是表单的概念<form>,因此如果我们还添加元素正在播放roleof的信息,这有什么帮助form?添加role="..."是否role要不同于form(我不知道是什么-但让我们假装);就目前而言(尤其是没有具体的推理/用例示例),充其量令人困惑。


1
11个月后,刚刚发布的Bootstrap版本(v3.3.2)删除了许多实例role="form"。这是请求请求:github.com/twbs/bootstrap/pull/15125
Phil Gyford 2015年

有很多框架,创作工具和库,在急于寻求支持的情况下,它们仅添加了ARIA属性,而无需检查这些属性是否确实必要。现在,他们开始争先恐后地将其删除,直到开始进行a11y审核。我想我们已经到了某个地步。
brennanyoung

Answers:


82

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


5
为什么这样的程序(JAWS 15)不会跳转到<form>带有R-为何只跳转到form 角色
user664833 2014年

7
因为R键旨在在ARIA区域中移动(例如文章,导航元素,内容信息等)。这就是为什么仅在使用role属性标记区域时才具有区域的原因。然后您的屏幕阅读器会说:“页面包含X标题,Y链接和Z区域”。
2014年

5
感谢您提及ARIA(可访问的富Internet应用程序)。该页面和嵌入式视频使我role特性有了赞赏。现在我知道,这role定义了ARIA地标性区域。JAWS用户使用特定的键从一个地标移至下一个地标,并且当到达地标时,JAWS借此宣布该地标的用途(例如“横幅地标”,“搜索地标”,“导航地标”,“主地标”)协助视障使用者。
user664833

1
感谢您的回复。我现在发现JAWS是Freedom ScientificMicrosoft Windows开发的专有屏幕阅读器; 因此,尽管Freedom Scientific / JAWS可能会删除对“地标”的引用,但我认为我们应该借鉴W3C(网络标准社区)的意见,W3C继续将地标定义为用户可能希望快速访问的页面上的一种区域类型。
user664833 2014年

1
屏幕阅读器无法访问该图,因此我不胜感激,但我对此表示信任:)
Andre Polykanine

7

我想指出,评论中提到的文章@ user664833指出role="form"不应在<form>元素上,而应在一个<div>或多个其他元素上(从语义上不表示它包含表单元素)。

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

报价(链接):

建议role="form"在语义中性的元素(例如<div>not)上使用[ ] <form>,因为该元素已经具有默认的角色语义


同意-我在页面上使用<form role =“ form”>时遇到了麻烦。当您选择一个元素时,JAWS一直希望从一开始就读取表单。
Desmond

4

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

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

因此,写作<form role='form'>不仅多余,而且与建议不符。


3

从语义上讲,默认情况下,表单是表单。但是,并非所有可访问性应用程序(屏幕阅读器等)的设计都相同,并且有些应用程序可以将具有role=form属性的元素(甚至是form元素)以不同的方式使用,即使他们理解父表单元素在具有或不具有该属性的情况下具有相同的语义。role=form属性。


4
这似乎很抽象。您能否指出任何具体的例子,让我欣赏这种区别?
user664833 2014年

3
我认为@salmanxk意味着页面上可能有几种形式,但是实际形式只有一种形式。示例:通常在“与我们联系”页面上填写表格:此表格将具有role =“ form”。但是,导航栏中可能还会有一个搜索表单和/或每个页面上都有一个“加入我们的邮件列表”表单。导航表单可能具有role =“ search”,邮件列表可能具有role =“ join”。每种形式都扮演不同的角色,而角色标签则有助于表示该角色是什么。
David Newcomb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.