Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
- /custom-elements/ElementInternals-accessibility.html - WPT Dashboard Interop Dashboard
<!DOCTYPE HTML>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
class TestElement extends HTMLElement {
constructor() {
super();
this._internals = this.attachInternals();
}
get internals() {
return this._internals;
}
set internals(val) {
throw "Can't set internals!";
}
}
customElements.define("test-element", TestElement);
</script>
<test-element id= "testElement"></test-element>
<script>
const element = document.getElementById("testElement");
const properties = [
"role",
"ariaActiveDescendantElement",
"ariaAtomic",
"ariaAutoComplete",
"ariaBrailleLabel",
"ariaBrailleRoleDescription",
"ariaBusy",
"ariaChecked",
"ariaColCount",
"ariaColIndex",
// "ariaColIndexText", // tentative -> ElementInternals-accessibility.tentative.html
"ariaColSpan",
"ariaControlsElements",
"ariaCurrent",
"ariaDescribedByElements",
// "ariaDescription", // tentative -> ElementInternals-accessibility.tentative.html
"ariaDetailsElements",
"ariaDisabled",
"ariaErrorMessageElements",
"ariaExpanded",
"ariaFlowToElements",
"ariaHasPopup",
"ariaHidden",
"ariaInvalid",
"ariaKeyShortcuts",
"ariaLabel",
"ariaLabelledByElements",
"ariaLevel",
"ariaLive",
"ariaModal",
"ariaMultiLine",
"ariaMultiSelectable",
"ariaOrientation",
"ariaOwnsElements",
"ariaPlaceholder",
"ariaPosInSet",
"ariaPressed",
"ariaReadOnly",
"ariaRelevant",
"ariaRequired",
"ariaRoleDescription",
"ariaRowCount",
"ariaRowIndex",
// "ariaRowIndexText", // tentative -> ElementInternals-accessibility.tentative.html
"ariaRowSpan",
"ariaSelected",
"ariaSetSize",
"ariaSort",
"ariaValueMax",
"ariaValueMin",
"ariaValueNow",
"ariaValueText"
];
for (const property of properties) {
test(() => {
assert_inherits(element.internals, property);
}, property + " is defined in ElementInternals");
}
test(() => assert_false('ariaErrorMessageElement' in element.internals), 'ariaErrorMessageElement is not defined in ElementInternals')
</script>