Skip to content

Commit e97c302

Browse files
authored
feat(ui5-search): enhance accessibility support (#12717)
* feat(ui5-search): enhance accessibility support add aria-controls attribute to the ui5-search-field
1 parent fdd67e4 commit e97c302

File tree

5 files changed

+42
-4
lines changed

5 files changed

+42
-4
lines changed

packages/fiori/cypress/specs/Search.cy.tsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1746,6 +1746,38 @@ describe("Accessibility", () => {
17461746
cy.get("[ui5-search]")
17471747
.should("be.focused");
17481748
});
1749+
1750+
it("should have aria-autocomplete='both' on the input element", () => {
1751+
cy.mount(
1752+
<Search>
1753+
<SearchItem text="Item 1" icon={history} />
1754+
</Search>
1755+
);
1756+
1757+
cy.get("[ui5-search]")
1758+
.shadow()
1759+
.find("input")
1760+
.should("have.attr", "aria-autocomplete", "both");
1761+
});
1762+
1763+
it("should have aria-controls pointing to responsive popover", () => {
1764+
cy.mount(
1765+
<Search>
1766+
<SearchItem text="Item 1" icon={history} />
1767+
</Search>
1768+
);
1769+
1770+
cy.get("[ui5-search]")
1771+
.shadow()
1772+
.find("input")
1773+
.invoke("attr", "aria-controls")
1774+
.then((ariaControlsId) => {
1775+
cy.get("[ui5-search]")
1776+
.shadow()
1777+
.find("[ui5-responsive-popover]")
1778+
.should("have.attr", "id", ariaControlsId);
1779+
});
1780+
});
17491781
});
17501782

17511783
describe("Lazy loaded items and autocomplete", () => {

packages/fiori/src/SearchFieldTemplate.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ export default function SearchFieldTemplate(this: SearchField, options?: SearchF
6464
role="searchbox"
6565
aria-description={this.accessibleDescription}
6666
aria-label={this.accessibleName || this._translations.searchFieldAriaLabel}
67+
aria-autocomplete="both"
68+
aria-controls="ui5-search-list"
6769
value={this.value}
6870
placeholder={this.placeholder}
6971
data-sap-focus-ref

packages/fiori/src/SearchItem.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ import SearchItemCss from "./generated/themes/SearchItem.css.js";
77
import generateHighlightedMarkup from "@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js";
88
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
99
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
10-
import { SEARCH_ITEM_DELETE_BUTTON } from "./generated/i18n/i18n-defaults.js";
10+
import {
11+
SEARCH_ITEM_DELETE_BUTTON_TOOLTIP,
12+
} from "./generated/i18n/i18n-defaults.js";
13+
1114
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
1215
import { getFirstFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
1316
import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
@@ -259,7 +262,7 @@ class SearchItem extends ListItemBase {
259262
}
260263

261264
get _deleteButtonTooltip() {
262-
return SearchItem.i18nBundle.getText(SEARCH_ITEM_DELETE_BUTTON);
265+
return SearchItem.i18nBundle.getText(SEARCH_ITEM_DELETE_BUTTON_TOOLTIP);
263266
}
264267

265268
get hasActions() {

packages/fiori/src/SearchPopoverTemplate.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type { JsxTemplate } from "@ui5/webcomponents-base/dist/index.js";
1717
export default function SearchPopoverTemplate(this: Search, headerTemplate?: JsxTemplate) {
1818
return (
1919
<ResponsivePopover
20+
id="ui5-search-list"
2021
hideArrow={true}
2122
preventFocusRestore={true}
2223
preventInitialFocus={!isPhone()}

packages/fiori/src/i18n/messagebundle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ SHELLBAR_IMAGE_BTN = User Menu
197197
#XACT: ARIA announcement for the search button
198198
SHELLBAR_SEARCH_BTN_OPEN = Open Search
199199

200-
#XACT: ARIA announcement for the search item delete button
201-
SEARCH_ITEM_DELETE_BUTTON=Remove Suggestion
200+
#XACT: ARIA announcement for the search item delete button tooltip
201+
SEARCH_ITEM_DELETE_BUTTON_TOOLTIP=Remove Suggestion
202202

203203
#XACT: ARIA announcement for the more button
204204
SHELLBAR_OVERFLOW = More

0 commit comments

Comments
 (0)