Html 角色=表单如何帮助辅助功能?

Html 角色=表单如何帮助辅助功能?,html,forms,twitter-bootstrap-3,accessibility,role,Html,Forms,Twitter Bootstrap 3,Accessibility,Role,我已经读到,角色属性被添加到可访问性中,我想知道如何帮助可访问性。有关此特定用法的示例,请参见 我没有用 我的问题是,这些信息似乎是多余的。元素是表单的概念已经由HTML标记本身()表示,那么如果我们还添加元素扮演表单的角色,又有什么帮助呢?如果role与form不同,那么添加role=“…”是有意义的(我不知道是什么,但让我们假装一下);就目前情况而言(尤其是没有具体的推理/用例示例),这充其量是令人费解的。如果在表单中添加role=“form”,屏幕阅读器会将其视为网页上的一个区域。这意味着

我已经读到,
角色
属性被添加到可访问性中,我想知道
如何帮助可访问性。有关此特定用法的示例,请参见

我没有用


我的问题是,这些信息似乎是多余的。元素是表单的概念已经由HTML标记本身(
)表示,那么如果我们还添加元素扮演
表单的
角色,又有什么帮助呢?如果
role
form
不同,那么添加
role=“…”
是有意义的(我不知道是什么,但让我们假装一下);就目前情况而言(尤其是没有具体的推理/用例示例),这充其量是令人费解的。

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

从语义上讲,表单默认为表单。但是,并非所有辅助功能应用程序(屏幕阅读器等)的设计都相同,有些应用程序可以使用元素(甚至表单元素)使用
role=form
属性时会有所不同,即使他们理解父表单元素在使用或不使用
role=form
属性时具有相同的语义。

我想指出,a中提到的@user664833这篇文章的状态是
role=“form”
不应在
元素上,而应在
或语义上不表示包含表单元素的其他元素上

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

建议在语义无关的元素(如
上使用[
role=“form”
),而不要在
元素上使用[
role=“form”
),因为该元素已经公开了默认角色语义


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

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


因此,编写
不仅是多余的,而且是违反建议的。

为什么这样一个程序(JAWS 15)不跳转到带有
R
标记-为什么它只跳转到
表单
角色?因为R键设计用于在ARIA区域(如文章、导航元素、内容信息等)中移动. 这就是为什么只有在使用
角色
属性标记区域时,才有区域。然后,您的屏幕阅读器会说:“页面包含X标题、Y链接和Z区域”。感谢您提及ARIA(可访问的富互联网应用程序)。帮助我获得了对他的感激。现在我明白了
role
定义了ARIA地标区域。JAWS用户使用特定的键从一个地标移动到下一个地标,当到达地标时,JAWS会宣布地标的用途(例如“横幅地标”、“搜索地标”、“导航地标”、“主地标”),从而帮助视障用户。感谢您的回复。我现在发现,由Microsoft Windows开发的;因此,尽管Freedom Scientific/JAWS可能会删除对“landmark”的引用,但我认为我们应该从W3C(网络标准社区)那里获得线索,W3C继续将landmark定义为。屏幕读者无法访问该图表,因此我无法欣赏它,但我相信你:)这看起来相当抽象。你能举出具体的例子吗,这样我就能理解这种区别了?我认为@salmanxk意味着页面上可能有几种形式,但只有一种形式是真正的形式。示例:在“联系我们”页面上,通常需要填写一张表格:此表格将包含role=“form”。然而,在导航栏中也可能有一个搜索表单和/或在每个页面上都有一个加入我们的邮件列表表单。导航表单可能有role=“search”,邮件列表可能有role=“join”。每个表单都有不同的角色,角色标签有助于表示该角色是什么。11个月后,刚刚发布的Bootstrap版本(v3.3.2)删除了许多
role=“form”
的实例。这里是pull请求:有一堆框架、创作工具和库,在急于获得11y支持时,它们只是添加了ARIA属性,而没有检查这些属性是否确实必要。现在,在年度审计开始实施后,他们又争先恐后地将其删除。我想我们正在取得进展。我同意——我在页面上有一个问题。JAWS一直希望在您对元素进行tab时从一开始就读取表单。