Skip to content

Commit b89f045

Browse files
authored
fix: add combobox attributes (#2538)
adds aria-expanded to teams channel picker and people picker adds a title to the suggestions list for the people picker
1 parent 5184217 commit b89f045

File tree

5 files changed

+19
-18
lines changed

5 files changed

+19
-18
lines changed

index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ <h2>mgt-login</h2>
5858
<!-- <mgt-person-card person-query="me"></mgt-person-card> -->
5959
<h2>mgt-people-picker</h2>
6060
<mgt-people-picker show-max="6"></mgt-people-picker>
61-
<!-- <h2>mgt-teams-channel-picker</h2>
62-
<mgt-teams-channel-picker></mgt-teams-channel-picker> -->
61+
<h2>mgt-teams-channel-picker</h2>
62+
<mgt-teams-channel-picker></mgt-teams-channel-picker>
6363
<!-- <h2>mgt-tasks</h2>
6464
<mgt-tasks></mgt-tasks> -->
6565
<!-- <h2>mgt-agenda group-by-day</h2>

packages/mgt-components/src/components/mgt-people-picker/mgt-people-picker.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,7 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
761761
slot="anchor"
762762
id="people-picker-input"
763763
role="combobox"
764+
aria-expanded=${this.flyout?.isOpen ?? false}
764765
placeholder=${placeholder}
765766
aria-label=${this.ariaLabel || placeholder || this.strings.selectContact}
766767
@click="${this.handleInputClick}"
@@ -924,6 +925,7 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
924925
class="searched-people-list"
925926
role="listbox"
926927
aria-live="polite"
928+
title=${this.strings.suggestionsTitle}
927929
>
928930
${repeat(
929931
filteredPeople,
@@ -1262,7 +1264,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
12621264
flyout.close();
12631265
}
12641266
if (this.input) {
1265-
this.input.setAttribute('aria-expanded', 'false');
12661267
this.input.setAttribute('aria-activedescendant', '');
12671268
}
12681269
this._arrowSelectionCount = -1;
@@ -1279,9 +1280,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
12791280
if (flyout) {
12801281
flyout.open();
12811282
}
1282-
if (this.input) {
1283-
this.input.setAttribute('aria-expanded', 'true');
1284-
}
12851283
this._arrowSelectionCount = -1;
12861284
}
12871285

@@ -1371,7 +1369,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
13711369
private readonly lostFocus = () => {
13721370
this._isFocused = false;
13731371
if (this.input) {
1374-
this.input.setAttribute('aria-expanded', 'false');
13751372
this.input.setAttribute('aria-activedescendant', '');
13761373
}
13771374

packages/mgt-components/src/components/mgt-people-picker/strings.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ export const strings = {
99
inputPlaceholderText: 'Start typing a name',
1010
noResultsFound: "We didn't find any matches.",
1111
loadingMessage: 'Loading...',
12-
suggestedContact: 'suggested contact',
13-
suggestedContacts: 'suggested contacts',
1412
selected: 'selected',
15-
removeSelectedItem: 'remove selected item',
1613
removeSelectedUser: 'Remove ',
17-
selectContact: 'select a contact'
14+
selectContact: 'select a contact',
15+
suggestionsTitle: 'Suggested contacts'
1816
};

packages/mgt-components/src/components/mgt-teams-channel-picker/mgt-teams-channel-picker.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,11 +360,13 @@ export class MgtTeamsChannelPicker extends MgtTemplatedComponent {
360360
placeholder="${this._selectedItemState ? '' : this.strings.inputPlaceholderText} "
361361
label="teams-channel-picker-input"
362362
role="combobox"
363+
aria-expanded="${this._isDropdownVisible}"
363364
@click=${this.handleInputClick}
364365
@keydown=${this.handleInputKeydown}
365-
@keyup=${this.handleInputChanged}>
366-
<div tabindex="0" slot="start" style="width: max-content;">${this.renderSelected()}</div>
367-
<div tabindex="0" slot="end">${this.renderChevrons()}${this.renderCloseButton()}</div>
366+
@keyup=${this.handleInputChanged}
367+
>
368+
<div tabindex="0" slot="start" style="width: max-content;">${this.renderSelected()}</div>
369+
<div tabindex="0" slot="end">${this.renderChevrons()}${this.renderCloseButton()}</div>
368370
</fluent-text-field>
369371
<fluent-card class=${classMap(dropdownClasses)}>
370372
${this.renderDropdown()}

stories/components/peoplePicker/peoplePicker.a.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,14 @@ export const localization = () => html`
6464
LocalizationHelper.strings = {
6565
_components: {
6666
'people-picker': {
67-
inputPlaceholderText: 'Search for 🤼',
68-
noResultsFound: '🤷‍♀️',
69-
loadingMessage: '🦔'
70-
}
67+
inputPlaceholderText: 'Search for 🤼',
68+
noResultsFound: '🤷‍♀️',
69+
loadingMessage: '🦔',
70+
selected: '👉',
71+
removeSelectedUser: '❌ ',
72+
selectContact: 'Select 🤼',
73+
suggestionsTitle: '📃 Suggested 🤼'
74+
}
7175
}
7276
}
7377
</script>

0 commit comments

Comments
 (0)