dspace-angular icon indicating copy to clipboard operation
dspace-angular copied to clipboard

Fix truncatable-part keyboard accessibility

Open autavares-dev opened this issue 7 months ago • 0 comments

References

Fixes #3073

Description

Fixes keyboard shortcuts of the truncatable-part component, used in the 'Show more' button.

Instructions for Reviewers

  • Go to a page that lists items, such as the home page or a search, with at least one of the items having content long enough for the "Show More" button to be displayed.
  • Click anywhere in a blank area near the item list. Cycle through the DOM elements using the TAB key.
  • When the 'Show More'/'Collapse' button is highlighted, you can toggle it using the Enter key or the spacebar.
  • Button still works using the mouse

List of changes in this PR:

  • truncatable-part.component.html:
    • Refactored/simplified the 'Show more' and 'Collapse' buttons into a single button element
    • Added event bindings for the enter key and the spacebar
    • Added aria-expanded

Checklist

  • [x] My PR is created against the main branch of code (unless it is a backport or is fixing an issue specific to an older branch).
  • [x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & specs/tests), or I have provided reasons as to why that's not possible.
  • [x] My PR passes ESLint validation using yarn lint
  • [x] My PR doesn't introduce circular dependencies (verified via yarn check-circ-deps)
  • [x] My PR includes TypeDoc comments for all new (or modified) public methods and classes. It also includes TypeDoc for large or complex private methods.
  • [x] My PR passes all specs/tests and includes new/updated specs or tests based on the Code Testing Guide.
  • [x] My PR aligns with Accessibility guidelines if it makes changes to the user interface.
  • [x] My PR uses i18n (internationalization) keys instead of hardcoded English text, to allow for translations.
  • [x] My PR includes details on how to test it. I've provided clear instructions to reviewers on how to successfully test this fix or feature.
  • [ ] If my PR includes new libraries/dependencies (in package.json), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation.
  • [ ] If my PR includes new features or configurations, I've provided basic technical documentation in the PR itself.
  • [x] If my PR fixes an issue ticket, I've linked them together.

autavares-dev avatar Jul 23 '24 00:07 autavares-dev