Skip to content
Implements a roving tab index on a given collection of elements
JavaScript
Branch: master
Clone or download

Latest commit

Latest commit a79018a Feb 27, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
src
test
.eslintrc
.gitignore
.npmrc
.travis.yml
LICENSE
README.md
babel.config.json
browser.json
index.js
karma.conf.js
package.json
webpack.docs.js
yarn.lock

README.md

makeup-roving-tabindex

Build Status Coverage Status Dependency status devDependency status

Implements a roving tab index on given collection of elements

A vanilla JavaScript port of jquery-roving-tabindex.

Experimental

This CommonJS module is still in an experimental state, until it reaches v1.0.0 you must consider all minor releases as breaking changes. Patch releases may introduce new features, but will be backwards compatible.

Install

// via npm
npm install makeup-roving-tabindex

// via yarn
yarn add makeup-roving-tabindex

Example

// require the module
const RovingTabindex = require('makeup-roving-tabindex');

// get an element reference
const widgetEl = document.querySelector('.widget');

// create a roving tabindex instance on the element
const rovingTabindex = RovingTabindex.createLinear(widgetEl, 'li');

// listen for events (optional)
widgetEl.addEventListener('rovingTabindexChange', function(e) {
    // console.log(e.detail);
})

Markup before:

<div class="widget">
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</div>

Markup after:

<div class="widget">
    <ul>
        <li data-makeup-index="0" tabindex="0">Item 1</li>
        <li data-makeup-index="1" tabindex="-1">Item 2</li>
        <li data-makeup-index="2" tabindex="-1">Item 3</li>
    </ul>
</div>

Options

  • autoReset: the index position that should receive the roving tabindex when model is reset (default: null)
  • index: the initial index position of the roving tabindex (default: 0)
  • wrap : specify whether arrow keys should wrap/loop (default: false)
  • axis : specify 'x' for left/right arrow keys, 'y' for up/down arrow keys, or 'both' (default: 'both')

Properties

  • filteredItems: returns filtered items (e.g. non-hidden items)
  • index: the index position of the roving tabindex (i.e. the element with tabindex="0")
  • items: returns all items that match item selector

Methods

  • reset: will force a reset to the value specified by autoReset
  • destroy: destroys all event listeners

Custom Events

  • rovingTabindexChange
    • detail
      • fromIndex
      • toIndex

Dependencies

CI Build

https://travis-ci.org/makeup-js/makeup-roving-tabindex

Code Coverage

https://coveralls.io/github/makeup-js/makeup-roving-tabindex

You can’t perform that action at this time.