Skip to content

Commit a0322f3

Browse files
committed
feature(aria/toolbar): implement radiogroup in toolbar basic example
Adds radiogroup UI into the toolbar basic horizontal example. Also attempts to improve accessibility by adding LiveAnnouncer on button activation.
1 parent 752a47f commit a0322f3

File tree

5 files changed

+33
-3
lines changed

5 files changed

+33
-3
lines changed

src/components-examples/aria/toolbar/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ ng_project(
1414
"//:node_modules/@angular/forms",
1515
"//src/aria/radio-group",
1616
"//src/aria/toolbar",
17+
"//src/cdk/a11y",
1718
"//src/material/checkbox",
1819
"//src/material/form-field",
1920
"//src/material/select",

src/components-examples/aria/toolbar/toolbar-basic-horizontal/toolbar-basic-horizontal-example.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,18 @@
2121
(keydown.enter)="format('underline')">
2222
Underline
2323
</button>
24+
<ul
25+
ngRadioGroup
26+
class="example-radio-group"
27+
aria-label="Select text alignment"
28+
>
29+
@for (alignment of alignments; track alignment) {
30+
<li ngRadioButton [value]="alignment.value" class="example-radio-button">
31+
<span class="example-radio-indicator"></span>
32+
<span>{{ alignment.label }}</span>
33+
</li>
34+
}
35+
</ul>
2436
<button
2537
ngToolbarWidget
2638
class="example-radio-button"
Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,28 @@
11
import {Component} from '@angular/core';
22
import {Toolbar, ToolbarWidget} from '@angular/aria/toolbar';
3+
import {RadioGroup, RadioButton} from '@angular/aria/radio-group';
4+
import {LiveAnnouncer} from '@angular/cdk/a11y';
35

46
/** @title Basic Horizontal Toolbar Example */
57
@Component({
68
selector: 'toolbar-basic-horizontal-example',
79
templateUrl: 'toolbar-basic-horizontal-example.html',
810
styleUrl: '../toolbar-common.css',
9-
imports: [Toolbar, ToolbarWidget],
11+
imports: [RadioButton, RadioGroup, Toolbar, ToolbarWidget],
1012
})
1113
export class ToolbarBasicHorizontalExample {
14+
constructor(private liveAnnouncer: LiveAnnouncer) {}
15+
alignments = [
16+
{value: 'left', label: 'Left'},
17+
{value: 'center', label: 'Center'},
18+
{value: 'right', label: 'Right'},
19+
];
1220
format(tool: string) {
1321
console.log(`Tool activated: ${tool}`);
22+
this.liveAnnouncer.announce(`${tool} applied`, 'polite');
23+
}
24+
test(action: string) {
25+
console.log(`Action triggered: ${action}`);
26+
this.liveAnnouncer.announce(`${action} button activated`, 'polite');
1427
}
1528
}

src/dev-app/aria-toolbar/toolbar-demo.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.example-radio-grid {
22
display: grid;
3-
grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
3+
grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
44
gap: 20px;
55
}
66

@@ -18,3 +18,7 @@
1818
h4 {
1919
height: 36px;
2020
}
21+
22+
.example-toolbar-container {
23+
width: 100%;
24+
}

src/dev-app/aria-toolbar/toolbar-demo.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<h2>Toolbar Basic Horizontal</h2>
55
<toolbar-basic-horizontal-example></toolbar-basic-horizontal-example>
66
</div>
7-
<div class="example-configurable-radio-container">
7+
<div class="example-configurable-radio-container example-toolbar-container">
88
<h2>Configurable CDK Toolbar</h2>
99
<toolbar-configurable-example></toolbar-configurable-example>
1010
</div>

0 commit comments

Comments
 (0)