Widely available すべての主要ブラウザで対応済み。安心して使用可能。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
77
79
93
16.4
77
16.4

checkValidity() は ElementInternals インタフェイスのメソッドで、要素が適用された制約検証のルールを満たしているかどうかをチェックします。

77
79
98
16.4
77
16.4

form は ElementInternals インターフェイスの読み取り専用プロパティで、この要素に関連付けられた HTMLFormElement を返します。

77
79
98
16.4
77
16.4

labels は ElementInternals インターフェイスのプロパティで、要素に関連付けられたラベルを返します。

77
79
98
16.4
77
16.4

reportValidity() は ElementInternals インターフェイスのメソッドで、適用された制約検証ルールをこの要素が満たしているかどうかをチェックします。

77
79
98
16.4
77
16.4

setFormValue() は ElementInternals インターフェイスのメソッドで、このメソッドは、要素の送信値と状態を設定し、これらをユーザーエージェントに伝えます。

77
79
98
16.4
77
16.4

setValidity() は ElementInternals インターフェイスのメソッドで、この要素の妥当性を設定します。

77
79
98
16.4
77
16.4

validationMessage は ElementInternals インターフェイスの読み取り専用プロパティで、この要素の検証メッセージを返します。

77
79
98
16.4
77
16.4

validity は ElementInternals インターフェイスの読み取り専用プロパティで、制約検証に関して要素が取り得るさまざまな検証状態を表す ValidityState オブジェクトを返します。

77
79
98
16.4
77
16.4

willValidate は ElementInternals インターフェイスの読み取り専用プロパティで、この要素が制約検証の候補である送信可能要素である場合に true を返します。

77
79
98
16.4
77
16.4

HTMLElement.attachInternals() メソッドは、 ElementInternals オブジェクトを返します。このメソッドにより、カスタム要素が HTML フォームに参加することができるようになります。 ElementInternals インターフェイスは、標準的な HTML フォーム要素と同じようにこれらの要素を扱うためのユーティリティを提供し、また、要素に対してアクセシビリティオブジェクトモデルを公開します。

77
79
93
16.4
77
16.4
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)

基本構文

JAVASCRIPT
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>

実務での使いどころ

  • Form-associated custom elements の活用

    ElementInternals は Document Object Model のインターフェイスで、カスタム要素を HTML フォームに完全に参加させる方法をウェブ開発者に提供します。

注意点

  • 古いブラウザでは対応していない場合がある。

実装メモ

  • 一部の API はセキュアコンテキスト (HTTPS) やユーザー操作起点を必要とする。利用前に要件を確認すること。