Nervous Parrot Muttering

    @polymer/iron-a11y-keys-behavior
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    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

    Install

    npm i @polymer/iron-a11y-keys-behavior

    DownloadsWeekly Downloads

    42,596

    Version

    3.0.1

    License

    BSD-3-Clause

    Unpacked Size

    29.4 kB

    Total Files

    9

    Last publish

    Collaborators

    • aomarks
    • emarquez
    • sorvell
    • bicknellr
    • usergenic
    • polymer-devs
    • azakus
    • kevinpschaaf
    • justinfagnani