Skip to content

Add optional multi-column sorting (primary + secondary) to the table component #3344

@Spark450

Description

@Spark450

Summary

Add support for multi-column sorting (primary + secondary) in goa-table, enabled via a component property. This should be opt-in so teams can continue using single-column sorting when that meets their requirements.

Reference implementation

multi column sort implemented as desired on this example

UX / interaction requirements

  • Single sort (default)
    • Clicking a sortable column header applies that column as the only active sort (current behavior).
  • Multi sort (opt-in)
    • Define user interaction to set secondary sort (Click second column header to add/modify secondary sort).
    • Define how to remove secondary sort and revert to single sort
      • 1st click - Sorted (arrow up) - asc
      • 2nd click - Sorted (arrow down) - desc
      • 3rd click - Sort removed

Accessibility considerations

  • Sort state must be conveyed to assistive tech.
  • keyboard Interaction for setting sort primary and secondary must be maintained.
  • Provide clear announcements/labels for primary vs secondary sort state.

Acceptance criteria

  • table component has a new property to enable multi-column sorting (primary + secondary).
  • Single sort configuration remains supported and documented.
  • When multi-sort is enabled:
    • Users can set a primary and a secondary sort (each with asc/desc).
    • Sorting is applied as: primary first, then secondary.
    • UI indicates primary vs secondary sort order and direction.
    • Keyboard interaction supports configuring secondary sort.
    • Sort state is exposed to screen readers appropriately.

Metadata

Metadata

Assignees

Projects

Status

✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions