ARIA 状态及属性
这个页面列出了 MDN 上讨论的所有 WAI-ARIA 属性的参考页面。
ARIA 属性用于修改无障碍树中定义的元素的状态和属性。
备注: ARIA 仅用于修改无障碍树,进而改变辅助技术向用户呈现内容的方式。ARIA 不会改变元素的功能或行为。当使用非语义化的 HTML 元素来实现其他功能时,你必须使用 JavaScript 来控制元素的实际行为、焦点以及 ARIA 状态。
ARIA 特性类别
ARIA 的状态和属性(合称为“特性”)共有 4 类:
-
小部件(widget)特性
aria-autocomplete(en-US)aria-checked(en-US)aria-disabled(en-US)aria-errormessage(en-US)aria-expanded(en-US)aria-haspopup(en-US)aria-hiddenaria-invalid(en-US)aria-labelaria-level(en-US)aria-modal(en-US)aria-multiline(en-US)aria-multiselectable(en-US)aria-orientation(en-US)aria-placeholder(en-US)aria-pressed(en-US)aria-readonly(en-US)aria-required(en-US)aria-selected(en-US)aria-sort(en-US)aria-valuemax(en-US)aria-valuemin(en-US)aria-valuenow(en-US)aria-valuetext(en-US)
-
活动区域特性
-
拖放特性
-
关系特性
aria-activedescendant(en-US)aria-colcount(en-US)aria-colindex(en-US)aria-colspan(en-US)aria-controls(en-US)aria-describedby(en-US)aria-description(en-US)aria-details(en-US)aria-errormessage(en-US)aria-flowto(en-US)aria-labelledbyaria-owns(en-US)aria-posinset(en-US)aria-rowcount(en-US)aria-rowindex(en-US)aria-rowspan(en-US)aria-setsize(en-US)
全局 ARIA 特性
无论是否应用了 ARIA 角色,某些状态和属性始终适用于所有的 HTML 元素。它们被定义为“全局”特性。所有角色和基本标记元素都支持全局状态和属性。
上面所列出的许多特性都是全局的,这意味着除非被“特别禁止”,它们可以被包含在任意的元素中:
aria-atomic(en-US)aria-busy(en-US)aria-controls(en-US)aria-current(en-US)aria-describedby(en-US)aria-description(en-US)aria-details(en-US)aria-disabled(en-US)aria-dropeffect(en-US)aria-errormessage(en-US)aria-flowto(en-US)aria-grabbed(en-US)aria-haspopup(en-US)aria-hiddenaria-invalid(en-US)aria-keyshortcuts(en-US)aria-labelaria-labelledbyaria-live(en-US)aria-owns(en-US)aria-relevant(en-US)aria-roledescription(en-US)
除了 aria-label 和 aria-labelledby 这两个被“特别禁止”的属性,其他属性是全局适用的。这两个被“特别禁止”的属性无法在具有 presentation (en-US) 角色或与其同义的 none (en-US) 角色的元素上使用。
MDN 上介绍的状态和属性
以下是 MDN 上介绍的 WAI-ARIA 状态和属性。
- Using the aria-labelledby attribute
aria-labelledby属性用来表明某些元素的 id 是某一对象的标签。它被用来确定控件或控件组与它们标签之间的联系。使用诸如屏幕阅读器等辅助技术的用户通常使用 tabbing 在页面的不同区域间进行导航。如果一个输入元素、控件或控件组没有被分配一个 label 标签,那么屏幕阅读器就无法对其进行阅读。本文用来说明如何使用 aria-hidden 属性。aria-hidden 属性可以用来控制一系列可访问 API 中的非交互内容的显示或隐藏。
- 使用 aria-label 属性
aria-label 属性用来给当前元素加上的标签描述,接受字符串作为参数。是用不可视的方式给元素加 label(如果被描述元素存在真实的描述元素,可使用 aria-labelledby 属性作为来绑定描述元素和被描述元素来代替)。