什么是XHTMLangular色属性? 你用它来做什么?
我已经阅读了W3C的页面 ,但对我来说还是模糊的。 role
属性的目的是澄清代码? 还是会被一些浏览器或蜘蛛解释?
它可以作为一个DOMselect器使用一些JavaScript库(我这样想,因为id
属性必须是唯一的,这可以用来标识页面上的多个资源)?
简短版本:
angular色属性可以为未来的浏览器提供一种以独立于设备的方式智能地处理某些XML元素的方式。 例如,标记有“导航”angular色属性的无序列表可以在桌面和手持设备环境中的浏览器上进行智能化parsing,从而可以在两种环境中清晰显示。
长版本:
本规范中定义的XHTMLangular色属性允许作者使用机器可parsing的关于元素用途的语义信息来注释XML语言。 用例包括可访问性,设备适配,服务器端处理和复杂的数据描述。
该属性描述当前元素在文档的上下文中扮演的angular色。 例如,这可以被应用程序和辅助技术用来确定元素的用途 。 这可以允许用户做出关于在元素上采取哪些动作的明智决定,并以独立于设备的方式激活选定的动作。 它也可以被用作以特定领域 (例如,法律术语分类法)的方式注释文档的部分的机制。
例:
<ul role="navigation sitemap"> <li href="downloads">Downloads</li> <li href="docs">Documentation</li> <li href="news">News</li> </ul>
鉴于XHTML2工作组在今年年底将不复存在,这个规范就没有机会达到目前的forms。 http://www.w3.org/News/2009#entry-6601
您提到的文档是现在已停用的XHTML 2工作组的工作的一部分。 它已经过时了。
HTML5 / XHTML5也有一个role
属性。 它的定义是类似的,但是有些更有限 – 它的目的是指示可访问的富互联网应用程序(ARIA)angular色,以便诸如屏幕阅读器之类的辅助技术能够更好地告知用户关于UI组件(widgets)的用途,并且帮助他们导航网页更容易。
ARIA的有效angular色列表可在http://www.w3.org/TR/wai-aria/#roles获得;
angular色可以用于可访问性。 我的理解是,在语义清楚的情况下,应该避免angular色属性。 例如使用<nav role="navigation">...</nav>
是不鼓励的,因为nav
语义元素已经隐含了导航。
但有些情况下,它是有用的。 例如,一个链接的图像可以有role="link" tabindex="0"
以帮助屏幕阅读器和其他辅助技术了解,它是作为一个链接(确保收听打扰keydown事件input密钥和点击事件)。
或者在图像上,您可以使用role="button"
来指示图像充当button。
angular色属性允许Web应用程序将语义添加到Web应用程序,这对浏览器来说是有意义的,但是在没有指定的情况下可能不会在标记中传递。
通常情况下,在没有诉诸属性的情况下,这种方法在语义上是正确的,但是当你需要时,它就在那里。