ElementInternals
ElementInternals
是 文档对象模型 的一个接口,它为 Web 开发人员提供了一种方法,使自定义元素能够完全参与 HTML 表单。它提供了与这些元素交互的实用程序,就像处理任何标准 HTML 表单元素一样,并且还将 可访问性对象模型 公开给该元素。
构造函数
此接口没有构造函数。调用 HTMLElement.attachInternals()
时会返回一个 ElementInternals
对象。
实例属性
ElementInternals.shadowRoot
只读-
返回与此元素关联的
ShadowRoot
对象。 ElementInternals.form
只读-
返回与此元素关联的
HTMLFormElement
对象。 ElementInternals.states
只读-
返回与此元素关联的
CustomStateSet
对象。 ElementInternals.willValidate
只读-
一个布尔值,如果元素是可提交的元素并且是 约束验证 的候选项,则返回 true。
ElementInternals.validity
只读-
返回一个
ValidityState
对象,该对象表示元素在约束验证方面可以处于的不同有效性状态。 ElementInternals.validationMessage
只读-
包含此元素验证消息的字符串。
ElementInternals.labels
只读-
返回与此元素关联的所有标签元素的
NodeList
。
包含自 ARIA 的实例属性
ElementInternals
接口还包括以下属性。
注意:这些属性包含在内是为了能够在自定义元素上定义默认的可访问性语义。这些属性可能会被作者定义的属性覆盖,但确保在作者删除这些属性或根本未添加这些属性时保留默认语义。有关更多信息,请参阅 可访问性对象模型说明。
ElementInternals.ariaAtomic
-
反映
aria-atomic
属性的字符串,该属性指示辅助技术是根据aria-relevant
属性定义的更改通知呈现更改区域的所有部分还是仅呈现部分内容。 ElementInternals.ariaAutoComplete
-
反映
aria-autocomplete
属性的字符串,该属性指示输入文本是否会触发显示一个或多个用户对组合框、搜索框或文本框的预期值的预测,并指定如果进行了预测,将如何呈现这些预测。 ElementInternals.ariaBusy
-
反映
aria-busy
属性的字符串,该属性指示元素是否正在修改,因为辅助技术可能希望等到修改完成后再将其公开给用户。 ElementInternals.ariaChecked
-
反映
aria-checked
属性的字符串,该属性指示复选框、单选按钮和其他具有选中状态的小部件的当前“选中”状态。 ElementInternals.ariaColCount
-
反映
aria-colcount
属性的字符串,该属性定义表、网格或树状网格中的列数。 ElementInternals.ariaColIndex
-
反映
aria-colindex
属性的字符串,该属性定义元素的列索引或相对于表、网格或树状网格中总列数的位置。 ElementInternals.ariaColIndexText
-
反映
aria-colindextext
属性的字符串,该属性定义 aria-colindex 的人类可读文本替代项。 ElementInternals.ariaColSpan
-
反映
aria-colspan
属性的字符串,该属性定义表、网格或树状网格中单元格或网格单元格所跨越的列数。 ElementInternals.ariaCurrent
-
反映
aria-current
属性的字符串,该属性指示表示容器或一组相关元素中当前项目的元素。 ElementInternals.ariaDescription
-
反映
aria-description
属性的字符串,该属性定义描述或注释当前 ElementInternals 的字符串值。 ElementInternals.ariaDisabled
-
反映
aria-disabled
属性的字符串,该属性指示元素是可感知的但已禁用,因此不可编辑或无法操作。 ElementInternals.ariaExpanded
-
反映
aria-expanded
属性的字符串,该属性指示此元素拥有或控制的分组元素是展开还是折叠。 ElementInternals.ariaHasPopup
-
反映
aria-haspopup
属性的字符串,该属性指示可通过 ElementInternals 触发的交互式弹出元素(如菜单或对话框)的可用性和类型。 -
反映
aria-hidden
属性的字符串,该属性指示元素是否公开给可访问性 API。 ElementInternals.ariaKeyShortcuts
-
反映
aria-keyshortcuts
属性的字符串,该属性指示作者为激活或将焦点赋予 ElementInternals 而实现的键盘快捷键。 ElementInternals.ariaLabel
-
反映
aria-label
属性的字符串,该属性定义标记当前 ElementInternals 的字符串值。 ElementInternals.ariaLevel
-
反映
aria-level
属性的字符串,该属性定义元素在结构中的层次结构级别。 ElementInternals.ariaLive
-
反映
aria-live
属性的字符串,该属性指示元素将被更新,并描述用户代理、辅助技术和用户可以从活动区域获得的更新类型。 ElementInternals.ariaModal
-
反映
aria-modal
属性的字符串,该属性指示元素在显示时是否为模态。 ElementInternals.ariaMultiline
-
反映
aria-multiline
属性的字符串,该属性指示文本框是否接受多行输入或仅接受单行输入。 ElementInternals.ariaMultiSelectable
-
反映
aria-multiselectable
属性的字符串,该属性指示用户是否可以从当前可选择的子元素中选择多个项目。 ElementInternals.ariaOrientation
-
一个字符串,反映了
aria-orientation
属性,该属性指示元素的方向是水平、垂直还是未知/模糊的。 ElementInternals.ariaPlaceholder
-
一个字符串,反映了
aria-placeholder
属性,该属性定义了一个简短的提示,用于在控件没有值时帮助用户进行数据输入。 ElementInternals.ariaPosInSet
-
一个字符串,反映了
aria-posinset
属性,该属性定义了元素在当前列表项或树项集中 的编号或位置。 ElementInternals.ariaPressed
-
一个字符串,反映了
aria-pressed
属性,该属性指示切换按钮的当前“按下”状态。 ElementInternals.ariaReadOnly
-
一个字符串,反映了
aria-readonly
属性,该属性指示元素不可编辑,但其他方面可操作。 ElementInternals.ariaRelevant
非标准-
一个字符串,反映了
aria-relevant
属性,该属性指示用户代理在活动区域内的辅助功能树修改时将触发哪些通知。这用于描述活动区域aria-live
中哪些变化是相关的,应该被宣布。 ElementInternals.ariaRequired
-
一个字符串,反映了
aria-required
属性,该属性指示在提交表单之前,元素上需要用户输入。 ElementInternals.role
-
一个包含 ARIA 角色的字符串。ARIA 角色的完整列表可以在ARIA 技术页面上找到。
ElementInternals.ariaRoleDescription
-
一个字符串,反映了
aria-roledescription
属性,该属性为元素的角色定义了一个人类可读的、作者本地化的描述。 ElementInternals.ariaRowCount
-
一个字符串,反映了
aria-rowcount
属性,该属性定义了表格、网格或树形网格中的总行数。 ElementInternals.ariaRowIndex
-
一个字符串,反映了
aria-rowindex
属性,该属性定义了元素相对于表格、网格或树形网格中总行数的行索引或位置。 ElementInternals.ariaRowIndexText
-
一个字符串,反映了
aria-rowindextext
属性,该属性定义了 aria-rowindex 的人类可读文本替代。 ElementInternals.ariaRowSpan
-
一个字符串,反映了
aria-rowspan
属性,该属性定义了表格、网格或树形网格中单元格或网格单元格所跨越的行数。 ElementInternals.ariaSelected
-
一个字符串,反映了
aria-selected
属性,该属性指示具有选中状态的元素的当前“选中”状态。 ElementInternals.ariaSetSize
-
一个字符串,反映了
aria-setsize
属性,该属性定义了当前列表项或树项集中项目的数量。 ElementInternals.ariaSort
-
一个字符串,反映了
aria-sort
属性,该属性指示表格或网格中的项目是否按升序或降序排序。 ElementInternals.ariaValueMax
-
一个字符串,反映了
aria-valueMax
属性,该属性定义了范围控件允许的最大值。 ElementInternals.ariaValueMin
-
一个字符串,反映了
aria-valueMin
属性,该属性定义了范围控件允许的最小值。 ElementInternals.ariaValueNow
-
一个字符串,反映了
aria-valueNow
属性,该属性定义了范围控件的当前值。 ElementInternals.ariaValueText
-
一个字符串,反映了
aria-valuetext
属性,该属性定义了范围控件的 aria-valuenow 的人类可读文本替代。
实例方法
ElementInternals.setFormValue()
-
设置元素的提交值和状态,并将这些值传达给用户代理。
ElementInternals.setValidity()
-
设置元素的有效性。
ElementInternals.checkValidity()
-
检查元素是否满足应用于它的任何约束验证规则。
ElementInternals.reportValidity()
-
检查元素是否满足应用于它的任何约束验证规则,并将验证消息发送给用户代理。
示例
以下示例演示了如何使用HTMLElement.attachInternals
创建自定义表单关联元素。
class CustomCheckbox extends HTMLElement {
static formAssociated = true;
constructor() {
super();
this.internals_ = this.attachInternals();
}
// …
}
window.customElements.define("custom-checkbox", CustomCheckbox);
let element = document.createElement("custom-checkbox");
let form = document.createElement("form");
// Append element to form to associate it
form.appendChild(element);
console.log(element.internals_.form);
// expected output: <form><custom-checkbox></custom-checkbox></form>
规范
规范 |
---|
HTML 标准 # the-elementinternals-interface |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。