diff --git a/src/cdk-experimental/accordion/accordion.ts b/src/cdk-experimental/accordion/accordion.ts index 670b94687bf1..5a761728bf2e 100644 --- a/src/cdk-experimental/accordion/accordion.ts +++ b/src/cdk-experimental/accordion/accordion.ts @@ -93,6 +93,8 @@ export class CdkAccordionPanel { '[attr.aria-expanded]': 'pattern.expanded()', '[attr.aria-controls]': 'pattern.controls()', '[attr.aria-disabled]': 'pattern.disabled()', + '[attr.inert]': 'hardDisabled() ? true : null', + '[attr.disabled]': 'hardDisabled() ? true : null', '[attr.tabindex]': 'pattern.tabindex()', '(keydown)': 'pattern.onKeydown($event)', '(pointerdown)': 'pattern.onPointerdown($event)', @@ -115,6 +117,13 @@ export class CdkAccordionTrigger { /** Whether the trigger is disabled. */ disabled = input(false, {transform: booleanAttribute}); + /** + * Whether this trigger is completely inaccessible. + * + * TODO(ok7sai): Consider move this to UI patterns. + */ + readonly hardDisabled = computed(() => this.pattern.disabled() && this.pattern.tabindex() < 0); + /** The accordion panel pattern controlled by this trigger. This is set by CdkAccordionGroup. */ readonly accordionPanel: WritableSignal = signal(undefined);