From aeb214437d3231bd1825cd7676b6879c34274305 Mon Sep 17 00:00:00 2001 From: Boyi Li Date: Tue, 30 Jan 2024 14:03:10 -0800 Subject: [PATCH] fix(MatButtonToggle): use radio pattern for single select Mat toggle button group --- .../button-toggle/button-toggle-demo.html | 4 +-- src/material/button-toggle/button-toggle.html | 27 +++++++++---------- src/material/button-toggle/button-toggle.scss | 8 ++++++ src/material/button-toggle/button-toggle.ts | 16 ++++++++++- 4 files changed, 38 insertions(+), 17 deletions(-) diff --git a/src/dev-app/button-toggle/button-toggle-demo.html b/src/dev-app/button-toggle/button-toggle-demo.html index b2cfc8186f3e..474b5383790b 100644 --- a/src/dev-app/button-toggle/button-toggle-demo.html +++ b/src/dev-app/button-toggle/button-toggle-demo.html @@ -9,7 +9,7 @@

Exclusive Selection

- + format_align_left @@ -26,7 +26,7 @@

Exclusive Selection

- + format_align_left diff --git a/src/material/button-toggle/button-toggle.html b/src/material/button-toggle/button-toggle.html index 9a2113709715..81a8b18b23c5 100644 --- a/src/material/button-toggle/button-toggle.html +++ b/src/material/button-toggle/button-toggle.html @@ -1,17 +1,16 @@ - + + ; @@ -573,6 +578,15 @@ export class MatButtonToggle implements OnInit, AfterViewInit, OnDestroy { return this.name || null; } + /** Get the aria-pressed attribute value. */ + _getAriaPressed(): boolean | null { + // When the toggle stands alone, or in multiple selection mode, use aria-pressed attribute. + if (!this._isSingleSelector()) { + return this.checked; + } + return null; + } + /** Whether the toggle is in single selection mode. */ private _isSingleSelector(): boolean { return this.buttonToggleGroup && !this.buttonToggleGroup.multiple;