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.
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
Accessibility considerations
Acceptance criteria