@jmsjtu/aria-reflection
TypeScript icon, indicating that this package has built-in type declarations

0.0.0-demo • Public • Published

@jmsjtu/aria-reflection

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')); // false

Note that the attribute aria-pressed is reflected to the property ariaPressed, and vice versa.

Usage

npm install @jmsjtu/aria-reflection
import { applyAriaReflection } from '@jmsjtu/aria-reflection';

applyAriaReflection();

The polyfill is applied as soon as the function is executed.

Optionally, you can pass in a custom prototype:

applyAriaReflection(MyCustomElement.prototype);

By default, the polyfill is applied to the global Element.prototype.

Implementation

The polyfill patches these standard properties:

  • ariaAtomic
  • ariaAutoComplete
  • ariaBusy
  • ariaChecked
  • ariaColCount
  • ariaColIndex
  • ariaColSpan
  • ariaCurrent
  • ariaDisabled
  • ariaExpanded
  • ariaHasPopup
  • ariaHidden
  • ariaInvalid
  • ariaKeyShortcuts
  • ariaLabel
  • ariaLevel
  • ariaLive
  • ariaModal
  • ariaMultiLine
  • ariaMultiSelectable
  • ariaOrientation
  • ariaPlaceholder
  • ariaPosInSet
  • ariaPressed
  • ariaReadOnly
  • ariaRelevant
  • ariaRequired
  • ariaRoleDescription
  • ariaRowCount
  • ariaRowIndex
  • ariaRowSpan
  • ariaSelected
  • ariaSetSize
  • ariaSort
  • ariaValueMax
  • ariaValueMin
  • ariaValueNow
  • ariaValueText
  • role

As well as these currently non-standard properties:

  • ariaActiveDescendant
  • ariaControls
  • ariaDescribedBy
  • ariaDetails
  • ariaErrorMessage
  • ariaFlowTo
  • ariaLabelledBy
  • ariaOwns

To determine which browsers already support ARIA reflection, see this test.

Package Sidebar

Install

npm i @jmsjtu/aria-reflection

Homepage

lwc.dev/

Weekly Downloads

2

Version

0.0.0-demo

License

MIT

Unpacked Size

8.2 kB

Total Files

7

Last publish

Collaborators

  • jmsjtu