什么是XHTML角色属性?你用它来做什么?

53

我已经阅读了W3C的页面,但是我仍然觉得含糊不清。 role属性的目的是澄清代码吗?还是会被某些浏览器或蜘蛛解释?

它能否作为DOM选择器在一些JavaScript库中使用(我认为可以,因为id属性必须是唯一的,这可以用来识别页面上的多个资源)?

3个回答

50

简短版:

Role属性可以为某些XML元素提供未来浏览器以设备无关的方式智能工作的方法。例如,用“navigation”作为角色属性标记的无序列表可以在桌面和手持设备上的浏览器中智能解释,从而使其在这两个环境中都能清晰地显示。

详细版:

本规范中定义的XHTML Role属性允许作者注释XML语言,以包含有关元素用途的机器可提取的语义信息。使用案例包括可访问性、设备适应、服务器端处理和复杂数据描述。

该属性描述了当前元素在文档上下文中扮演的角色,例如,应用程序和辅助技术可以利用此信息确定元素的目的。这可以允许用户基于设备无关的方式做出明智的决策,并在所选动作上启用选定动作。它还可以用作以特定领域方式(例如,法律术语分类法)注释文档部分的机制。

示例:

<ul role="navigation sitemap">
    <li href="downloads">Downloads</li>
    <li href="docs">Documentation</li>
    <li href="news">News</li>
</ul>

鉴于XHTML2工作组将在今年年底停止存在,这个规范不可能以任何类似于当前形式的形式达到发布状态。

http://www.w3.org/News/2009#entry-6601

22
然而,“role”也是HTML5中的一个标准属性。 - Andrew Vit

32

您所指的文档是现已终止的XHTML 2工作组的工作之一,因此已经过时。

HTML5 / XHTML5也有一个role属性。它的定义类似但有些更为有限-其目的是指示可访问的丰富互联网应用程序(ARIA)角色,以便辅助技术(如屏幕阅读器)可以更好地向用户介绍UI组件(小部件)的目的,并帮助他们更轻松地浏览网页。

ARIA的有效角色列表可在http://www.w3.org/TR/wai-aria/#roles上找到。


0

角色属性可以用于辅助功能。我的理解是,如果语义已经明确,应该避免使用角色属性。例如,使用<nav role="navigation">...</nav>是不鼓励的,因为nav语义元素已经暗示了导航。

但有时候它很有用。例如,作为链接的图像可以具有role="link" tabindex="0",以帮助屏幕阅读器和其他辅助技术理解它正在充当链接(请确保监听enter键的keydown事件和click事件)。

另外,对于一张图片,可以使用role="button"来指示该图像正充当按钮。

角色属性允许 Web 应用程序向浏览器添加有意义但未在标记中指定的语义。

通常情况下,有一种语义上正确的方法可以完成而不必使用该属性,但需要时该属性是可用的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接