From fdd8a110308d28d13afaf36784dccb51cd438d87 Mon Sep 17 00:00:00 2001 From: Andrey Dolgachev Date: Thu, 23 Apr 2026 21:48:01 +0900 Subject: [PATCH] refactor(aria/tabs): remove unnecessary LabelControl usage --- goldens/aria/private/index.api.md | 3 +-- src/aria/private/tabs/tabs.ts | 17 ++--------------- 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/goldens/aria/private/index.api.md b/goldens/aria/private/index.api.md index bd0a7c6bba45..e867cb0ba8f6 100644 --- a/goldens/aria/private/index.api.md +++ b/goldens/aria/private/index.api.md @@ -707,7 +707,7 @@ export class TabListPattern { } // @public -export interface TabPanelInputs extends LabelControlOptionalInputs { +export interface TabPanelInputs { id: SignalLike; readonly tab: SignalLike; } @@ -720,7 +720,6 @@ export class TabPanelPattern { // (undocumented) readonly inputs: TabPanelInputs; readonly labelledBy: SignalLike; - readonly labelManager: LabelControl; readonly tabIndex: SignalLike<-1 | 0>; } diff --git a/src/aria/private/tabs/tabs.ts b/src/aria/private/tabs/tabs.ts index 7346f2dc3af5..91e009e53621 100644 --- a/src/aria/private/tabs/tabs.ts +++ b/src/aria/private/tabs/tabs.ts @@ -15,7 +15,6 @@ import { linkedSignal, signal, } from '../behaviors/signal-like/signal-like'; -import {LabelControl, LabelControlOptionalInputs} from '../behaviors/label/label'; import {ListFocus} from '../behaviors/list-focus/list-focus'; import { ListNavigation, @@ -81,7 +80,7 @@ export class TabPattern { } /** The required inputs for the tabpanel. */ -export interface TabPanelInputs extends LabelControlOptionalInputs { +export interface TabPanelInputs { /** A global unique identifier for the tabpanel. */ id: SignalLike; @@ -94,9 +93,6 @@ export class TabPanelPattern { /** A global unique identifier for the tabpanel. */ readonly id: SignalLike; // set from inputs - /** Controls label for this tabpanel. */ - readonly labelManager: LabelControl; - /** Whether the tabpanel is hidden. */ readonly hidden = computed(() => this.inputs.tab()?.expanded() === false); @@ -104,19 +100,10 @@ export class TabPanelPattern { readonly tabIndex = computed(() => (this.hidden() ? -1 : 0)); /** The aria-labelledby value for this tabpanel. */ - readonly labelledBy = computed(() => - this.labelManager.labelledBy().length > 0 - ? this.labelManager.labelledBy().join(' ') - : undefined, - ); + readonly labelledBy = computed(() => this.inputs.tab()?.id()); constructor(readonly inputs: TabPanelInputs) { this.id = inputs.id; - - this.labelManager = new LabelControl({ - ...inputs, - defaultLabelledBy: computed(() => (this.inputs.tab() ? [this.inputs.tab()!.id()] : [])), - }); } }