Skip to content

Commit 7ad9e77

Browse files
authored
Update TreeView based on a11y feedback (#2428)
* fix(TreeView): add inset to box shadow * fix: add event.preventDefault() to keyboard interactions * chore: add changeset
1 parent 31bbec8 commit 7ad9e77

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

.changeset/blue-frogs-destroy.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@primer/react': patch
3+
---
4+
5+
Update TreeView focus ring styles and call event.preventDefault() in arrow key events

src/TreeView/TreeView.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,18 +168,20 @@ const Item: React.FC<TreeViewItemProps> = ({
168168
break
169169

170170
case 'ArrowRight':
171-
if (!isExpanded) toggle()
171+
event.preventDefault()
172+
setIsExpanded(true)
172173
break
173174

174175
case 'ArrowLeft':
175-
if (isExpanded) toggle()
176+
event.preventDefault()
177+
setIsExpanded(false)
176178
break
177179
}
178180
}
179181

180182
element?.addEventListener('keydown', handleKeyDown)
181183
return () => element?.removeEventListener('keydown', handleKeyDown)
182-
}, [toggle, onSelect, isExpanded])
184+
}, [toggle, onSelect, setIsExpanded])
183185

184186
return (
185187
<ItemContext.Provider value={{level: level + 1, isExpanded, expandParents: expandParentsAndSelf}}>
@@ -225,7 +227,7 @@ const Item: React.FC<TreeViewItemProps> = ({
225227
// are unnecessarily specific to work around that styled-components bug.
226228
// Reference issue: https://github.com/styled-components/styled-components/issues/3265
227229
[`[role=tree][aria-activedescendant="${itemId}"]:focus-visible #${itemId} > &:is(div)`]: {
228-
boxShadow: (theme: Theme) => `0 0 0 2px ${theme.colors.accent.emphasis}`
230+
boxShadow: (theme: Theme) => `inset 0 0 0 2px ${theme.colors.accent.emphasis}`
229231
},
230232
'[role=treeitem][aria-current=true] > &:is(div)': {
231233
bg: 'actionListItem.default.selectedBg',

0 commit comments

Comments
 (0)