【问题标题】:How does role=form help accessibility?role=form 如何帮助可访问性?
【发布时间】:2014-03-22 06:02:43
【问题描述】:

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

searched Bootstrap's repo for "role" 无济于事。

我的问题是这些信息似乎是多余的。元素是 form 的概念已经由 HTML 标记本身 (<form>) 表达,那么如果我们还添加元素正在播放 @987654329 的 role 有什么帮助@?如果roleform 不同,那么添加role="..." 是有意义的(我不知道是什么——但让我们假装吧);就目前而言(尤其是没有具体推理/用例示例),它充其量是令人费解的。

【问题讨论】:

  • 11个月过去了,刚刚发布的Bootstrap版本(v3.3.2)已经删除了很多role="form"的实例。这是拉取请求:github.com/twbs/bootstrap/pull/15125
  • 有一堆框架、创作工具和库,在急于支持 a11y 时只是简单地添加了 ARIA 属性,而不检查这些属性是否真的必要。现在他们正争先恐后地在 a11y 审计开始后再次删除它们。我想我们已经到了某个地方。

标签: html forms twitter-bootstrap-3 accessibility role


【解决方案1】:

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

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

因此,写<form role='form'> 不仅是多余的,而且违反了建议。

【讨论】:

    【解决方案2】:

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

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

    Quote (link):

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

    【讨论】:

    • 同意 - 我在页面上有
      时遇到了麻烦。当您选择一个元素时,JAWS 一直想从一开始就读出表单。
    【解决方案3】:

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

    【讨论】:

    • 这看起来很抽象。你能指出任何具体的例子,所以我可以理解这种区别吗?
    • 我认为@salmanxk 表示页面上可能有几种形式,但只有一种形式是真实的形式。示例:在联系我们页面上通常有一个表格要填写:此表格将具有 role="form"。但是,导航栏中也可能有一个搜索表单和/或每个页面上的加入我们的邮件列表表单。导航表单可能有 role="search" 并且邮件列表可能有 role="join"。每个表单都有不同的角色可以扮演,角色标签有助于表示该角色是什么。
    【解决方案4】:

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

    【讨论】:

    • 为什么这样的程序 (JAWS 15) 不会跳转到带有 R<form> 标签 - 为什么它只跳转到 form 角色?
    • 因为 R 键设计用于在 ARIA 区域中移动(例如文章、导航元素、内容信息等)。这就是为什么只有使用role 属性标记的区域才会有区域。然后你的屏幕阅读器会说:“页面包含 X 标题、Y 链接和 Z 区域”。
    • 感谢您提及 ARIA(可访问的富 Internet 应用程序)。 This page and embedded video 帮助我获得了对 the role attribute 的赞赏。现在我知道role 定义了ARIA 地标区域。 JAWS 用户使用特定键从一个地标移动到下一个地标,当到达地标时,JAWS 会宣布该地标的用途(例如“横幅地标”、“搜索地标”、“导航地标”、“主要地标”)帮助视障用户。
    • 感谢您的回复。我现在发现JAWS is a proprietary screen readerFreedom ScientificMicrosoft Windows 开发;因此,尽管 Freedom Scientific / JAWS 可能会删除对“地标”的引用,但我认为我们应该从 W3C(网络标准社区)那里得到启发,它继续将 landmark 定义为 a type of region on a page to which the user may want quick access
    • 屏幕阅读器无法访问该图表,因此我无法欣赏它,但我相信你 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2018-11-15
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多