ARIA:aria-roledescription 属性

aria-roledescription 属性定义了一个人类可读的、作者本地化的元素角色的描述。

描述

某些辅助技术(Assistive Technologies,AT),例如屏幕阅读器,会将元素的角色作为用户体验的一部分进行呈现。aria-roledescription 属性提供了一种方法,可以定义一个由 AT 作为元素角色呈现的、不同的人类可读名称。

注意: 仅在需要阐明非交互式容器角色的用途,或为小部件提供更具体的描述时,才使用 aria-roledescription。

用户依赖于已知角色名称的呈现来理解元素的用途,以及(如果是小部件)如何与它进行交互。因此,仅在需要阐明 groupregion 等非交互式容器角色的用途,或为小部件提供更具体的描述时,才使用 aria-roledescription

aria-roledescription 属性会覆盖 AT 本地化和表达角色名称的方式。当您覆盖用户理解的角色名称时,可能会对用户理解和与元素交互的能力产生负面影响。

避免使用 aria-roledescription 属性。当出现一个用例特别值得拥有一个独特的角色描述时,这些交互通常可以分解成具有相关角色的更小的部分。

当没有与您小部件的交互模型相对应的语义或 ARIA 小部件角色时,请使用 role="application",提供一个具有人类可读的、作者本地化的自定义角色名称的 aria-roledescription,并使用 aria-describedby 提供用户说明。

AT 可能会自定义和本地化 ARIA 角色的名称。如果您使用 aria-roledescription 来改变角色名称向用户呈现的方式,请记住处理本地化。当页面被本地化时,该值应被翻译。

改变角色向用户呈现的方式不会影响元素的 [功能]。例如,如果一个元素的角色是 regionbutton,当 AT 提供导航到下一个区域或按钮的功能时,如果您分别将 aria-roledescription 设置为 continentescape,AT 仍然会允许这些功能导航到区域和按钮。

再次强调,避免使用 aria-roledescription。在此示例中,escape 对用户没有实际意义,但带有“escape”作为标签的 button 却有。

使用 aria-roledescription 时,还要确保应用它的元素具有有效的 ARIA role 或具有隐式角色语义,并且该值本身不为空,并且包含的不仅仅是空白字符。

使用 aria-brailleroledescription 时,aria-roledescription 是必需的。请注意,通常情况下,只有在 aria-roledescription 在盲文渲染时过于冗长的情况下,才应在极少数情况下使用 aria-brailleroledescription

示例

以下示例显示了 aria-roledescription 的用法,用于指示一个非交互式容器是基于 Web 的演示应用程序中的一个“幻灯片”。

html
<div
  role="article"
  aria-roledescription="slide"
  id="slide"
  aria-labelledby="slideheading">
  <h1 id="slideheading">Quarterly Report</h1>
  <!-- remaining slide contents -->
</div>

在之前的示例中,屏幕阅读器用户可能会听到“季度报告,幻灯片”,而不是不太精确的“季度报告,文章”。

<string>

一个非空字符串,一个不受约束的值类型,包含的不仅仅是空白字符。

相关接口

Element.ariaRoleDescription

Element 接口的一部分 ariaRoleDescription 属性反映了 aria-roledescription 属性的值。

ElementInternals.ariaRoleDescription

ElementInternals 接口的一部分 ariaRoleDescription 属性反映了 aria-roledescription 属性的值。

相关角色

被所有角色和所有基础标记元素支持,但 role="generic" 除外。

规范

规范
无障碍富互联网应用程序 (WAI-ARIA)
# aria-roledescription

另见