🍫 ⌨️ enhanced keyboard tabbing usability on any website / webapp with one line of code.
- Vanilla JS / Zero dependencies
- Preserved default
tabindexbehaviour - Tabbing enabled on the following elements:
'a','button','input','select','summary','textarea','[tabindex]'(any element withtabindexattribute) - 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
Shiftkey is pressed - Looped tabbing when reaching the last focusable element
- Checkboxes can be checked/unchecked using
Enterkey
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.gitnpm install
npm run watch
npm run build
Refer to SECURITY.md
Released under MIT License.