jQuery collection plugin that implements one or two dimensional roving tabindex keyboard navigation
npm install jquery-roving-tabindexjQuery collection plugin that implements one or two dimensional roving keyboard tabindex on the items of a widget.
``js`
$(widgetSelector).rovingTabindex(rovingItemsSelector, [options]);
`js`
npm install jquery-roving-tabindex
HTML:
`html`
Execute plugin:
`js`
$('[role=tablist]').rovingTabindex('[role=tab]');
Output:
`html`
First down arrow key will update DOM to:
`html`
Next down arrow key will update DOM to:
`html`
To listen for roving tabindex changes:
`js`
$('.widget').on('rovingTabindexChange', 'li', function(e, data) {
// this = new roving tab li element
// data = {fromIndex: n, toIndex: n}
});
HTML:
`html`
Execute plugin:
`js`
$('.widget').rovingTabindex('td', {isGrid: true});
* rovingItemsSelector: selector that identifies the descendant collection that requires a roving tab indexoptions.activeIndex
* : index of the item that receives tabindex on init (default: 0)options.autoFocus
* : set focus when roving tabindex changes (default: true)options.autoInit
* : set initial tabindex state (but not focus) when plugin executes (default: true)options.autoReset
* : reset tabindex state when focus exits widget (default: false)options.autoWrap
* : reaching end of collection will wrap back to beginning, and vice versa (default: false)options.axis
* : x, y or both (default: 'both')options.disableHomeAndEndKeys
* : disable HOME and END key functionality (default: false)options.isGrid
* : specify two-dimensional navigation (default: false)
* rovingTabindexChange : fired when collection's roving tabindex changes
* domChange : trigger on widget when underlying dom changes. For example, new roving items are added.
* jquery
* jquery-linear-navigation
* jquery-grid-navigation
* jquery-prevent-scroll-keys
Useful NPM task runners:
* npm start for local browser-sync development.npm test
* runs tests & generates reports (see reports section below)npm run tdd
* test driven development: watches code and re-tests after any changenpm run build
* cleans, lints, tests and minifies
Execute npm run to view all available CLI scripts.
https://travis-ci.org/makeup-jquery/jquery-roving-tabindex
https://coveralls.io/github/makeup-jquery/jquery-roving-tabindex?branch=master
Local test reports are generated under test_reports folder.
Local JSDocs are generated under jsdoc` folder.