File tree Expand file tree Collapse file tree 3 files changed +13
-4
lines changed
packages/clerk-js/src/ui/elements Expand file tree Collapse file tree 3 files changed +13
-4
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ ' @clerk/clerk-js ' : patch
3+ ---
4+
5+ Add ` aria-label ` and ` aria-expanded ` in menu trigger to improve accessibility
Original file line number Diff line number Diff line change @@ -44,12 +44,14 @@ export const Menu = withFloatingTree((props: MenuProps) => {
4444 ) ;
4545} ) ;
4646
47- type MenuTriggerProps = React . PropsWithChildren < Record < never , never > > ;
47+ type MenuTriggerProps = React . PropsWithChildren < { arialLabel ?: string | ( ( open : boolean ) => string ) } > ;
4848
4949export const MenuTrigger = ( props : MenuTriggerProps ) => {
50- const { children } = props ;
50+ const { children, arialLabel } = props ;
5151 const { popoverCtx, elementId } = useMenuState ( ) ;
52- const { reference, toggle } = popoverCtx ;
52+ const { reference, toggle, isOpen } = popoverCtx ;
53+
54+ const normalizedAriaLabel = typeof arialLabel === 'function' ? arialLabel ( isOpen ) : arialLabel ;
5355
5456 if ( ! isValidElement ( children ) ) {
5557 return null ;
@@ -60,6 +62,8 @@ export const MenuTrigger = (props: MenuTriggerProps) => {
6062 ref : reference ,
6163 elementDescriptor : children . props . elementDescriptor || descriptors . menuButton ,
6264 elementId : children . props . elementId || descriptors . menuButton . setId ( elementId ) ,
65+ 'aria-label' : normalizedAriaLabel ,
66+ 'aria-expanded' : isOpen ,
6367 onClick : ( e : React . MouseEvent ) => {
6468 children . props ?. onClick ?.( e ) ;
6569 toggle ( ) ;
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ export const ThreeDotsMenu = (props: ThreeDotsMenuProps) => {
2121 const { actions, elementId } = props ;
2222 return (
2323 < Menu elementId = { elementId } >
24- < MenuTrigger >
24+ < MenuTrigger arialLabel = { isOpen => ` ${ isOpen ? 'Close' : 'Open' } menu` } >
2525 < Button
2626 sx = { t => ( {
2727 padding : t . space . $0x5 ,
You can’t perform that action at this time.
0 commit comments