🍫 ⌨️ enhanced keyboard tabbing usability on any website / webapp with one line of code.
- Vanilla JS / Zero dependencies
- Preserved default
tabindex
behaviour - Tabbing enabled on the following elements:
'a'
,'button'
,'input'
,'select'
,'summary'
,'textarea'
,'[tabindex]'
(any element withtabindex
attribute) - Tabbing disabled on all elements that are disabled (impossible to interact with) or invisible (hidden or without width/height)
- Tabbing disabled on all elements that are children/descendants of elements with tabbing disabled
- Tabbing trapped inside modal elements (any element with
aria-modal="true"
attribute that is enabled and visible) - Reversed tabbing order when
Shift
key is pressed - Looped tabbing when reaching the last focusable element
- Checkboxes can be checked/unchecked using
Enter
key
This library is available through npm:
npm install @fabiocaccamo/tabbo.js
<script src=" https://cdn.jsdelivr.net/npm/@fabiocaccamo/tabbo.js/dist/tabbo.min.js"></script>
<script src="node_modules/@fabiocaccamo/tabbo.js/dist/tabbo.min.js"></script>
const tabbo = require("@fabiocaccamo/tabbo.js");
The only thing you have to do is activate tabbo
as soon as possible:
tabbo.activate();
If needed, you can deactivate tabbo
at any time:
tabbo.deactivate();
git clone https://github.com/fabiocaccamo/tabbo.js.git
npm install
npm run watch
npm run build
Refer to SECURITY.md
Released under MIT License.