Skip to content

Accordion

Teodosia Hristodorova edited this page Jun 6, 2022 · 30 revisions

Accordion Specification

Contents

  1. Overview
  2. User Stories
  3. Functionality
  4. Test Scenarios
  5. Accessibility
  6. Assumptions and Limitations
  7. References

Owned by

Astrea

Developer Name: Monika Kirkova, Bozhidara Pachilova

Designer Name

Requires approval from

  • Peer Developer: Martin Evtimov | Date:
  • Design Manager: Svilen Dimchevski | Date:

Signed off by

  • Product Owner: Radoslav Mirchev | Date:
  • Platform Architect Damyan Petev | Date:

Revision History

Version Users Date Notes
1 Names of Developers and Designers Date 25-May-2022
1.01 Teodosia Hristodorova Date 26-May-2022 Developer Stories, API and Test Scenarios

Objectives

Accordion web component combining a collection of IgcExpansionPanelComponents in a vertical layout. It allows the end-user to see an overview of data and dig into the details that come with it in an interactive fashion. The Accordion does not overload the user with information, making it compact in size and using progressive disclosure to unveil more of it. Its items are templatable out of the box since each of them is an IgcExpansionPanelComponent that comes with built-in templating. The Accordion has two interactive modes:

  • only one igx-expansion-panel can be expanded at a time (selecting a collapsed panel would collapse the currently expanded one, while the selected one is expanding at the same time) prototype
  • multiple IgcExpansionPanelComponents can be expanded together, which means that only explicit user interaction or use of the API affects the state of the Accordion prototype

End-to-end user experience prototype

Acceptance criteria

Must-have before we can consider the feature a sprint candidate

  • Sign off
  • Available prototypes and Figma designs [ ]
  • Created file structure in Indigo_Platform Accordion feature

Elaborate more on the multi-facetted use cases

Developer stories:

  • Story 1: As a developer, I want to create a simple accordion in a declarative fashion, showing a title when collapsed and complementing it with a text paragraph when expanded, so that I can display a compact FAQ section.
  • Story 2: As a developer, I want to be able to choose whether single or multiple panels can be expanded at the same time so that I can determine the accordion interactivity.
  • Story 3: As a developer, I expect that each igc-expansion-panel within an igc-accordion supports the same degree of customizations and styling as they normally do as a standalone component.
  • Story 4: As a developer, I want to be able to remove the default margins added to an expanded panel, so that it does not stand out as much from the rest of the accordion.
  • Story 5: As a developer, I expect the accordion is accessible and supports keyboard navigation out of the box.
  • Story 6: As a developer, I want to be able to place an accordion within another component e.g. a side panel, navigation drawer or dock-manager pane, so that I can create elaborate UIs.

End-user stories:

  • Story 1: As an end-user, I want to be able to collapse all accordion items/panels at once, so that I can move on to the next section of the webpage.
  • Story 2: As an end-user, I want to be able to navigate the accordion and its items with the keyboard, so that I can navigate faster and take advantage of screen readers.
  • Story 3: As an end-user, I want to be able to expand all or only one branch at the time.

Describe behavior, design, look and feel of the implemented feature. Always include visual mock-up

3.1. End-User Experience

** Integration scenarios or functionality with other features/components prototype ** End-to-end user experienceprototype ** Prepared design files for styling e.g. interplay with features and light/dark variants design hand-off

3.2. Developer Experience

3.3. Globalization/Localization

Describe any special localization requirements such as the number of localizable strings, regional formats

3.4. Keyboard Navigation

Keys Description
Tab Moves the focus to the first(if the focus is before accordion)/next panel
Shift + Tab Moves the focus to the last(if the focus is after accordion)/previous panel
Arrow Down Move the focus to the panel below
Arrow Up Move the focus to the panel above
Alt + Arrow Down Expand the focused panel in the accordion
Alt + Arrow Up Collapse the focused panel in the accordion
Shift + Alt + Arrow Down Expand all panels when this is enabled
Shift + Alt + Arrow Up Collapse all panels whichever panel is focused
Home Navigates to the first panel in the accordion
End Navigates to the last panel in the accordion

3.5. API

Options

Name Description Type Default value Valid values
singleBranchExpand How the accordion handles panel expansion boolean false
panels Get all IgcExpansionPanel children of the accordion IgcExpansionPanelComponent[]

Methods

Name Description Return type Parameters
hideAll Hide all opened expansion panels void N/A
showAll Show all closed expansion panels void N/A

Basic

  • Should render accordion w/ expansion panels
  • Should calculate accordion's panels correctly
  • Should be able to render nested accordions

Expand/Collapse

  • Should update the current expansion state when hideAll is invoked.
  • Should update the current expansion state when showAll is invoked.
  • Should be able to expand only one panel when singleBranchExpand is set to true
  • Should be able to expand multiple panels when singleBranchExpand is set to false
  • Should preserve expanded panel when singleBranchExpand is changed from false to true
  • Should preserve expanded panels when singleBranchExpand is changed from true to false

Keyboard Navigation

  • Should navigate to first (if the focus is before accordion)/next panel on TAB key press
  • Should navigate to last (if the focus is after accordion)/previous panel on SHIFT + TAB key press
  • Should navigate to the panel below on Arrow Down key press
  • Should navigate to the panel above on Arrow Up key press
  • Should navigate between direct child panels only (nested accordion scenario)
  • Should expand the focused panel on ALT + Arrow Down key press
  • Should collapse the focused panel on ALT + Arrow Up key press
  • Should expand all panels when singleBranchExpand is false on Shift + Alt + Arrow Down key press
  • Should expand only the focused panel when singleBranchExpand is true on Shift + Alt + Arrow Down key press
  • Should collapse all panels on Shift + Alt + Arrow Up key press
  • Should collapse only the focused panel on Shift + Alt + Arrow Up key press
  • Should navigate to the first panel on Home key press
  • Should navigate to the last panel on End key press

ARIA Support fill from here

RTL Support

Assumptions Limitation Notes

Specify all referenced external sources

Clone this wiki locally