Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么是XHTML角色属性?你用它干什么?_Javascript_Html_Attributes_Xhtml - Fatal编程技术网

Javascript 什么是XHTML角色属性?你用它干什么?

Javascript 什么是XHTML角色属性?你用它干什么?,javascript,html,attributes,xhtml,Javascript,Html,Attributes,Xhtml,我读过这篇文章,但对我来说仍然模糊不清。角色属性的目的是澄清代码吗?或者它会被一些浏览器或爬行器解释 它可以用作使用一些JavaScript库的DOM选择器吗(我这样认为,因为id属性必须是唯一的,这可以用来标识页面上的多个资源) 简短版本: 角色属性可能为未来的浏览器提供了一种以独立于设备的方式智能地处理某些XML元素的方法。例如,在桌面和手持环境中,可以在浏览器上智能地解释标有“导航”角色属性的无序列表,使其在两种环境中都能清晰显示 长版本: 本规范中定义的XHTML角色属性允许作者使用关于

我读过这篇文章,但对我来说仍然模糊不清。
角色
属性的目的是澄清代码吗?或者它会被一些浏览器或爬行器解释


它可以用作使用一些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工作组在今年年底将不复存在,因此本规范不可能达到与当前形式类似的发布状态

您提到的文档是现在已停止使用的XHTML2工作组工作的一部分。它实际上已经过时了

HTML5/XHTML5还有一个
角色
属性。它的定义类似,但有一定的局限性——其目的是指示可访问的富互联网应用程序(ARIA)角色,以便屏幕阅读器等辅助技术能够更好地告知用户UI组件(小部件)的用途,并帮助他们更轻松地浏览网页


ARIA的有效角色列表位于

角色可用于辅助功能。我的理解是,应该避免在语义明确的地方使用role属性。例如,不鼓励使用
,因为
nav
语义元素已经暗示了导航

但在某些情况下,它是有用的。例如,作为链接的图像可以具有
role=“link”tabindex=“0”
,以帮助屏幕阅读器和其他辅助技术了解其作为链接的作用(请确保在键盘按下事件中收听enter键和单击事件)

或者在图像上,您可以使用
role=“button”
来指示图像作为按钮

role属性允许web应用程序向web应用程序添加对浏览器有意义的语义,但如果不指定,这些语义可能无法在标记中传达


通常情况下,在语义上有一种正确的方法,可以在不使用属性的情况下执行此操作,但当您需要时,它就会出现。

然而,
role
也是HTML5中的标准属性。