Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

actionmenu: ensure focus falls back to invoking element when dialogs are closed #2983

Conversation

keithamus
Copy link
Member

Authors: Please fill out this form carefully and completely.

Reviewers: By approving this Pull Request you are approving the code change, as well as its deployment and mitigation plans.
Please read this description carefully. If you feel there is anything unclear or missing, please ask for updates.

What are you trying to accomplish?

Currently if an actionmenu opens a dialog, and that dialog is subsequently closed, focus is not automatically restored to the action menu invoker. It should be.

Screenshots

Gosh if I had time in my day to make a video...

Integration

Shouldn't need to.

List the issues that this change affects.

Closes https://github.com/github/primer/issues/3491, https://github.com/github/accessibility-audits/issues/7683

Risk Assessment

  • Low risk the change is small, highly observable, and easily rolled back.
  • Medium risk changes that are isolated, reduced in scope or could impact few users. The change will not impact library availability.
  • High risk changes are those that could impact customers and SLOs, low or no test coverage, low observability, or slow to rollback.

What approach did you choose and why?

I used the existing dialog close behaviour, which was only triggered if the dialog was a descendant of the menu. This guard got moved to the relevant parts which hide the actionmenu wrapper, but it retains the focus move code.

I've also added extra guards around the focus code to ensure we're not overriding focus changes for instances that shift focus on dialog close.

Anything you want to highlight for special attention from reviewers?

Accessibility

  • No new axe scan violation - This change does not introduce any new axe scan violations.

Merge checklist

  • Added/updated tests
  • Added/updated documentation N/A
  • Added/updated previews (Lookbook) N/A
  • Tested in Chrome
  • Tested in Firefox
  • Tested in Safari
  • Tested in Edge

Take a look at the What we look for in reviews section of the contributing guidelines for more information on how we review PRs.

@keithamus keithamus requested a review from a team as a code owner July 30, 2024 14:52
@keithamus keithamus requested a review from jonrohan July 30, 2024 14:52
Copy link

changeset-bot bot commented Jul 30, 2024

🦋 Changeset detected

Latest commit: 7c49cb3

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@primer/view-components Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@keithamus keithamus force-pushed the actionmenu-ensure-focus-falls-back-to-invoking-element-when-dialogs-are-closed branch from 86766ef to 7c49cb3 Compare August 19, 2024 11:54
Copy link
Member

@jonrohan jonrohan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works!

@keithamus keithamus merged commit 5d68193 into main Aug 20, 2024
37 checks passed
@keithamus keithamus deleted the actionmenu-ensure-focus-falls-back-to-invoking-element-when-dialogs-are-closed branch August 20, 2024 09:42
@primer primer bot mentioned this pull request Aug 19, 2024
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.

2 participants