Skip to content

Commit

Permalink
Add ARIA role, state and properties to ElementInternals
Browse files Browse the repository at this point in the history
Adds a way to set default ARIA role, state & properties for custom
elements through ElementInternals. These can be overridden with setting
the ARIA attributes on the element directly.

See whatwg/html#4658 for spec PR.

Change-Id: I0caf6bc302445e48f4e0324513105eba3d6303a6
  • Loading branch information
rakina authored and chromium-wpt-export-bot committed Aug 7, 2019
1 parent fd22d04 commit 537a79e
Showing 1 changed file with 78 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<!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",
"ariaActiveDescendant",
"ariaAtomic",
"ariaAutoComplete",
"ariaBusy",
"ariaChecked",
"ariaColCount",
"ariaColIndex",
"ariaColSpan",
"ariaControls",
"ariaCurrent",
"ariaDescribedBy",
"ariaDetails",
"ariaDisabled",
"ariaErrorMessage",
"ariaExpanded",
"ariaFlowTo",
"ariaHasPopup",
"ariaHidden",
"ariaKeyShortcuts",
"ariaLabel",
"ariaLabelledBy",
"ariaLevel",
"ariaLive",
"ariaModal",
"ariaMultiLine",
"ariaMultiSelectable",
"ariaOrientation",
"ariaOwns",
"ariaPlaceholder",
"ariaPosInSet",
"ariaPressed",
"ariaReadOnly",
"ariaRelevant",
"ariaRequired",
"ariaRoleDescription",
"ariaRowCount",
"ariaRowIndex",
"ariaRowSpan",
"ariaSelected",
"ariaSort",
"ariaValueMax",
"ariaValueMin",
"ariaValueNow",
"ariaValueText"
];
for (const property of properties) {
test(() => {
assert_inherits(element.internals, property);
}, property + " is defined in ElementInternals");
}
</script>

0 comments on commit 537a79e

Please sign in to comment.