From 80bd246543439844c3f5d30bc64babc2c8fff18e Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Fri, 1 Nov 2024 13:38:16 -0700 Subject: [PATCH] chore: use React.useId for a11y (#33402) --- packages/html-reporter/src/chip.tsx | 4 +++- packages/web/src/components/expandable.tsx | 10 ++++++++-- packages/web/src/components/treeView.tsx | 5 +++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/html-reporter/src/chip.tsx b/packages/html-reporter/src/chip.tsx index 537c439eb0..0965a40888 100644 --- a/packages/html-reporter/src/chip.tsx +++ b/packages/html-reporter/src/chip.tsx @@ -30,10 +30,12 @@ export const Chip: React.FC<{ dataTestId?: string, targetRef?: React.RefObject, }> = ({ header, expanded, setExpanded, children, noInsets, dataTestId, targetRef }) => { + const id = React.useId(); return
setExpanded?.(!expanded)} title={typeof header === 'string' ? header : undefined}> @@ -41,7 +43,7 @@ export const Chip: React.FC<{ {setExpanded && !expanded && icons.rightArrow()} {header}
- {(!setExpanded || expanded) &&
{children}
} + {(!setExpanded || expanded) &&
{children}
}
; }; diff --git a/packages/web/src/components/expandable.tsx b/packages/web/src/components/expandable.tsx index 01e064373f..a837bd0a0c 100644 --- a/packages/web/src/components/expandable.tsx +++ b/packages/web/src/components/expandable.tsx @@ -24,14 +24,20 @@ export const Expandable: React.FunctionComponent> = ({ title, children, setExpanded, expanded, expandOnTitleClick }) => { + const id = React.useId(); return
-
expandOnTitleClick && setExpanded(!expanded)}> +
expandOnTitleClick && setExpanded(!expanded)}>
!expandOnTitleClick && setExpanded(!expanded)} /> {title}
- { expanded &&
{children}
} + { expanded &&
{children}
}
; }; diff --git a/packages/web/src/components/treeView.tsx b/packages/web/src/components/treeView.tsx index cb7ab7150d..e6cf557e99 100644 --- a/packages/web/src/components/treeView.tsx +++ b/packages/web/src/components/treeView.tsx @@ -231,6 +231,7 @@ export function TreeItemHeader({ icon, isKeyboardNavigation, setIsKeyboardNavigation }: TreeItemHeaderProps) { + const groupId = React.useId(); const itemRef = React.useRef(null); React.useEffect(() => { @@ -251,7 +252,7 @@ export function TreeItemHeader({ const titled = title?.(item); const iconed = icon?.(item) || 'codicon-blank'; - return
+ return
onAccepted?.(item)} className={clsx( @@ -281,7 +282,7 @@ export function TreeItemHeader({ {icon &&
} {typeof rendered === 'string' ?
{rendered}
: rendered}
- {!!children.length &&
+ {!!children.length &&
{children.map(child => { const itemData = treeItems.get(child); return itemData &&