Skip to content

[25.1] Add Keyboard Navigation to History Lists#21035

Merged
bgruening merged 9 commits intogalaxyproject:release_25.1from
itisAliRH:add-history-list-keyboard-navigation
Oct 14, 2025
Merged

[25.1] Add Keyboard Navigation to History Lists#21035
bgruening merged 9 commits intogalaxyproject:release_25.1from
itisAliRH:add-history-list-keyboard-navigation

Conversation

@itisAliRH
Copy link
Copy Markdown
Member

Fixes #21030
xref: #19973

This pull request adds keyboard navigation and selection capabilities to the history lists.

  • Added clickable and highlighted props to GCard instead of handling them in several components
  • Ensured keyboard events stop propagation to avoid unintended side effects during navigation (esp. conflicts with browser extensions).
  • Fix capturing the backspace key when using a Mac for the delete action

How to test the changes?

(Select all options that apply)

  • I've included appropriate automated tests.
  • This is a refactoring of components with existing test coverage.
  • Instructions for manual testing are as follows:
    1. Go to one of the history lists
    2. Try to navigate using the arrow up/down or remove the item using the delete/backspace key

License

  • I agree to license these and all my past contributions to the core galaxy codebase under the MIT license.

Extends keyboard deletion functionality to include Backspace key on Mac alongside Delete key on Windows.
Introduces a clickable prop to enable keyboard interaction with history cards.

Adds new event handlers for click and keydown events that emit appropriate events when the card is in clickable mode.
Enhances the history card list component with keyboard navigation capabilities by adding clickable props, item references for focus management, and range selection anchor highlighting.

Introduces new event handlers for keyboard interactions and card clicks to enable accessible navigation through history entries.

Adds visual styling for range selection anchor with primary color shadow to improve user feedback during keyboard navigation.
Replaces manual selection state management with a centralized composable that provides consistent selection behavior across components.

Adds keyboard navigation support and range selection functionality for improved user experience when managing multiple histories.

Simplifies bulk operations by leveraging standardized selection methods and automatic cleanup.
Introduces a new highlighted prop to enable visual highlighting of cards, useful for indicating selection anchors or drawing attention to specific items.

Applies a subtle box shadow when the card is highlighted to provide clear visual feedback without being intrusive.
Replaces CSS class-based highlighting with a dedicated highlighted prop for better component encapsulation and maintainability.

Removes custom CSS styling and ESLint disable comment while consolidating the highlighting logic into the component's prop system.
Replaces CSS class-based highlighting with a dedicated highlighted prop for better component encapsulation and maintainability.

Removes hardcoded styling logic from the parent component and moves the highlighting responsibility to the card component itself.
Adds event.stopPropagation() calls to keyboard event handlers to prevent events from bubbling up to parent elements when the card handles Enter, Space, or other key interactions.
@bgruening bgruening merged commit 343b184 into galaxyproject:release_25.1 Oct 14, 2025
29 checks passed
@itisAliRH itisAliRH deleted the add-history-list-keyboard-navigation branch October 20, 2025 05:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants