ARIA:计量器角色

meter 角色用于标识用作计量器的元素。

注意: 尽可能,建议您使用本机 <meter> 元素而不是 meter 角色,因为本机元素在用户代理和辅助技术的支持范围更广。

描述

计量器是定义范围内数值的图形显示。例如,显示电池百分比。计量器不适合没有有意义的最大限制的值。计量器不应用于指示进度(例如加载),这应该通过 <progress> 元素进行通信。

每个具有 role="meter" 的元素也必须具有以下之一

所有后代都是演示性的

某些类型的用户界面组件在平台无障碍 API 中表示时只能包含文本。无障碍 API 无法表示 meter 中包含的语义元素。为了解决此限制,浏览器会自动将角色 presentation 应用于任何 meter 元素的所有后代元素,因为这是一个不支持语义子元素的角色。

例如,考虑以下 meter 元素,其中包含一个标题。

html
<div role="meter"><h3>Title of my meter</h3></div>

由于 meter 的后代是演示性的,因此以下代码等效

html
<div role="meter"><h3 role="presentation">Title of my meter</h3></div>

从辅助技术用户的角度来看,标题不存在,因为前面的代码段在 无障碍树 中等效于以下代码。

html
<div role="meter">Title of my meter</div>

关联的 ARIA 角色、状态和属性

aria-valuenow

设置为 aria-valueminaria-valuemax 之间的十进制值,表示计量器的当前值。

aria-valuetext

辅助技术通常将 aria-valuenow 的值呈现为百分比。如果这样做不准确,请使用此属性使计量器值可理解。

aria-valuemin

设置为表示最小值的十进制值,且小于 aria-valuemax

aria-valuemax

设置为表示最大值的十进制值,且大于 aria-valuemin

建议您使用本机 <meter> 元素,而不是 meter 角色。用户代理根据当前 valueminmax 值的关系,为 <meter> 元素提供一个样式化的窗口小部件。当使用非语义元素时,需要使用 ARIA 属性、JavaScript 和 CSS 重新创建本机语义元素的所有功能。

示例

使用 role="meter" 的计量器示例

html
<div
  role="meter"
  aria-valuenow="90"
  aria-valuemin="0"
  aria-valuemax="100"
  aria-labelledby="cpu_usage_label">
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" style="width: 90%">
    <rect x="0" y="0" width="100%" height="100%" fill="currentcolor"></rect>
  </svg>
</div>

在上述场景中,当 aria-valuenow 值更新时,SVG 的宽度也需要更新,如 W3C 工作计量器示例 所示。

规范

规范
可访问的富互联网应用程序 (WAI-ARIA)
# 计量器

另请参阅