@polymer/iron-a11y-keys-behavior

WebJar for @polymer/iron-a11y-keys-behavior

License

License

BSD 3-Clause
Categories

Categories

KeY Data Data Formats Formal Verification
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

polymer__iron-a11y-keys-behavior
Last Version

Last Version

3.0.1
Release Date

Release Date

Type

Type

jar
Description

Description

@polymer/iron-a11y-keys-behavior
WebJar for @polymer/iron-a11y-keys-behavior
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/PolymerElements/iron-a11y-keys-behavior

Download polymer__iron-a11y-keys-behavior

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/polymer__iron-a11y-keys-behavior/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>polymer__iron-a11y-keys-behavior</artifactId>
    <version>3.0.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/polymer__iron-a11y-keys-behavior/
implementation 'org.webjars.npm:polymer__iron-a11y-keys-behavior:3.0.1'
// https://jarcasting.com/artifacts/org.webjars.npm/polymer__iron-a11y-keys-behavior/
implementation ("org.webjars.npm:polymer__iron-a11y-keys-behavior:3.0.1")
'org.webjars.npm:polymer__iron-a11y-keys-behavior:jar:3.0.1'
<dependency org="org.webjars.npm" name="polymer__iron-a11y-keys-behavior" rev="3.0.1">
  <artifact name="polymer__iron-a11y-keys-behavior" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='polymer__iron-a11y-keys-behavior', version='3.0.1')
)
libraryDependencies += "org.webjars.npm" % "polymer__iron-a11y-keys-behavior" % "3.0.1"
[org.webjars.npm/polymer__iron-a11y-keys-behavior "3.0.1"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : polymer__polymer jar [3.0.0,4)

Project Modules

There are no modules declared in this project.

Published on NPM Build status Published on webcomponents.org

<iron-a11y-keys-behavior>

Polymer.IronA11yKeysBehavior provides a normalized interface for processing keyboard commands that pertain to WAI-ARIA best practices. The element takes care of browser differences with respect to Keyboard events and uses an expressive syntax to filter key presses.

See: Documentation, Demo.

Usage

Installation

npm install --save @polymer/iron-a11y-keys-behavior

In a Polymer 3 element

import {PolymerElement, html} from '@polymer/polymer';
import {mixinBehaviors} from '@polymer/polymer/lib/legacy/class.js';
import {IronA11yKeysBehavior} from '@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.js';

class SampleElement extends  extends mixinBehaviors([IronA11yKeysBehavior], PolymerElement) {
  static get template() {
    return html`
      <pre>[[pressed]]</pre>
    `;
  }

  static get properties() {
    return {
      pressed: {type: String, readOnly: true, value: ''},
      keyBindings: {
        'space': '_onKeydown', // same as 'space:keydown'
        'shift+tab': '_onKeydown',
        'enter:keypress': '_onKeypress',
        'esc:keyup': '_onKeyup'
      }
    }
  }

  function _onKeydown: function(event) {
    console.log(event.detail.combo); // KEY+MODIFIER, e.g. "shift+tab"
    console.log(event.detail.key); // KEY only, e.g. "tab"
    console.log(event.detail.event); // EVENT, e.g. "keydown"
    console.log(event.detail.keyboardEvent); // the original KeyboardEvent
  }
}
customElements.define('sample-element', SampleElement);

Contributing

If you want to send a PR to this element, here are the instructions for running the tests and demo locally:

Installation

git clone https://github.com/PolymerElements/iron-a11y-keys-behavior
cd iron-a11y-keys-behavior
npm install
npm install -g polymer-cli

Running the demo locally

polymer serve --npm
open http://127.0.0.1:<port>/demo/

Running the tests

polymer test --npm
org.webjars.npm

Versions

Version
3.0.1
3.0.0-pre.8
3.0.0