Open
Description
Heyho,
I have the problem that a button component has a label which has aria-hidden="true" causes findByRole to not look at the button's inner text.
In case I remove the for attribute from the label, it works as expected. But according to the accessibility tab in the browser, the label is ignored even with the for attribute set.
@testing-library/dom
version: ^8.20.0- DOM Environment:
@testing-library/cypress
: ^9.0.0
cypress
: ^12.3.0
Relevant code or config:
[
'button1', // The correct for attribute pointing to the button, this causes the last finyByRole to fail
undefined, // Don't set this attribute
].forEach((labelFor) =>
it('should find button', () => {
cy.mount(
<div className="SCFormControl">
{/* The label is needed due to some internal layout, other controls always have a label containing the user-visible text */}
<label id="button1_label" htmlFor={labelFor} aria-hidden="true"></label>
<button type="button" id="button1">
<span className="somestylingclasses">Button 1</span>
</button>
</div>,
);
cy.findByText('Button 1').should('exist');
cy.findByRole('button').should('exist');
cy.findByRole('button', { name: 'Button 1' }).should('exist');
}),
);
What happened:

Reproduction:
See attached code snippet
Metadata
Metadata
Assignees
Labels
No labels