Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
makeup-active-descendant
Advanced tools
Implements ARIA active descendant keyboard navigation.
A vanilla JavaScript port of jquery-active-descendant.
This 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.
// via npm
npm install makeup-active-descendant
// via yarn
yarn add makeup-active-descendant
// require the module
const ActiveDescendant = require('makeup-active-descendant');
// get the widget root element reference
const widgetEl = document.querySelector('.widget');
// get the focus element reference
const focusEl = widgetEl.querySelector('input');
// get the owned element reference
const ownedEl = widgetEl.querySelector('ul');
// create an activeDescendant widget instance on the element
const activeDescendant = ActiveDescendant.createLinear(widgetEl, focusEl, ownedEl, 'li');
// listen for events (optional)
widgetEl.addEventListener('activeDescendantChange', function(e) {
console.log(e.detail);
});
Markup before:
<div class="widget">
<input type="text">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
Markup after instantiation:
<div class="widget" id="widget-0">
<input type="text" aria-owns="widget-0-list-0">
<ul id="widget-0-list-0">
<li id="widget-0-item-0" data-makeup-index="0">Item 1</li>
<li id="widget-0-item-1" data-makeup-index="1">Item 2</li>
<li id="widget-0-item-2" data-makeup-index="2">Item 3</li>
</ul>
</div>
Markup after pressing down arrow key on focusable element:
<div class="widget" id="widget-0">
<input type="text" aria-activedescendant="widget-0-item-0" aria-owns="widget-0-list-0">
<ul id="widget-0-list-0">
<li class="active-descendant" id="widget-0-item-0" data-makeup-index="0">Item 1</li>
<li id="widget-0-item-1" data-makeup-index="1">Item 2</li>
<li id="widget-0-item-2" data-makeup-index="2">Item 3</li>
</ul>
</div>
Use CSS to style the active descendant however you wish:
.widget .active-descendant {
font-weight: bold;
}
activeDescendantClassName
: the HTML class name that will be applied to the ARIA active descendant element (default: 'active-descendant')autoInit
: specify an integer or -1 for initial index (default: 0) (see makeup-navigation-emitter
)autoReset
: specify an integer or -1 for index position when focus exits widget (default: null) (see makeup-navigation-emitter
)activeDescendantChange
makeup-navigation-emitter
makeup-next-id
npm start
npm test
npm run lint
npm run fix
npm run build
npm run clean
The following hooks exist, and do not need to be invoked manually:
npm prepublishOnly
cleans, lints, tests and builds on every npm publish
commandpre-commit
cleans, lints, tests and builds on every git commit
commandEach test run will generate the following reports:
/reports/coverage
contains Istanbul code coverage report/reports/html
contains HTML test reporthttps://travis-ci.org/makeup-js/makeup-active-descendant
https://coveralls.io/github/makeup-js/makeup-active-descendant
FAQs
Implements ARIA active descendant keyboard navigation
The npm package makeup-active-descendant receives a total of 137 weekly downloads. As such, makeup-active-descendant popularity was classified as not popular.
We found that makeup-active-descendant demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.