feat: toHaveAccessibleErrorMessage should handle multiple aria-errormessage references
This commit is contained in:
parent
b142f3138c
commit
5a3862750b
|
|
@ -473,18 +473,15 @@ export function getElementAccessibleErrorMessage(element: Element): string {
|
||||||
if (isAriaInvalid) {
|
if (isAriaInvalid) {
|
||||||
const errorMessageId = element.getAttribute('aria-errormessage');
|
const errorMessageId = element.getAttribute('aria-errormessage');
|
||||||
if (errorMessageId) {
|
if (errorMessageId) {
|
||||||
// Ensure the ID is valid (no whitespace)
|
const errorMessages = getIdRefs(element, errorMessageId);
|
||||||
if (!/\s+/.test(errorMessageId)) {
|
if (errorMessages.length) {
|
||||||
// Retrieve the element referenced by aria-errormessage.
|
const parts = errorMessages.map(errorMessage => asFlatString(
|
||||||
const errorElement = element.ownerDocument.getElementById(errorMessageId);
|
getTextAlternativeInternal(errorMessage, {
|
||||||
if (errorElement) {
|
visitedElements: new Set(),
|
||||||
accessibleErrorMessage = asFlatString(
|
embeddedInDescribedBy: { element: errorMessage, hidden: isElementHiddenForAria(errorMessage) },
|
||||||
getTextAlternativeInternal(errorElement, {
|
})
|
||||||
visitedElements: new Set(),
|
));
|
||||||
embeddedInDescribedBy: { element: errorElement, hidden: isElementHiddenForAria(errorElement) },
|
accessibleErrorMessage = parts.join(' ').trim();
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue