fix: Ensure that opening a submenu via enter/space moves focus to first item in submenu#9691
Conversation
…st item in submenu
LFDanLu
commented
Feb 24, 2026
Member
Author
There was a problem hiding this comment.
tried writing a test for this but it passes without the change since the timing isn't quite the same as in browser. Will be worth writing one in chromatic using the actions or via the real browser test PR when that goes in
|
Build successful! 🎉 |
nwidynski
reviewed
Feb 25, 2026
| interaction.current = {pointerType: 'keyboard', key: ' '}; | ||
| (getEventTarget(e) as HTMLElement).click(); | ||
|
|
||
| // click above sets modality to "virutal", need to set interaction modality back to 'keyboard' so focusSafely calls properly move focus |
Contributor
There was a problem hiding this comment.
Suggested change
| // click above sets modality to "virutal", need to set interaction modality back to 'keyboard' so focusSafely calls properly move focus | |
| // click above sets modality to "virtual", need to set interaction modality back to 'keyboard' so focusSafely calls properly move focus |
Comment on lines
+303
to
+304
| // click above sets modality to "virutal", need to set interaction modality back to 'keyboard' so focusSafely calls properly move focus | ||
| // to the newly opened submenu's first item. |
Contributor
There was a problem hiding this comment.
Suggested change
| // click above sets modality to "virutal", need to set interaction modality back to 'keyboard' so focusSafely calls properly move focus | |
| // to the newly opened submenu's first item. | |
| // click above sets modality to "virtual", need to set interaction modality back to 'keyboard' so focusSafely calls properly move focus | |
| // to the newly opened submenu's first item. |
|
Build successful! 🎉 |
## API Changes
@react-spectrum/s2/@react-spectrum/s2:TreeView TreeView <T extends {}> {
UNSAFE_className?: UnsafeClassName
UNSAFE_style?: CSSProperties
aria-describedby?: string
aria-details?: string
aria-label?: string
aria-labelledby?: string
autoFocus?: boolean | FocusStrategy
children?: ReactNode | (T) => ReactNode
defaultExpandedKeys?: Iterable<Key>
defaultSelectedKeys?: 'all' | Iterable<Key>
dependencies?: ReadonlyArray<any>
disabledBehavior?: DisabledBehavior = 'all'
disabledKeys?: Iterable<Key>
disallowEmptySelection?: boolean
escapeKeyBehavior?: 'clearSelection' | 'none' = 'clearSelection'
expandedKeys?: Iterable<Key>
id?: string
items?: Iterable<T>
onAction?: (Key) => void
onExpandedChange?: (Set<Key>) => any
onSelectionChange?: (Selection) => void
- renderActionBar?: ('all' | Set<Key>) => ReactElement
renderEmptyState?: (TreeEmptyStateRenderProps) => ReactNode
selectedKeys?: 'all' | Iterable<Key>
selectionMode?: SelectionMode
shouldSelectOnPressUp?: boolean
styles?: StylesPropWithHeight
}/@react-spectrum/s2:TreeViewProps TreeViewProps <T> {
UNSAFE_className?: UnsafeClassName
UNSAFE_style?: CSSProperties
aria-describedby?: string
aria-details?: string
aria-label?: string
aria-labelledby?: string
autoFocus?: boolean | FocusStrategy
children?: ReactNode | (T) => ReactNode
defaultExpandedKeys?: Iterable<Key>
defaultSelectedKeys?: 'all' | Iterable<Key>
dependencies?: ReadonlyArray<any>
disabledBehavior?: DisabledBehavior = 'all'
disabledKeys?: Iterable<Key>
disallowEmptySelection?: boolean
escapeKeyBehavior?: 'clearSelection' | 'none' = 'clearSelection'
expandedKeys?: Iterable<Key>
id?: string
items?: Iterable<T>
onAction?: (Key) => void
onExpandedChange?: (Set<Key>) => any
onSelectionChange?: (Selection) => void
- renderActionBar?: ('all' | Set<Key>) => ReactElement
renderEmptyState?: (TreeEmptyStateRenderProps) => ReactNode
selectedKeys?: 'all' | Iterable<Key>
selectionMode?: SelectionMode
shouldSelectOnPressUp?: boolean
styles?: StylesPropWithHeight
} |
devongovett
approved these changes
Feb 27, 2026
snowystinger
approved these changes
Feb 27, 2026
pioug
pushed a commit
to pioug/react-spectrum
that referenced
this pull request
Feb 28, 2026
…aseline-tracker * origin/main: feat(S2): S2 ListView (adobe#8878) refactor: Centralize expandedKeys logic in TreeCollection (adobe#9711) chore: Warn if user has interactive elements in their custom Picker value (adobe#9710) feat: S2 unavailable menu item (adobe#9657) fix: Ensure that opening a submenu via enter/space moves focus to first item in submenu (adobe#9691) fix: prevent docs crash by making template elements always append children into .content (adobe#9703) docs(RAC): Add TreeSection docs (adobe#9699) docs(S2): add Typography search view (adobe#9524) docs(S2): fix clipping in Picker custom value AvatarGroup example (adobe#9702) fix: patch additional methods so React doesnt break with template elements (adobe#9385) tentative fix (adobe#9635) docs(S2): fix icon import clipboard content to add underscore for icons starting with number (adobe#9698) feat(S2): add ActionBar support to TreeView (adobe#9695) fix: combobox interactoutside (adobe#9646) fix: skip native Date fast path when local timezone is overridden via setLocalTimeZone (adobe#9678) chore: update storybook to 9 (adobe#8634) docs: improve custom render value S2 Picker example (adobe#9682) # Conflicts: # yarn.lock
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.
Closes #9686
✅ Pull Request Checklist:
📝 Test Instructions:
Go to RAC Submenu story and make sure that Enter/Space opens the submenu and that focus lands on the first item in the submenu. Pressing Enter/Space again should trigger the submenu item
🧢 Your Project:
RSP