H5P Library - Controls
Getting started
Grab all the module:
npm i --save-development h5p-lib-controls
Run tests:
npm test
Build distribution
npm run build
Usage
Keyboard navigation
To get keyboard navigation using arrow keys between elements you can do the following:
import Controls from 'h5p-lib-controls/src/scripts/controls';
import UIKeyboard from 'h5p-lib-controls/src/scripts/ui/keyboard';
const controls = new Controls([new UIKeyboard()]);
controls.on('select', event => console.log('user selected element', event.element));
controls.on('close', event => console.log('perform closing action'));
Moving [aria-selected]
import Controls from 'h5p-lib-controls/src/scripts/controls';
import UIKeyboard from 'h5p-lib-controls/src/scripts/ui/keyboard';
import AriaSelected from 'h5p-lib-controls/src/scripts/aria/selected';
const controls = new Controls([new UIKeyboard(), new AriaSelected()]);
Drag and drop
import Controls from 'h5p-lib-controls/src/scripts/controls';
import AriaDrag from 'h5p-lib-controls/src/scripts/aria/drag';
import AriaDrop from 'h5p-lib-controls/src/scripts/aria/drop';
import UIKeyboard from 'h5p-lib-controls/src/scripts/ui/keyboard';
const dragControls = new Controls([new UIKeyboard(), new AriaDrag()]);
const dropControls = new Controls([new UIKeyboard(), new AriaDrop()]);
Using negative tabindex
By default h5p-lib-controls will remove [tabindex]
from the elements that are not selected. If you instead want to use [tabindex="-1"]
, you can do the following:
const controls = new Controls([new UIKeyboard()]);
controls.useNegativeTabIndex();
...