blob: 54a438245c8ea807a71d35d449893b016a51d9a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<!DOCTYPE html>
<title>Both focusable and unfocusable custom elements can show validation bubbles</title>
<link rel=help href=https://html.spec.whatwg.org/C/#report-validity-steps>
<focusable-custom-element tabindex="0"></focusable-custom-element>
<script>
class FocusableCustomElement extends HTMLElement {
constructor() {
super();
this.attachShadow({mode: 'open'});
this.shadowRoot.innerHTML = '<input>';
this.elementInternals = this.attachInternals();
const validationAnchor = this.shadowRoot.querySelector('input');
this.elementInternals.setValidity({valueMissing: true}, 'value missing', validationAnchor);
}
static get formAssociated() {
return true;
}
reportValidity() {
this.elementInternals.reportValidity();
}
}
customElements.define('focusable-custom-element', FocusableCustomElement);
document.querySelector('focusable-custom-element').reportValidity();
</script>
|