Polymer 2.0 pitfalls: key bindings (Accessibility)

How to add key bindings with ES6 class elements

Ronny Roeller
NEXT Engineering
1 min readJun 23, 2017

--

Over the course of the last weeks, we migrated a couple of large applications from Polymer 1 to Polymer 2. Although most of the migration work was rather mechanical, making key bindings work turned out to be non-trivial.

Elements can bind functions to keys with the Polymer’s IronA11yKeysBehavior, e.g. trigger saving when the user presses <ctrl+enter>.

There is currently no Polymer 2 mixin but the old behavior can be used via the legacy bridge:

class MyElement extends Polymer.mixinBehaviors([
Polymer.IronA11yKeysBehavior,
],
Polymer.Element) {
static get is() { return 'my-element'; } get keyBindings() {
return {
'enter': '_onSearch',
};
}
_search() {
// Let's search
}
}

Beware: It’s essential to define the keyBindings() method not as static!

Happy coding!

Want to learn more about Polymer? Have a look to all our Medium posts on Polymer.

Photo: Paul Scott

--

--

Ronny Roeller
NEXT Engineering

CTO at nextapp.co # Product discovery platform for high performing teams that bring their customers into every decision