From 2f97e75645a90598607bcca31802998ff5c17d36 Mon Sep 17 00:00:00 2001 From: harsha573252 Date: Thu, 4 Jun 2026 20:00:03 +0530 Subject: [PATCH 1/3] nui-toolbar access (a11y): add ARIA labels, Home/End navigation, and decorative button icons - Added `aria-label`/`aria-labelledby` - Added Home & End keyboard support with tests - Set button icons as decorative (`[decorative]="true"`) --- .../bits/src/lib/button/button.component.html | 1 + .../toolbar/toolbar-keyboard.service.spec.ts | 30 +++++++++++++++++++ .../lib/toolbar/toolbar-keyboard.service.ts | 10 +++++++ .../bits/src/lib/toolbar/toolbar.component.ts | 9 ++++++ 4 files changed, 50 insertions(+) diff --git a/packages/bits/src/lib/button/button.component.html b/packages/bits/src/lib/button/button.component.html index e512ee974..ea401fed9 100644 --- a/packages/bits/src/lib/button/button.component.html +++ b/packages/bits/src/lib/button/button.component.html @@ -12,6 +12,7 @@ [icon]="icon" [iconSize]="getIconSize()" [iconColor]="iconColor" + [decorative]="true" >
diff --git a/packages/bits/src/lib/toolbar/toolbar-keyboard.service.spec.ts b/packages/bits/src/lib/toolbar/toolbar-keyboard.service.spec.ts index d068bcbaa..525987a62 100644 --- a/packages/bits/src/lib/toolbar/toolbar-keyboard.service.spec.ts +++ b/packages/bits/src/lib/toolbar/toolbar-keyboard.service.spec.ts @@ -122,6 +122,36 @@ describe("Services > ", () => { service.onKeyDown(rightButtonPressEvent); expect(spy).toHaveBeenCalled(); }); + + it("should navigate to first element on pressing Home key", () => { + const items = service["toolbarItems"]; + const first = items[0]; + const last = items[items.length - 1]; + const spy = spyOn(first, "focus"); + + last.focus(); + + service.onKeyDown({ + ...keyboardEventMock, + code: KEYBOARD_CODE.HOME, + } as KeyboardEvent); + expect(spy).toHaveBeenCalled(); + }); + + it("should navigate to last element on pressing End key", () => { + const items = service["toolbarItems"]; + const first = items[0]; + const last = items[items.length - 1]; + const spy = spyOn(last, "focus"); + + first.focus(); + + service.onKeyDown({ + ...keyboardEventMock, + code: KEYBOARD_CODE.END, + } as KeyboardEvent); + expect(spy).toHaveBeenCalled(); + }); }); }); }); diff --git a/packages/bits/src/lib/toolbar/toolbar-keyboard.service.ts b/packages/bits/src/lib/toolbar/toolbar-keyboard.service.ts index 5dbd28413..724da35d7 100644 --- a/packages/bits/src/lib/toolbar/toolbar-keyboard.service.ts +++ b/packages/bits/src/lib/toolbar/toolbar-keyboard.service.ts @@ -44,6 +44,16 @@ export class ToolbarKeyboardService { this.navigateByArrow(code); } + if (code === KEYBOARD_CODE.HOME) { + event.preventDefault(); + this.focusFirst(); + } + + if (code === KEYBOARD_CODE.END) { + event.preventDefault(); + this.focusLast(); + } + if (code === KEYBOARD_CODE.TAB) { this.closeMenuIfOpened(); } diff --git a/packages/bits/src/lib/toolbar/toolbar.component.ts b/packages/bits/src/lib/toolbar/toolbar.component.ts index 9df4d3546..e8913c83b 100644 --- a/packages/bits/src/lib/toolbar/toolbar.component.ts +++ b/packages/bits/src/lib/toolbar/toolbar.component.ts @@ -65,6 +65,9 @@ import { MenuComponent } from "../menu"; host: { class: "nui-toolbar nui-strip-layout nui-flex-container", role: "toolbar", + "[attr.aria-label]": "ariaLabel || null", + "[attr.aria-labelledby]": "ariaLabelledBy || null", + "[attr.aria-orientation]": "ariaOrientation || null", }, styleUrls: ["./toolbar.component.less"], encapsulation: ViewEncapsulation.None, @@ -78,6 +81,12 @@ export class ToolbarComponent implements AfterViewInit, OnDestroy { @ContentChildren(ToolbarItemComponent, { descendants: true }) public items: QueryList; + @Input() public ariaLabel?: string; + + @Input() public ariaLabelledBy?: string; + + @Input() public ariaOrientation?: "horizontal" | "vertical"; + @Input() /** * selectionEnabled: boolean which allows to show selected section From d5a06e7c8bd56341ae8b01be898957fc4c56e389 Mon Sep 17 00:00:00 2001 From: harsha573252 Date: Thu, 4 Jun 2026 20:19:36 +0530 Subject: [PATCH 2/3] Bump version to 20.0.6 across all packages Updated version to 20.0.6 across all packages --- docs/CHANGELOG.md | 4 ++++ package.json | 2 +- packages/bits/package.json | 2 +- packages/bits/schematics/package.json | 2 +- packages/charts/package.json | 4 ++-- packages/dashboards/package.json | 6 +++--- packages/dashboards/schematics/package.json | 2 +- 7 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4b31c3188..b2c0d40c3 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [20.0.6] 📅 2025-06-04 +### Fixes +- `@nova-ui/bits` | A11y fixes for nui-toolbar + ## [20.0.5] 📅 2025-06-04 ### Fixes - `@nova-ui/bits` | A11y fixies for Home Summary diff --git a/package.json b/package.json index 77cd3dd34..f16584c47 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,7 @@ "trigger-pipeline-build-ci": "bash scripts/trigger-pipeline-build", "verify-ci": "bash scripts/verify-published" }, - "version": "20.0.5", + "version": "20.0.6", "workspaces": [ "packages/*" ] diff --git a/packages/bits/package.json b/packages/bits/package.json index 5d7568135..4f2039d23 100644 --- a/packages/bits/package.json +++ b/packages/bits/package.json @@ -133,6 +133,6 @@ "visual:watch": "npx watch \"yarn run visual:base\" src demo spec --watch=1" }, "typings": "public_api.d.ts", - "version": "20.0.5", + "version": "20.0.6", "packageManager": "yarn@1.22.18" } diff --git a/packages/bits/schematics/package.json b/packages/bits/schematics/package.json index 9b00b2d7b..0f05b12b1 100644 --- a/packages/bits/schematics/package.json +++ b/packages/bits/schematics/package.json @@ -1,7 +1,7 @@ { "name": "nova-schematics", "license": "Apache-2.0", - "version": "20.0.5", + "version": "20.0.6", "scripts": { "assemble": "run-s build copy:json copy:data test copy:dist", "build": "tsc -p tsconfig.json", diff --git a/packages/charts/package.json b/packages/charts/package.json index e37f5e2a0..e26b9d4ce 100644 --- a/packages/charts/package.json +++ b/packages/charts/package.json @@ -45,7 +45,7 @@ "license": "Apache-2.0", "name": "@nova-ui/charts", "dependencies": { - "@nova-ui/bits": "~20.0.5" + "@nova-ui/bits": "~20.0.6" }, "peerDependencies": { "@types/d3": "^5.0.0", @@ -114,5 +114,5 @@ "visual:gui": "yarn run visual:base -c gui", "visual:serve": "yarn run visual:base -c serve" }, - "version": "20.0.5" + "version": "20.0.6" } diff --git a/packages/dashboards/package.json b/packages/dashboards/package.json index f5f5ec81e..062848d04 100644 --- a/packages/dashboards/package.json +++ b/packages/dashboards/package.json @@ -41,8 +41,8 @@ "license": "Apache-2.0", "name": "@nova-ui/dashboards", "dependencies": { - "@nova-ui/bits": "~20.0.5", - "@nova-ui/charts": "~20.0.5" + "@nova-ui/bits": "~20.0.6", + "@nova-ui/charts": "~20.0.6" }, "devDependencies": { "@apollo/client": "3.13.9", @@ -116,5 +116,5 @@ "visual:gui": "yarn run visual:base -c gui", "visual:serve": "yarn run visual:base -c serve" }, - "version": "20.0.5" + "version": "20.0.6" } diff --git a/packages/dashboards/schematics/package.json b/packages/dashboards/schematics/package.json index 077fde6ee..b37664889 100644 --- a/packages/dashboards/schematics/package.json +++ b/packages/dashboards/schematics/package.json @@ -1,7 +1,7 @@ { "name": "dashboards-schematics", "license": "Apache-2.0", - "version": "20.0.5", + "version": "20.0.6", "scripts": { "assemble": "run-s build copy:json copy:data test copy:dist", "build": "tsc -p tsconfig.json", From 93b00ca808b2af4f33956bf8ae21d2d1b36bd636 Mon Sep 17 00:00:00 2001 From: harsha573252 Date: Mon, 29 Jun 2026 13:31:57 +0530 Subject: [PATCH 3/3] Bump version to 20.0.7 across all packages Updated version to 20.0.7 across all packages --- docs/CHANGELOG.md | 2 +- package.json | 2 +- packages/bits/package.json | 2 +- packages/bits/schematics/package.json | 2 +- packages/charts/package.json | 6 +++--- packages/dashboards/package.json | 8 ++++---- packages/dashboards/schematics/package.json | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index b2c0d40c3..7a9176371 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [20.0.6] 📅 2025-06-04 +## [20.0.7] 📅 2026-06-29 ### Fixes - `@nova-ui/bits` | A11y fixes for nui-toolbar diff --git a/package.json b/package.json index f16584c47..b65a89e64 100644 --- a/package.json +++ b/package.json @@ -129,7 +129,7 @@ "trigger-pipeline-build-ci": "bash scripts/trigger-pipeline-build", "verify-ci": "bash scripts/verify-published" }, - "version": "20.0.6", + "version": "20.0.7", "workspaces": [ "packages/*" ] diff --git a/packages/bits/package.json b/packages/bits/package.json index 4f2039d23..e004b9963 100644 --- a/packages/bits/package.json +++ b/packages/bits/package.json @@ -133,6 +133,6 @@ "visual:watch": "npx watch \"yarn run visual:base\" src demo spec --watch=1" }, "typings": "public_api.d.ts", - "version": "20.0.6", + "version": "20.0.7", "packageManager": "yarn@1.22.18" } diff --git a/packages/bits/schematics/package.json b/packages/bits/schematics/package.json index 0f05b12b1..5f0f35103 100644 --- a/packages/bits/schematics/package.json +++ b/packages/bits/schematics/package.json @@ -1,7 +1,7 @@ { "name": "nova-schematics", "license": "Apache-2.0", - "version": "20.0.6", + "version": "20.0.7", "scripts": { "assemble": "run-s build copy:json copy:data test copy:dist", "build": "tsc -p tsconfig.json", diff --git a/packages/charts/package.json b/packages/charts/package.json index 04e2a7b15..555f98cd2 100644 --- a/packages/charts/package.json +++ b/packages/charts/package.json @@ -45,7 +45,7 @@ "license": "Apache-2.0", "name": "@nova-ui/charts", "dependencies": { - "@nova-ui/bits": "~20.0.6" + "@nova-ui/bits": "~20.0.7" }, "peerDependencies": { "@types/d3": "^5.0.0", @@ -114,5 +114,5 @@ "visual:gui": "yarn run visual:base -c gui", "visual:serve": "yarn run visual:base -c serve" }, - "version": "20.0.6" -} \ No newline at end of file + "version": "20.0.7" +} diff --git a/packages/dashboards/package.json b/packages/dashboards/package.json index ac7e807a4..d13064d70 100644 --- a/packages/dashboards/package.json +++ b/packages/dashboards/package.json @@ -41,8 +41,8 @@ "license": "Apache-2.0", "name": "@nova-ui/dashboards", "dependencies": { - "@nova-ui/bits": "~20.0.6", - "@nova-ui/charts": "~20.0.6" + "@nova-ui/bits": "~20.0.7", + "@nova-ui/charts": "~20.0.7" }, "devDependencies": { "@apollo/client": "3.13.9", @@ -116,5 +116,5 @@ "visual:gui": "yarn run visual:base -c gui", "visual:serve": "yarn run visual:base -c serve" }, - "version": "20.0.6" -} \ No newline at end of file + "version": "20.0.7" +} diff --git a/packages/dashboards/schematics/package.json b/packages/dashboards/schematics/package.json index b37664889..3c01daa94 100644 --- a/packages/dashboards/schematics/package.json +++ b/packages/dashboards/schematics/package.json @@ -1,7 +1,7 @@ { "name": "dashboards-schematics", "license": "Apache-2.0", - "version": "20.0.6", + "version": "20.0.7", "scripts": { "assemble": "run-s build copy:json copy:data test copy:dist", "build": "tsc -p tsconfig.json",