angular / angular/components

matTabLink `disabled` input should be `matTabLinkDisabled`

Open
#17,446 1 comment 0 reactions 0 assignees View on GitHub
area: material/tabs G P3 target: major
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

#### Reproduction

Use StackBlitz to reproduce your issue: https://stackblitz.com/edit/angular-zju32k

Steps to reproduce:
1. Put a tooltip on a `matTabLink`
2. Disabled the `matTabLink`

#### Expected Behavior

Tab should be disabled, and tooltip should show.

#### Actual Behavior

Tooltip did not show.

#### Notes/Thoughts

If the input is changed to `matTabLinkDisabled`, then `disabled` and `[disabled]="true"` should still be able to work. However, it would also be possible to use `matTabLinkDisabled`, which would make it possible to disable the `MatTabLink` specifically, without disabling any other directive on the element.

I *believe* this would be a non breaking change, as the input is declared in the `inputs` field on component:

```typescript
@Directive({
selector: '[mat-tab-link], [matTabLink]',
exportAs: 'matTabLink',
inputs: ['disabled', 'disableRipple', 'tabIndex'], // <== HERE
host: {
'class': 'mat-tab-link',
'[attr.aria-current]': 'active ? "page" : null',
'[attr.aria-disabled]': 'disabled',
'[attr.tabIndex]': 'tabIndex',
'[class.mat-tab-disabled]': 'disabled',
'[class.mat-tab-label-active]': 'active',
}
})
export class MatTabLink
```
So *my understanding* is right now, you can’t read the disabled field by name anyways.

#### Environment

- Angular: 8.2.11
- CDK/Material: 8.2.1
- Browser(s): Version 77.0.3865.120 (Official Build) (64-bit)
- Operating System (e.g. Windows, macOS, Ubuntu): Debian Rodette

Contributor guide

Open the contributing guide

Research direction

Start with the StackBlitz reproduction and the MatTabLink directive declaration shown in the issue, focusing on its disabled input and tooltip interaction. Done means a disabled tab link still displays its tooltip, while both disabled and matTabLinkDisabled remain usable as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.