JSPM

@catherineorg/kwc-aria-reflection

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q48403F
  • License MIT

ARIA element reflection polyfill for strings

Package Exports

  • @catherineorg/kwc-aria-reflection
  • @catherineorg/kwc-aria-reflection/dist/index.cjs.js
  • @catherineorg/kwc-aria-reflection/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@catherineorg/kwc-aria-reflection) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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

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

Usage

npm install @catherineorg/kwc-aria-reflection
import '@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.