我已经阅读了W3C的页面,但对我来说仍然很模糊。
role
属性的目的是为了澄清代码吗?或者它会被某些浏览器或蜘蛛解释吗?
它可以用作使用某些 JavaScript 库的 DOM 选择器(我是这样想的,因为
id
属性必须是唯一的,这可以用于标识页面上的多个资源)?
简短版本:
角色属性可能为未来的浏览器提供一种以与设备无关的方式智能地处理某些 XML 元素的方法。 例如,一个标记为“导航”角色属性的无序列表,在桌面和手持环境下的浏览器上都可以进行智能解释,使其在两种环境下都能清晰显示。
长版:
本规范中定义的 XHTML 角色属性允许作者使用有关元素用途的机器可提取语义信息来注释 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-6601nav
语义元素已经意味着导航。
但在某些情况下它是有用的。例如,作为链接的图像可以具有
role="link" tabindex="0"
来帮助屏幕阅读器和其他辅助技术了解它充当链接(确保监听 Enter 键的键盘按下事件和单击事件)。
或者在图像上您可以使用
role="button"
来指示图像充当按钮。
角色属性允许 Web 应用程序向 Web 应用程序添加对浏览器有意义的语义,但如果不指定它,可能无法在标记中传达。
通常有一种语义上正确的方法可以做到这一点,而无需诉诸属性,但当您需要它时它就在那里。
XHTML(和HTML5)中的角色属性用于定义网页上元素的角色。此属性可帮助辅助技术(例如屏幕阅读器)了解页面上下文中特定元素的用途。通过指定角色,开发人员可以提高其网站的可访问性,使残障用户能够更轻松地导航并与内容交互。