Back to compare picker

Accordion vs Tabs vs Side navigation vs Filter panel

Use accordion when the page has multiple related sections that can be independently revealed without route changes, selected modes, or result-set filtering.

Decision dimensions

Dimension AccordionTabsSide navigationFilter panel
UI or UX UI + UX - Grouped show-hide sections for related page contentUI + UX - Section-switching componentUI + UX - Persistent local hierarchy at the side of contentUI + UX - Grouped filter control panel for narrowing a current result set
UI guidance Render each section title as a real button inside an appropriate heading, expose expanded or collapsed state, and connect the button to the panel it controls.Render a tablist with short tab labels, selected tab styling, visible keyboard focus, and a single associated tabpanel that is visually connected to the active tab.Render a vertical navigation region beside the main content that exposes the current area's parent, child, and optional grandchild pages with a clear active indicator.Render filter categories as labelled form controls in a panel adjacent to the result set on wide layouts, with a visible result count and active-filter summary near the results.
UX guidance Use an accordion when a page has several related sections that users may inspect selectively while still needing an overview of all section labels.Help users switch between sibling sections in the same page context without changing routes or losing local work.Use side navigation to help users move within a complex section without losing the current page's position in that section.Use a filter panel to help users narrow the current list or search result set while preserving orientation, search query, sort order, pagination context, and selected values.
Good UI A product policy page shows Shipping, Returns, Warranty, and Contact sections as heading buttons with clear expanded states and one open panel.Tab labels are short, active tab is obvious, focused tab is distinguishable, and panel content is visually attached to the selected tab.A settings page shows Account, Billing, Team, and Security in a left rail with Security expanded and Audit log marked as current.A desktop search page shows a left filter panel with Status, Type, and Date groups, while active chips and the result count sit above the results.
Bad UI A page hides every required instruction behind plus icons with no headings, state, or expand-all route.Tabs wrap unpredictably or look like unrelated buttons.A sidebar mixes Dashboard, Reports, Sign out, Help, Team, API, Billing, and Marketing with no section grouping.A filter drawer closes with no active count, leaving users unaware that filters are still hiding records.
Good UX A user opens Returns, then Warranty, scans both sections, collapses Returns, and the page keeps focus and open-state feedback stable.Users switch between sibling sections without leaving page context or losing panel-local notes.Users open Billing, switch to Invoices, then return to Security and see the Security group still expanded.A user selects Status: Open and Type: Appeal, applies the batch, lands back at the result summary, and sees 12 records with both criteria removable.
Bad UX A user misses eligibility requirements because the only required step is hidden inside a collapsed section by default.Using tabs as primary navigation to unrelated pages.Users must reopen a drawer every time they move between sibling pages in the same desktop section.Applying a filter silently resets the query, sort order, current page, and view density.
Best fit A page has several related sections and users do not need all details visible at once.Users switch between sibling panels frequently.A product area has several related pages arranged in a visible hierarchy.Users need to narrow the current search results, browse results, table, card grid, or list by multiple criteria.
Avoid when There is only one revealable section and a simpler details disclosure is enough.The destinations are unrelated pages.The product only has a few pages and does not need a hierarchy.The result set is small enough that scanning is faster than filtering.
Required state All collapsed state with every section title visible.Default active tab and visible panel.Default state with the local section hierarchy visible beside content.Default state with no user-applied filters and an explicit result count.
Accessibility burden Use native buttons for section controls and expose expanded or collapsed state.Expose the active tab and associated panel.Use a labeled navigation landmark that distinguishes local side navigation from primary navigation.Use semantic form controls with fieldsets, legends, labels, and accessible names for filter categories and values.
Common misuse Using divs or links as section toggles without button semantics or expanded state.Using tabs as a primary site navigation system.Duplicating global navigation links in the side navigation.Hiding active filters inside a closed panel with no count, chips, or result-state summary.

Accordion

UI or UX
UI + UX - Grouped show-hide sections for related page content
UI guidance
Render each section title as a real button inside an appropriate heading, expose expanded or collapsed state, and connect the button to the panel it controls.
UX guidance
Use an accordion when a page has several related sections that users may inspect selectively while still needing an overview of all section labels.
Good UI
A product policy page shows Shipping, Returns, Warranty, and Contact sections as heading buttons with clear expanded states and one open panel.
Bad UI
A page hides every required instruction behind plus icons with no headings, state, or expand-all route.
Good UX
A user opens Returns, then Warranty, scans both sections, collapses Returns, and the page keeps focus and open-state feedback stable.
Bad UX
A user misses eligibility requirements because the only required step is hidden inside a collapsed section by default.
Best fit
A page has several related sections and users do not need all details visible at once.
Avoid when
There is only one revealable section and a simpler details disclosure is enough.
Required state
All collapsed state with every section title visible.
Accessibility burden
Use native buttons for section controls and expose expanded or collapsed state.
Common misuse
Using divs or links as section toggles without button semantics or expanded state.

Tabs

UI or UX
UI + UX - Section-switching component
UI guidance
Render a tablist with short tab labels, selected tab styling, visible keyboard focus, and a single associated tabpanel that is visually connected to the active tab.
UX guidance
Help users switch between sibling sections in the same page context without changing routes or losing local work.
Good UI
Tab labels are short, active tab is obvious, focused tab is distinguishable, and panel content is visually attached to the selected tab.
Bad UI
Tabs wrap unpredictably or look like unrelated buttons.
Good UX
Users switch between sibling sections without leaving page context or losing panel-local notes.
Bad UX
Using tabs as primary navigation to unrelated pages.
Best fit
Users switch between sibling panels frequently.
Avoid when
The destinations are unrelated pages.
Required state
Default active tab and visible panel.
Accessibility burden
Expose the active tab and associated panel.
Common misuse
Using tabs as a primary site navigation system.

Side navigation

UI or UX
UI + UX - Persistent local hierarchy at the side of content
UI guidance
Render a vertical navigation region beside the main content that exposes the current area's parent, child, and optional grandchild pages with a clear active indicator.
UX guidance
Use side navigation to help users move within a complex section without losing the current page's position in that section.
Good UI
A settings page shows Account, Billing, Team, and Security in a left rail with Security expanded and Audit log marked as current.
Bad UI
A sidebar mixes Dashboard, Reports, Sign out, Help, Team, API, Billing, and Marketing with no section grouping.
Good UX
Users open Billing, switch to Invoices, then return to Security and see the Security group still expanded.
Bad UX
Users must reopen a drawer every time they move between sibling pages in the same desktop section.
Best fit
A product area has several related pages arranged in a visible hierarchy.
Avoid when
The product only has a few pages and does not need a hierarchy.
Required state
Default state with the local section hierarchy visible beside content.
Accessibility burden
Use a labeled navigation landmark that distinguishes local side navigation from primary navigation.
Common misuse
Duplicating global navigation links in the side navigation.

Filter panel

UI or UX
UI + UX - Grouped filter control panel for narrowing a current result set
UI guidance
Render filter categories as labelled form controls in a panel adjacent to the result set on wide layouts, with a visible result count and active-filter summary near the results.
UX guidance
Use a filter panel to help users narrow the current list or search result set while preserving orientation, search query, sort order, pagination context, and selected values.
Good UI
A desktop search page shows a left filter panel with Status, Type, and Date groups, while active chips and the result count sit above the results.
Bad UI
A filter drawer closes with no active count, leaving users unaware that filters are still hiding records.
Good UX
A user selects Status: Open and Type: Appeal, applies the batch, lands back at the result summary, and sees 12 records with both criteria removable.
Bad UX
Applying a filter silently resets the query, sort order, current page, and view density.
Best fit
Users need to narrow the current search results, browse results, table, card grid, or list by multiple criteria.
Avoid when
The result set is small enough that scanning is faster than filtering.
Required state
Default state with no user-applied filters and an explicit result count.
Accessibility burden
Use semantic form controls with fieldsets, legends, labels, and accessible names for filter categories and values.
Common misuse
Hiding active filters inside a closed panel with no count, chips, or result-state summary.
Decision rules
  • Use accordion when the page has multiple related sections that can be independently revealed without route changes, selected modes, or result-set filtering.
  • Use tabs when the labels represent peer panels in one local context and users expect one active panel connected to a selected tab.
  • Use side navigation when the labels are separate pages in a local hierarchy and need current-page state, active ancestors, and route changes.
  • Use filter panel when the collapsed groups contain controls that include or exclude records and must update result counts, applied filters, and clear behavior.
  • Use a simpler details disclosure instead of accordion when there is only one less-prominent section to reveal.
  • Use process list instead of accordion when the sections are ordered journey steps with task links, costs, branches, or offline actions.
  • Accordion headers must remain meaningful while collapsed; if users cannot choose a section from the heading alone, keep the content visible or use a better page structure.
  • If hidden panels contain validation errors, active choices, changed values, or required fields, show a summary at the accordion header and link directly to the opened panel.
  • If users need to compare several sections, prefer multi-open accordions or always-visible headings; do not force one-panel-open behavior that blocks comparison.
  • Do not present accordion rows as navigation links unless activation actually navigates and exposes current-page state.
Inspect live examples
Failure modes
  • An accordion hides required instructions or errors with no collapsed summary.
  • Accordion labels navigate to pages in some rows and expand content in other rows.
  • Tabs are used for long sequential content that users need to read in order.
  • Side navigation is replaced by an accordion, so deep-linked users cannot see current page or parent context.
  • A filter panel is styled as a basic accordion but omits active-filter counts and applied-result synchronization.
  • Single-open accordion behavior closes another panel that users were comparing or editing.