Open
Description
What is affected?
Component
Description
See: https://jsfiddle.net/datvm/zdpeqc5j/1/
For standard components, when an acestor <fieldset>
has [disabled=true]
, they are disabled as well. I think this behavior is not discussed yet so it's probably not a bug? Would you consider adding this feature?
Note: the screenshot above misses <md-select>
.
Reproduction
https://jsfiddle.net/datvm/zdpeqc5j/1/
<fieldset disabled>
<p>
<md-filled-button>A Material 3 Button</md-filled-button>
<button>Standard button</button>
</p>
<p>
<md-outlined-text-field></md-outlined-text-field>
<input value="Standard input" />
</p>
<p>
<md-checkbox></md-checkbox>
<md-switch></md-switch>
<input type="checkbox" value="Standard input" />
</p>
<p>
<md-radio></md-radio>
<input type="radio" value="Standard input" />
</p>
<p>
<md-slider></md-slider>
<input type="range" />
</p>
</fieldset>
Workaround
You have to manually set disabled
to each component in the fieldset
.
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
1.0.0
Browser/OS/Node environment
Metadata
Metadata
Assignees
Labels
No labels
Activity
asyncLiz commentedon Oct 3, 2023
We need to add
formDisabledCallback()
to our elements, since<fieldset>
can disable themThis would be a good community PR, want to take a stab at it?
[-]Button and Input components do not honor <fieldset> disabled attribute[/-][+]use formDisabledCallback to support <fieldset> disabled attribute[/+]datvm commentedon Oct 3, 2023
Sure I can do that :)
asyncLiz commentedon Dec 15, 2023
This is fixed now in 1.1 :)
mrpachara commentedon Feb 11, 2024
I not sure this is just a workaround or completely fix. The behavior is wrong due to, #5053 (comment). The component should not set
disabled
to itself. Moreover, when<fieldset>
is changed back toenabled
state, the<text-field>
is not changed back toenabled
.asyncLiz commentedon Feb 14, 2024
Interesting! After investigating, I believe the problem is that setting our own
disabled
attributes changes the underlying disabled state of the FACE.Instead, we need to handle an internal disabled state and a client-facing
disabled
attribute state.