@@ -44,13 +44,14 @@ export const DropdownMenuHeader: FC<DropdownMenuHeaderProps> = ({
4444} ) => {
4545 const menuHeaderClass = classnames (
4646 'slds-dropdown__header' ,
47+ 'slds-truncate' ,
4748 divider ? `slds-has-divider_${ divider } -space` : undefined ,
4849 className
4950 ) ;
5051 return (
51- < div className = { menuHeaderClass } >
52- < span className = 'slds-text-heading_label' > { children } </ span >
53- </ div >
52+ < li className = { menuHeaderClass } role = 'presentation' >
53+ < span > { children } </ span >
54+ </ li >
5455 ) ;
5556} ;
5657
@@ -221,35 +222,45 @@ export const DropdownMenuItem: FC<DropdownMenuItemProps> = (props) => {
221222 const menuItemClass = classnames (
222223 'slds-dropdown__item' ,
223224 { 'slds-is-selected' : selected } ,
224- divider ? `slds-has-divider_${ divider } -space` : undefined ,
225225 submenu ? 'slds-has-submenu' : undefined ,
226226 className
227227 ) ;
228228 return (
229- < li className = { menuItemClass } >
230- < a
231- role = 'menuitem'
232- { ...rprops }
233- className = 'slds-truncate react-slds-menuitem'
234- aria-disabled = { disabled }
235- aria-haspopup = { submenu != null }
236- aria-expanded = { submenuExpanded }
237- tabIndex = { disabled ? undefined : tabIndex }
238- onClick = { disabled ? undefined : onMenuItemClick }
239- onBlur = { disabled ? undefined : onMenuItemBlur }
240- onFocus = { disabled ? undefined : onMenuItemFocus }
241- onKeyDown = { disabled ? undefined : onKeyDown }
242- >
243- < p className = 'slds-truncate' >
244- { icon ? < Icon icon = { icon } size = 'x-small' align = 'left' /> : null }
245- { label || children }
246- </ p >
247- { iconRight || submenu ? (
248- < Icon icon = { iconRight ?? 'right' } size = 'x-small' align = 'right' />
249- ) : null }
250- </ a >
251- { submenu && submenuExpanded ? submenu : undefined }
252- </ li >
229+ < >
230+ { divider === 'top' ? (
231+ < li className = { `slds-has-divider_${ divider } -space` } role = 'separator' />
232+ ) : null }
233+ < li className = { menuItemClass } role = 'presentation' >
234+ < a
235+ role = 'menuitem'
236+ { ...rprops }
237+ className = 'react-slds-menuitem'
238+ aria-disabled = { disabled }
239+ aria-haspopup = { submenu != null }
240+ aria-expanded = { submenuExpanded }
241+ tabIndex = { disabled ? undefined : tabIndex }
242+ onClick = { disabled ? undefined : onMenuItemClick }
243+ onBlur = { disabled ? undefined : onMenuItemBlur }
244+ onFocus = { disabled ? undefined : onMenuItemFocus }
245+ onKeyDown = { disabled ? undefined : onKeyDown }
246+ >
247+ < span
248+ className = 'slds-truncate'
249+ title = { typeof label === 'string' ? label : undefined }
250+ >
251+ { icon ? < Icon icon = { icon } size = 'x-small' align = 'left' /> : null }
252+ { label || children }
253+ </ span >
254+ { iconRight || submenu ? (
255+ < Icon icon = { iconRight ?? 'right' } size = 'x-small' align = 'right' />
256+ ) : null }
257+ </ a >
258+ { submenu && submenuExpanded ? submenu : undefined }
259+ </ li >
260+ { divider === 'bottom' ? (
261+ < li className = { `slds-has-divider_${ divider } -space` } role = 'separator' />
262+ ) : null }
263+ </ >
253264 ) ;
254265} ;
255266
@@ -389,8 +400,8 @@ const DropdownMenuInner: FC<DropdownMenuProps & AutoAlignInjectedProps> = (
389400 onBlur = { onBlur }
390401 { ...rprops }
391402 >
392- { header ? < MenuHeader > { header } </ MenuHeader > : null }
393- < ul className = 'slds-dropdown__list' role = 'menu' >
403+ < ul className = 'slds-dropdown__list' role = 'menu' aria-label = { header } >
404+ { header ? < MenuHeader > { header } </ MenuHeader > : null }
394405 < DropdownMenuHandlerContext . Provider value = { handlers } >
395406 < OpenSubmenuContext . Provider
396407 value = { { openSubmenuKeys, handleSubmenuOpen } }
0 commit comments