Author: | jonathanlevaillant |
---|---|
Views Total: | 276 views |
Official Page: | Go to website |
Last Update: | November 5, 2018 |
License: | MIT |
Preview:

Description:
a11y-accordion-component is a library written in vanilla JavaScript to easily create easy-to-config, WAI-ARIA compliant accordion on the web app.
Features:
- Enter or Space key to toggle accordion panels.
- Arrow keys to move the focus.
- Home key to move the focus to the first header.
- End key to move the focus to the last header.
- Page Up and Page Down keys to move the focus to the associated headers.
Installation:
# Yarn $ yarn add a11y-accordion-component # NPM $ npm install a11y-accordion-component --save
How to use it:
The primary HTML structure for the accordion component. Available attributes:
- data-component=”accordion”: initialize a new accordion
- data-multiselectable=”false”: allows to select multiple accordion panels
- data-collapsible=”false”: is collapsible?
- id=”trigger-ID”: trigger ID
- id=”panel-ID”: panel ID
- data-controls=”panel-ID”: control ID
- data-open=”true”: if is open on init
<div class="c-accordion u-p" data-component="accordion"> <div role="heading" aria-level="3"> <div id="accordion-trigger-1" class="c-accordion__trigger" data-controls="accordion-panel-1" data-open="true"> Accordion Header 1 </div> </div> <div id="accordion-panel-1" class="c-accordion__panel"> <div class="c-accordion__inner"> <h3>Section 1</h3> <p> A paragraph (from the Greek paragraphos, "to write beside" or "written beside") is a self-contained unit of a discourse in writing dealing with a particular point or idea. A paragraph consists of one or more sentences. Though not required by the syntax of any language, paragraphs are usually an expected part of formal writing, used to organize longer prose. </p> <p><a href="#">This is a text link</a></p> </div> </div> <div role="heading" aria-level="3"> <div id="accordion-trigger-2" class="c-accordion__trigger" data-controls="accordion-panel-2"> Accordion Header 2 </div> </div> <div id="accordion-panel-2" class="c-accordion__panel"> <div class="c-accordion__inner"> <h3>Section 2</h3> <p> A paragraph (from the Greek paragraphos, "to write beside" or "written beside") is a self-contained unit of a discourse in writing dealing with a particular point or idea. A paragraph consists of one or more sentences. Though not required by the syntax of any language, paragraphs are usually an expected part of formal writing, used to organize longer prose. </p> <p><a href="#">This is a text link</a></p> </div> </div> <div role="heading" aria-level="3"> <div id="accordion-trigger-3" class="c-accordion__trigger" data-controls="accordion-panel-3"> Accordion Header 3 </div> </div> <div id="accordion-panel-3" class="c-accordion__panel"> <div class="c-accordion__inner"> <h3>Section 3</h3> <p> A paragraph (from the Greek paragraphos, "to write beside" or "written beside") is a self-contained unit of a discourse in writing dealing with a particular point or idea. A paragraph consists of one or more sentences. Though not required by the syntax of any language, paragraphs are usually an expected part of formal writing, used to organize longer prose. </p> <p><a href="#">This is a text link</a></p> </div> </div> </div>
Load the necessary JavaScript file ‘a11y-accordion-component.js’ in the document.
<script src="a11y-accordion-component.js"></script>
Initialize the library and done.
document.addEventListener('DOMContentLoaded', () => { Accordions.init(); });
Changelog:
v1.2.6 (11/05/2018)
- removed touchstart event