Skip to content

Commit 5396c43

Browse files
authored
feat(aria/toolbar): adds toolbar basic vertical example to dev-app (#32126)
Updates components-examples and dev-app to implement a toolbar basic vertical example for accessibility testing.
1 parent 3d1cafb commit 5396c43

File tree

5 files changed

+90
-8
lines changed

5 files changed

+90
-8
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export {ToolbarBasicHorizontalExample} from './toolbar-basic-horizontal/toolbar-basic-horizontal-example';
2+
export {ToolbarBasicVerticalExample} from './toolbar-basic-vertical/toolbar-basic-vertical-example';
23
export {ToolbarConfigurableExample} from './toolbar-configurable/toolbar-configurable-example';
34
export {ToolbarSkipDisabledExample} from './toolbar-skip-disabled/toolbar-skip-disabled-example';
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<div class="example-container">
2+
<div ngToolbar orientation="vertical" class="example-toolbar" aria-label="Vertical Toolbar Text Formatting Tools">
3+
<button
4+
ngToolbarWidget
5+
class="example-radio-button"
6+
(click)="format('bold')"
7+
(keydown.enter)="format('bold')">
8+
Bold
9+
</button>
10+
<button
11+
ngToolbarWidget
12+
class="example-radio-button"
13+
(click)="format('italic')"
14+
(keydown.enter)="format('italic')">
15+
Italic
16+
</button>
17+
<button
18+
ngToolbarWidget
19+
class="example-radio-button"
20+
(click)="format('underline')"
21+
(keydown.enter)="format('underline')">
22+
Underline
23+
</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>
36+
<button
37+
ngToolbarWidget
38+
class="example-radio-button"
39+
[disabled]="true">
40+
Disabled Action
41+
</button>
42+
</div>
43+
</div>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import {Component} from '@angular/core';
2+
import {Toolbar, ToolbarWidget} from '@angular/aria/toolbar';
3+
import {RadioGroup, RadioButton} from '@angular/aria/radio-group';
4+
import {LiveAnnouncer} from '@angular/cdk/a11y';
5+
6+
/** @title Basic Vertical Toolbar Example */
7+
@Component({
8+
selector: 'toolbar-basic-vertical-example',
9+
templateUrl: 'toolbar-basic-vertical-example.html',
10+
styleUrl: '../toolbar-common.css',
11+
imports: [RadioButton, RadioGroup, Toolbar, ToolbarWidget],
12+
})
13+
export class ToolbarBasicVerticalExample {
14+
constructor(private _liveAnnouncer: LiveAnnouncer) {}
15+
alignments = [
16+
{value: 'left', label: 'Left'},
17+
{value: 'center', label: 'Center'},
18+
{value: 'right', label: 'Right'},
19+
];
20+
format(tool: string) {
21+
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');
27+
}
28+
}
Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
<div>
22
<div class="example-radio-grid">
33
<div class="example-toolbar-container">
4-
<h2>Toolbar Basic Horizontal</h2>
5-
<toolbar-basic-horizontal-example></toolbar-basic-horizontal-example>
4+
<h2>Toolbar Basic Horizontal</h2>
5+
<toolbar-basic-horizontal-example></toolbar-basic-horizontal-example>
66
</div>
77
<div class="example-toolbar-container">
8-
<h2>Toolbar Skip Disabled</h2>
9-
<toolbar-skip-disabled-example></toolbar-skip-disabled-example>
8+
<h2>Toolbar Skip Disabled</h2>
9+
<toolbar-skip-disabled-example></toolbar-skip-disabled-example>
10+
</div>
11+
<div class="example-toolbar-container">
12+
<h2>Toolbar Basic Vertical</h2>
13+
<toolbar-basic-vertical-example></toolbar-basic-vertical-example>
1014
</div>
1115
<div class="example-configurable-radio-container example-toolbar-container">
12-
<h2>Configurable CDK Toolbar</h2>
13-
<toolbar-configurable-example></toolbar-configurable-example>
16+
<h2>Configurable CDK Toolbar</h2>
17+
<toolbar-configurable-example></toolbar-configurable-example>
1418
</div>
1519
</div>
16-
</div>
20+
</div>

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,19 @@
99
import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';
1010
import {
1111
ToolbarBasicHorizontalExample,
12+
ToolbarBasicVerticalExample,
1213
ToolbarConfigurableExample,
1314
ToolbarSkipDisabledExample,
1415
} from '@angular/components-examples/aria/toolbar';
1516

1617
@Component({
1718
templateUrl: 'toolbar-demo.html',
18-
imports: [ToolbarBasicHorizontalExample, ToolbarConfigurableExample, ToolbarSkipDisabledExample],
19+
imports: [
20+
ToolbarBasicHorizontalExample,
21+
ToolbarBasicVerticalExample,
22+
ToolbarConfigurableExample,
23+
ToolbarSkipDisabledExample,
24+
],
1925
styleUrl: './toolbar-demo.css',
2026
encapsulation: ViewEncapsulation.None,
2127
changeDetection: ChangeDetectionStrategy.OnPush,

0 commit comments

Comments
 (0)