From 6b8cbb481a7a8ccd0da8bd3bb5a8ed8a4d87377b Mon Sep 17 00:00:00 2001 From: Andrey Dolgachev Date: Thu, 4 Dec 2025 20:33:33 +0900 Subject: [PATCH] feat(material/slide-toggle): Add option to completely hide label --- src/dev-app/slide-toggle/slide-toggle-demo.html | 4 ++++ src/material/slide-toggle/slide-toggle.scss | 5 +++++ src/material/slide-toggle/slide-toggle.spec.ts | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/dev-app/slide-toggle/slide-toggle-demo.html b/src/dev-app/slide-toggle/slide-toggle-demo.html index 59b711ac3e9f..837d1c47acce 100644 --- a/src/dev-app/slide-toggle/slide-toggle-demo.html +++ b/src/dev-app/slide-toggle/slide-toggle-demo.html @@ -12,6 +12,10 @@ Disable Bound No icon +

With no label.

+ + +

Example where the slide toggle is required inside of a form.

diff --git a/src/material/slide-toggle/slide-toggle.scss b/src/material/slide-toggle/slide-toggle.scss index babf986b0f8d..02df133b4a18 100644 --- a/src/material/slide-toggle/slide-toggle.scss +++ b/src/material/slide-toggle/slide-toggle.scss @@ -33,6 +33,11 @@ $fallbacks: m3-slide-toggle.get-tokens(); } } +// Ensure no label element (with a click handler) present to ensure hidden from screen readers. +label:empty { + display: none; +} + .mdc-switch__track { overflow: hidden; position: relative; diff --git a/src/material/slide-toggle/slide-toggle.spec.ts b/src/material/slide-toggle/slide-toggle.spec.ts index 6b6616830b32..ca91e65bef28 100644 --- a/src/material/slide-toggle/slide-toggle.spec.ts +++ b/src/material/slide-toggle/slide-toggle.spec.ts @@ -654,6 +654,8 @@ describe('MatSlideToggle with forms', () => { it('should update checked state on click if control is checked initially', fakeAsync(() => { fixture = TestBed.createComponent(SlideToggleWithModel); + fixture.detectChanges(); + slideToggle = fixture.debugElement.query(By.directive(MatSlideToggle))!.componentInstance; labelElement = fixture.debugElement.query(By.css('label'))!.nativeElement;