A basic element implementation of iron-a11y-keys-behavior
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.github cleanup deps Jul 19, 2018
demo fix demo Jul 19, 2018
test review comments Jul 30, 2018
.gitignore Tedium automated v3 element updates. Aug 17, 2018
.travis.yml Only generate types once on Travis Sep 7, 2018
README.md review comments Jul 30, 2018
bower.json Add `bower.json` so that webcomponents.org can read the repo. Sep 14, 2018
formatconfig.json Fix formatconfig.json Aug 8, 2018
manifest.json auto-converted by polymer-modulizer Jun 23, 2018
package-lock.json 3.0.1 Sep 14, 2018
package.json 3.0.1 Sep 14, 2018
wct.conf.json Update WCT config Jun 7, 2018


Published on NPM Build status Published on webcomponents.org


iron-a11y-keys provides a cross-browser interface for processing keyboard commands. The interface adheres to WAI-ARIA best practices. It uses an expressive syntax to filter key presses.

See: Documentation, Demo.



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

In an html file

    <script type="module">
      import '@polymer/iron-a11y-keys/iron-a11y-keys.js';
    <iron-a11y-keys id="keys" keys="left right down up"></iron-a11y-keys>

      // Where to listen for the keys.
      keys.target = document.body;
      keys.addEventListener('keys-pressed', function(event) {

In a Polymer 3 element

import {PolymerElement, html} from '@polymer/polymer';
import '@polymer/iron-a11y-keys/iron-a11y-keys.js';

class SampleElement extends PolymerElement {
  static get properties() {
    return {
      target: {
        type: Object,
        value: function() {
          return this.$.input;

  static get template() {
    return html`
      <iron-a11y-keys id="a11y"
          target="[[target]]" keys="enter"
      <input id="input" placeholder="Type something. Press enter. Check console.">

  function onEnter() {
customElements.define('sample-element', SampleElement);


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


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

Running the demo locally

polymer serve --npm

Running the tests

polymer test --npm