ember-a11y-accordion
v3.0.0
Published
An ember accordion component with accessibility being a first class citizen.
Downloads
333
Readme
ember-a11y-accordion
This Ember addon is based on the W3C's ARIA best practices for accordions and treats accessibility as a first class citizen. Live demo: https://vasilionjea.github.io/ember-a11y-accordion/
Install
ember install ember-a11y-accordion
Usage
<AccordionList
@animation={{false}}
@onAfterShow={{this.onAfterShow}}
@onShow={{this.onAccordionShow}}
class="my-accordion" as |accordion|>
<accordion.item @expandOnInit={{true}} @name="item1" as |item|>
<item.header @ariaLevel="4" class="first-header">Lorem ipsum</item.header>
<item.panel class="first-panel">
<p>Lorem <a href="#">ipsum</a> dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</item.panel>
</accordion.item>
<accordion.item @name="item2" as |item|>
<item.header @ariaLevel="4">Dolor Sit</item.header>
<item.panel>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</item.panel>
</accordion.item>
<accordion.item @isDisabled={{true}} as |item|>
<item.header @ariaLevel="4">This is disabled</item.header>
<item.panel>
<p>User cannot interact with this item.</p>
</item.panel>
</accordion.item>
</AccordionList>
There is an additional collapsible component called collapsible-list
and all the options are exactly the same as the accordion list component. The only difference is that accordions expand one item at a time, whereas collapsibles can have multiple items expanded at any point in time.
Both the accordion-list
and the collapsible-list
components accept the following actions:
onShow
Triggered when the header is clicked.onAfterShow
Triggered once the content is visible and all animations completed. Without animation, it triggers after the onShow action.
The collapsible-list
component additionally accepts the following actions:
onHide
Triggered when the header is clicked and the panel is closing.
onHide
, onShow
and onAfterShow
will receive an object as first argument with a name property containing the name
of the accordion-item
becoming visible and other properties.
Roles, States, Attributes, and Classes
Contribute
See the Contributing guide for details.
Install
git clone <repository-url>
this repositorycd ember-a11y-accordion
npm install
Running
ember serve
- Visit your app at http://localhost:4200.
Running Tests
npm test
(Runsember try:each
to test the addon against multiple Ember versions)ember test
ember test --server
Building
ember build
License
This project is licensed under the MIT License.