当前位置: 首页 > 面试题库 >

HTML中“角色”属性的目的是什么?

贺景山
2023-03-14
问题内容

我一直在某些人的工作中看到角色属性。我也使用它,但是我不确定它的效果。

例如:

<header id="header" role="banner">
    Header stuff in here
</header>

要么:

<section id="facebook" role="contentinfo">
    Facebook stuff in here
</section>

要么:

<section id="main" role="main">
     Main content stuff in here
</section>

此角色属性是否必要?

此属性更适合语义吗?

它会提高SEO吗?

可以在此处找到角色列表,但是我看到有人组成了自己的角色。是否允许或正确使用role属性?

有什么想法吗?


问题答案:

您看到的大多数角色都定义为ARIA 1.0的一部分,然后又合并到HTML5中。一些新的HTML5元素(对话框,主要元素等)甚至基于原始的ARIA角色。

除了您的本机语义元素之外,还有两个主要原因要使用角色。

原因#1。 在没有合适的宿主语言元素或出于各种原因而使用语义上不太合适的元素的情况下覆盖角色。

在此示例中,使用了链接,即使所得到的功能比导航链接更像按钮。

<a href="#" role="button" aria-label="Delete item 1">Delete</a>

屏幕阅读器会将其作为按钮(而不是链接)来听,您可以使用CSS属性选择器来避免class-itis和div-itis。

*[role="button"] {
  /* style these a buttons w/o relying on a .button class */
}

原因2。 备份本机元素的角色,以支持实现了ARIA角色但尚未实现本机元素的角色的浏览器。

例如,多年来,浏览器一直支持“主要”角色,但这是HTML5的相对较新的功能,因此许多浏览器尚不支持的语义<main>

<main role="main">…</main>

从技术上讲,这是多余的,但对某些用户有帮助,并且不会损害任何用户。几年后,这种技术可能会变得不必要。

您还写道:

我看到有人组成了自己的。是否允许或正确使用role属性?

除非不包括实际角色,否则这是对属性的有效使用。浏览器将在令牌列表中应用第一个公认的角色。

<span role="foo link note bar">...</a>

在列表中,只有linknote是有效角色,因此将应用链接角色,因为它首先出现。如果您使用自定义角色,请确保它们不与ARIA或您使用的宿主语言(HTML,SVG,MathML等)中定义的任何角色冲突。



 类似资料:
  • 问题内容: 在浏览某些页面的HTML时,我注意到其中一些页面使用此属性“ data-reactid”,例如: 该属性是什么,其功能是什么? 问题答案: 该属性是一个自定义属性,使React可以在DOM中唯一地标识其组件。 这很重要,因为React应用程序可以在服务器和客户端上呈现。在内部,React建立了对构成您的应用程序的DOM节点的引用的表示形式(简化版本如下)。 无法在服务器和客户端之间共享

  • 问题内容: 为HTML元素创建属性时,该值有哪些规则? 问题答案: 对于HTML 4,技术上的答案是: ID和NAME令牌必须以字母([A-Za-z])开头,然后可以跟任意数量的字母,数字([0-9]),连字符(“-”),下划线(“ _”) ,冒号(“:”)和句点(“。”)。 HTML 5更为宽容,只说一个id必须至少包含一个字符,并且不得包含任何空格字符。 在XHTML中,id属性区分大小写。

  • 问题内容: 在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。 查看jQuery1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类: 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。 有什么想法吗? 问题答案: 在编写HTML源代

  • 角色决定了员工的管理范围、功能权限,一个员工可以有多个角色。当员工拥有多个角色时,其管理范围、功能权限为多个角色相加。 管理范围 您可设置角色的管理范围,若设置该角色管理范围为部门,则可管理员工与单据;和设置该员工管理范围为项目,则可管理单据。部门支持选择所有部门、所在的部门及所有子部门、指定部门 项目支持选择所有项目、所在的项目及所有子项目、指定项目 功能权限 您可设置角色的功能权限,其中单据、

  • 问题内容: 在jQuery 1.6.1中进行更改之后,我一直在尝试定义HTML中属性和属性之间的差异。 查看jQuery1.6.1发行说明中的列表(在底部附近),似乎可以对HTML属性和属性进行如下分类: 属性:所有具有布尔值或UA计算得出的值,例如selectedIndex。 属性:可以添加到既不是布尔也不包含UA生成值的HTML元素中的“属性”。 有什么想法吗? 问题答案: 在编写HTML源代

  • 问题内容: 我读到要获取数组的长度,我使用的属性,例如。什么是属性?这是一堂课吗? 问题答案: 属性是字段的另一个术语。它通常是一个公共常量或可以直接访问的公共变量。在这种特殊情况下,Java中的数组实际上是一个对象,并且您正在访问表示数组长度的公共常量值。