
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
aria-accordion
Advanced tools
A simple, accessible JavaScript accordion.
npm install aria-accordion
<ul class="js-accordion">
<li>
<button>
First Amendment
</button>
<div>
<p>
Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.
</p>
</div>
</li>
<li>
<button>
Second Amendment
</button>
<div>
<p>
A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.
</p>
</div>
</li>
</ul>
Simply create a series of <button>
elements followed by <div>
s and this will take care of the rest, adding the proper ARIA attributes. You can add custom IDs to the <div>
s and the library will default to those. If you don't add IDs the library will generate them for you.
In whichever file you initialize your JavaScript components, initialize the accordion like so:
var accordion = require('@18f/accordion');
// Required element to turn into an accordion
var elm = document.querySelector('.js-accordion');
// Optional configurion objects
var selectors = { ... };
var opts = { ... };
new accordion.Accordion(elm, selectors, opts);
The constructor requires an HTML element to turn into the accordion.
The constructor accepts an optional hash of selectors as its second parameter:
trigger
: CSS selector for the elements to turn into the accordion triggers. The component will look for these items' next sibling to turn into the accordion content that is hidden and revealed. Default: button
You can also pass a hash of options. Currently, the only option is:
collapseOthers
: Boolean for whether or not to collapse all other panels when one panel is open. Default: false
customHiding
: Boolean for whether or not to use your own CSS to hide collapsed content areas. Default: false
contentPrefix
: String prefix for the content div IDs in order to have multiple accordions on the same page. Default: accordion
openFirst
: Boolean for whether or not to open the first item by default. Default: false
reflectStatic
: Boolean for whether or not the accordion should reflect any attributes (aria-hidden
and aria-expanded
) that were rendered statically. Default: false
You're free to add classes and style your markup however you please. By default, the component sets any content element with [aria-hidden="true"]
to display: none
inline, but you can override this to use your own custom hiding styles with the customHiding
property. To style the buttons when they panel is open vs closed, target [aria-expanded="true"]
.
This project is in the worldwide public domain. As stated in CONTRIBUTING:
This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication.
All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.
FAQs
A simple, accessible, ARIA accordion
The npm package aria-accordion receives a total of 93 weekly downloads. As such, aria-accordion popularity was classified as not popular.
We found that aria-accordion demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 15 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
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.