@catherineorg/kwc-aria-reflection
v1.0.2
Published
ARIA element reflection polyfill for strings
Downloads
18
Maintainers
Readme
@catherineorg/kwc-aria-reflection
Note: use this code at your own risk. It is optimized for backwards-compatibility, not as a forward-looking polyfill that keeps up to date with web standards.
Polyfill for ARIA string reflection on Elements. This is part of the Accessibility Object Model (AOM).
For example:
element.setAttribute('aria-pressed', 'true');
console.log(element.ariaPressed); // true
element.ariaPressed = false;
console.log(element.getAttribute('aria-pressed')); // falseNote that the attribute aria-pressed is reflected to the property ariaPressed, and vice versa.
Usage
npm install @catherineorg/kwc-aria-reflectionimport '@catherineorg/kwc-aria-reflection';The polyfill is applied globally to Element.prototype as soon as the module is imported.
Implementation
The polyfill patches these standard property/attribute reflections:
| Property | Attribute |
| ---------------------------- | ----------------------------- |
| ariaAtomic | aria-atomic |
| ariaAutoComplete | aria-autocomplete |
| ariaBrailleLabel | aria-braillelabel |
| ariaBrailleRoleDescription | aria-brailleroledescription |
| ariaBusy | aria-busy |
| ariaChecked | aria-checked |
| ariaColCount | aria-colcount |
| ariaColIndex | aria-colindex |
| ariaColIndexText | aria-colindextext |
| ariaColSpan | aria-colspan |
| ariaCurrent | aria-current |
| ariaDescription | aria-description |
| ariaDisabled | aria-disabled |
| ariaExpanded | aria-expanded |
| ariaHasPopup | aria-haspopup |
| ariaHidden | aria-hidden |
| ariaInvalid | aria-invalid |
| ariaKeyShortcuts | aria-keyshortcuts |
| ariaLabel | aria-label |
| ariaLevel | aria-level |
| ariaLive | aria-live |
| ariaModal | aria-modal |
| ariaMultiLine | aria-multiline |
| ariaMultiSelectable | aria-multiselectable |
| ariaOrientation | aria-orientation |
| ariaPlaceholder | aria-placeholder |
| ariaPosInSet | aria-posinset |
| ariaPressed | aria-pressed |
| ariaReadOnly | aria-readonly |
| ariaRelevant | aria-relevant |
| ariaRequired | aria-required |
| ariaRoleDescription | aria-roledescription |
| ariaRowCount | aria-rowcount |
| ariaRowIndex | aria-rowindex |
| ariaRowIndexText | aria-rowindextext |
| ariaRowSpan | aria-rowspan |
| ariaSelected | aria-selected |
| ariaSetSize | aria-setsize |
| ariaSort | aria-sort |
| ariaValueMax | aria-valuemax |
| ariaValueMin | aria-valuemin |
| ariaValueNow | aria-valuenow |
| ariaValueText | aria-valuetext |
| role | role |
As well as these non-standard reflections:
| Property | Attribute |
| ---------------------- | ----------------------- |
| ariaActiveDescendant | aria-activedescendant |
| ariaControls | aria-controls |
| ariaDescribedBy | aria-describedby |
| ariaDetails | aria-details |
| ariaErrorMessage | aria-errormessage |
| ariaFlowTo | aria-flowto |
| ariaLabelledBy | aria-labelledby |
| ariaOwns | aria-owns |
To determine which browsers support ARIA reflection, see the relevant Web Platform Tests for ARIA string reflection and ARIA element reflection.
