Skip to content

Commit aa6cad3

Browse files
authored
fix(menus): Add aria-expanded attribute to Button Icon menu trigger (#4621)
* add aria-expanded attribute * add docs * refactor out more className props * update menus and color-picker tests * update aria-expanded attr assignment on button-icons * update page-header tests * update button groups to use aria-expanded * update button-groups and button-icons tests * update data-tables tests * add release ntoes * remove debugging code
1 parent 1b2c604 commit aa6cad3

File tree

22 files changed

+102
-57
lines changed

22 files changed

+102
-57
lines changed

RELEASENOTES.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
<!-- Release notes authoring guidelines: http://keepachangelog.com/ -->
22
<!-- !!! THIS FILE IS AUTO-GENERATED !!! DO NOT EDIT THIS FILE MANUALLY !!! -->
33

4+
## Release 2.15.1 - April 2, 2021
5+
6+
## Components
7+
### [Menus](https://www.lightningdesignsystem.com/components/menus)
8+
#### Added
9+
- Added `aria-expanded` attribute to menu triggers with value dependent on menu's open state
10+
411
## Release 2.15.0 - March 25, 2020
512

613
- Removed Salesforce Sans as the default typeface and replaced it with OS-specific defaults.

ui/components/breadcrumbs/base/example.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const moreIcon = (
2323
);
2424

2525
let BreadcrumbMenu = props => (
26-
<Trigger className="slds-is-open" triggerIcon={moreIcon}>
26+
<Trigger isOpen triggerIcon={moreIcon}>
2727
<Menu className="slds-dropdown_left slds-dropdown_actions">
2828
<MenuList>
2929
<MenuItem tabIndex="0">Menu Item One</MenuItem>

ui/components/button-groups/__tests__/__snapshots__/index.spec.js.snap

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,10 @@ exports[`renders a button group with overflow open 1`] = `
8080
Save
8181
</button>
8282
<div
83-
className="slds-dropdown-trigger slds-dropdown-trigger_click slds-button_last slds-is-open"
83+
className="slds-dropdown-trigger slds-dropdown-trigger_click slds-is-open slds-button_last"
8484
>
8585
<button
86+
aria-expanded="true"
8687
aria-haspopup="true"
8788
className="slds-button slds-button_icon slds-button_icon-border-filled"
8889
onClick={[Function]}
@@ -207,6 +208,7 @@ exports[`renders a row a button icons spaced out 1`] = `
207208
className="slds-dropdown-trigger slds-dropdown-trigger_clicked"
208209
>
209210
<button
211+
aria-expanded="false"
210212
aria-haspopup="true"
211213
className="slds-button slds-button_icon slds-button_icon-more"
212214
onClick={[Function]}
@@ -243,6 +245,7 @@ exports[`renders a row a button icons spaced out 1`] = `
243245
className="slds-dropdown-trigger slds-dropdown-trigger_clicked"
244246
>
245247
<button
248+
aria-expanded="false"
246249
aria-haspopup="true"
247250
className="slds-button slds-button_icon slds-button_icon-more"
248251
onClick={[Function]}

ui/components/button-groups/__tests__/index.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ it('renders a button group with overflow open', () =>
3333
<Button isNeutral>Refresh</Button>
3434
<Button isNeutral>Edit</Button>
3535
<Button isNeutral>Save</Button>
36-
<Trigger className="slds-button_last slds-is-open">
36+
<Trigger className="slds-button_last" isOpen>
3737
<Menu className="slds-dropdown_right slds-dropdown_actions">
3838
<MenuList>
3939
<MenuItem tabIndex="0">Overflow Item One</MenuItem>

ui/components/button-groups/base/example.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export let states = [
6565
<Button isNeutral>Refresh</Button>
6666
<Button isNeutral>Edit</Button>
6767
<Button isNeutral>Save</Button>
68-
<Trigger className="slds-button_last" ariaExpanded="false" />
68+
<Trigger className="slds-button_last" />
6969
</ButtonGroup>
7070
)
7171
},
@@ -78,7 +78,7 @@ export let states = [
7878
<Button isNeutral>Refresh</Button>
7979
<Button isNeutral>Edit</Button>
8080
<Button isNeutral>Save</Button>
81-
<Trigger className="slds-button_last slds-is-open">
81+
<Trigger className="slds-button_last" isOpen>
8282
<Menu className="slds-dropdown_right slds-dropdown_actions">
8383
<MenuList>
8484
<MenuItem tabIndex="0">Overflow Item One</MenuItem>

ui/components/button-groups/list/example.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export let states = [
8383
<Button isNeutral>Save</Button>
8484
</ButtonGroupListItem>
8585
<ButtonGroupListItem>
86-
<Trigger className="slds-button_last" ariaExpanded="false" />
86+
<Trigger className="slds-button_last" />
8787
</ButtonGroupListItem>
8888
</ButtonGroupList>
8989
)
@@ -104,7 +104,7 @@ export let states = [
104104
<Button isNeutral>Save</Button>
105105
</ButtonGroupListItem>
106106
<ButtonGroupListItem>
107-
<Trigger className="slds-button_last slds-is-open">
107+
<Trigger className="slds-button_last" isOpen>
108108
<Menu className="slds-dropdown_right">
109109
<MenuList>
110110
<MenuItem tabIndex="0">Overflow Item One</MenuItem>

ui/components/button-icons/__tests__/__snapshots__/snapshot.spec.jsx.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ exports[`button icon with container renders a disabled button icon 1`] = `
260260

261261
exports[`button menu icon for dropdowns renders a button menu icon 1`] = `
262262
<button
263+
aria-expanded="false"
263264
aria-haspopup="true"
264265
className="slds-button slds-button_icon slds-button_icon-more"
265266
onClick={[Function]}
@@ -290,6 +291,7 @@ exports[`button menu icon for dropdowns renders a button menu icon 1`] = `
290291

291292
exports[`button menu icon for dropdowns renders a button menu icon on inversed background 1`] = `
292293
<button
294+
aria-expanded="false"
293295
aria-haspopup="true"
294296
className="slds-button slds-button_icon slds-button_icon-container-more slds-button_icon-inverse"
295297
onClick={[Function]}

ui/components/button-icons/index.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class ButtonIcon extends Component {
2727
isFirst,
2828
isMiddle,
2929
isLast,
30+
isOpen,
3031
useCurrentColor,
3132
innerRef,
3233
...rest
@@ -112,6 +113,7 @@ class ButtonIcon extends Component {
112113
className
113114
)}
114115
aria-haspopup={hasDropdown ? 'true' : this.props['aria-haspopup']}
116+
{...hasDropdown && { [`aria-expanded`]: isOpen ? 'true' : 'false' }}
115117
ref={innerRef}
116118
{...rest}
117119
>

ui/components/button-icons/menu/index.jsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,12 @@ export const ButtonMenu = props => {
4242
{label ? (
4343
<ButtonText label={label} assistiveText={assistiveText} />
4444
) : (
45-
<ButtonIcon hasDropdown symbol={symbol} assistiveText={assistiveText} />
45+
<ButtonIcon
46+
isOpen
47+
hasDropdown
48+
symbol={symbol}
49+
assistiveText={assistiveText}
50+
/>
4651
)}
4752
{children}
4853
</div>

ui/components/color-picker/__tests__/__snapshots__/index.spec.js.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5390,6 +5390,7 @@ exports[`renders a swatches only color picker 1`] = `
53905390
className="slds-dropdown-trigger slds-dropdown-trigger_click"
53915391
>
53925392
<button
5393+
aria-expanded="false"
53935394
aria-haspopup="true"
53945395
className="slds-button slds-button_icon slds-button_icon-border-filled"
53955396
onClick={[Function]}
@@ -7560,6 +7561,7 @@ exports[`renders an opened swatches only color picker 1`] = `
75607561
className="slds-dropdown-trigger slds-dropdown-trigger_click slds-is-open"
75617562
>
75627563
<button
7564+
aria-expanded="true"
75637565
aria-haspopup="true"
75647566
className="slds-button slds-button_icon slds-button_icon-border-filled"
75657567
onClick={[Function]}

0 commit comments

Comments
 (0)