Includes the following fixes for how we deal with ariab-describedby in the form field:
fix(material/form-field): avoid touching the DOM on each state change
Currently we set the aria-describedby every time the state of the form control changes. This is excessive, because it only needs to happen if the error state or userAriaDescribedBy change.
fix(material/input): preserve aria-describedby set externally
Currently there are two sources of an aria-describedby for a matInput: the IDs of the hint/error message in the form field and any custom ones set through aria-describedby. This is insufficient, because the ID can also come from a direct DOM manipulation like in the AriaDescriber.
These changes tweak the logic to try and preserve them, because currently they get overwritten.
Includes the following fixes for how we deal with
ariab-describedby
in the form field:fix(material/form-field): avoid touching the DOM on each state change
Currently we set the
aria-describedby
every time the state of the form control changes. This is excessive, because it only needs to happen if the error state oruserAriaDescribedBy
change.fix(material/input): preserve aria-describedby set externally
Currently there are two sources of an
aria-describedby
for amatInput
: the IDs of the hint/error message in the form field and any custom ones set througharia-describedby
. This is insufficient, because the ID can also come from a direct DOM manipulation like in theAriaDescriber
.These changes tweak the logic to try and preserve them, because currently they get overwritten.
Fixes #30011.