fix(dropdown-menu): focus the search when opened inside a dialog - #162
Merged
Merged
Conversation
The search input focused itself on mount, before the menu's focus scope paused the dialog's focus trap, so the trap pulled focus back out and Radix then focused the menu. The menu now hands focus to the search on its first focus after opening. Bumps to 4.3.1. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A searchable
DropdownMenu(and soFilterDropdown/RadioDropdown) opened inside aDialogorSheetleft focus on the menu, not the search box. Typing still searched, but the visible focus and the screen reader announcement pointed at the menu.Why
DropdownMenuSearchfocuses itself on mount. That runs before the menu's focus scope pauses the dialog's focus trap, so the trap pulls focus back into the dialog, and Radix then focuses the menu itself. Outside a dialog there is no trap, so it worked.DropdownMenuContentnow hands focus to the search the first time the menu takes focus after opening.SelectContentalready recovers the same way, soSelectSearchwas unaffected.Found while adopting 4.3.0 in Guardian Studio (the project picker in Manage Roles & Permissions).
Changes
dropdown-menu.tsx:onFocusrecovery on first focus per open. The flag resets when the search is hidden again, which covers a reopen during the exit animation, when the content stays mounted.Dialogfocuses the search. It fails without the fix.Verification
pnpm format:check,pnpm lint,pnpm test(38 passing),pnpm build.🤖 Generated with Claude Code