jquery-active-descendant
jQuery collection plugin that implements one or two dimensional aria-activedescendant keyboard navigation. A common scenario for aria-activedescendant is a combobox input (with or without autocomplete behaviour) or date picker grid.
Install
npm install jquery-active-descendant
Signature
;
Params
focusableItemSelector
- selector for focusable item in relation to widgetownedItemSelector
- selector for the item that is programmatically owned by the focusable item (i.e. 'aria-owns')descendantItemsSelector
- selector for pseudo-focusable descendant items in relation to widgetoptions.autoInit
: set initial activedescendant state when plugin executes (default: false)options.autoReset
: reset activedescendant state when focus exits widget (default: true)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
- set to true to use two-dimensional navigation (default: false)options.useAriaSelected
- set to true to use aria-selected state on descendant items (historically required by Safari + Voiceover) (default: false)
Triggers
activeDescendantChange
- when active descendant has changed
Listens
domChange
- when dom of ownedItem selector has changed. Must be triggered on ownedItemSelector.
Example - One Dimensional
Input HTML:
A B C
Execute plugin:
;
Output HTML:
A B C
First down arrow key produces:
A B C
Next down arrow key produces:
A B C
Example - Two Dimensional
Input HTML:
1234567 891011121314 15161718192021
Execute plugin:
;
Dependencies
Development
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.
CI Build
https://travis-ci.org/makeup-jquery/jquery-active-descendant
Code Coverage
https://coveralls.io/github/makeup-jquery/jquery-active-descendant?branch=master
Test Reports
Local test and coverage reports are generated under .test_reports
folder.
JSDocs
Local JSDocs are generated under ./jsdoc
folder.