From 5fdaf59fb54ca0e54a68a9d128124567f6fd81a4 Mon Sep 17 00:00:00 2001 From: tsanislavgatev Date: Wed, 19 Mar 2025 15:55:41 +0200 Subject: [PATCH 1/5] feat(ui5-bar): allow role change --- packages/main/src/Bar.ts | 17 +++++++++++++++ packages/main/src/BarTemplate.tsx | 2 +- packages/main/src/types/BarAccessibleRole.ts | 22 ++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 packages/main/src/types/BarAccessibleRole.ts diff --git a/packages/main/src/Bar.ts b/packages/main/src/Bar.ts index 1c6b55f03a80..06b60d387198 100644 --- a/packages/main/src/Bar.ts +++ b/packages/main/src/Bar.ts @@ -5,12 +5,14 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js"; import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js"; import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js"; import type BarDesign from "./types/BarDesign.js"; +import type BarAccessibleRole from "./types/BarAccessibleRole.js"; // Template import BarTemplate from "./BarTemplate.js"; // Styles import BarCss from "./generated/themes/Bar.css.js"; +import type { AriaRole } from "@ui5/webcomponents-base/dist/types.js"; /** * @class @@ -65,6 +67,16 @@ class Bar extends UI5Element { @property() design: `${BarDesign}` = "Header"; + /** + * Used to define the role of the bar. + * @private + * @default "Toolbar" + * @since 2.9.0 + * + */ + @property() + accessibleRole: `${BarAccessibleRole}` = "Toolbar"; + /** * Defines the content at the start of the bar. * @public @@ -91,6 +103,7 @@ class Bar extends UI5Element { get accInfo() { return { "label": this.design, + "role": this.effectiveRole, }; } @@ -125,6 +138,10 @@ class Bar extends UI5Element { ResizeHandler.deregister(child as HTMLElement, this._handleResizeBound); }, this); } + + get effectiveRole() { + return this.accessibleRole.toLowerCase() as AriaRole; + } } Bar.define(); diff --git a/packages/main/src/BarTemplate.tsx b/packages/main/src/BarTemplate.tsx index ea8ed7d9b27c..e1a870299ade 100644 --- a/packages/main/src/BarTemplate.tsx +++ b/packages/main/src/BarTemplate.tsx @@ -5,7 +5,7 @@ export default function BarTemplate(this: Bar) {