Skip to main content
Version: v2

Testing With Cypress

The AudioEye Accessibility Testing SDK Cypress Library gives you the ability to write Cypress tests to test for accessibility issues in your web application.

Pre-requisites​

Visit the Getting Started page to learn how to setup Cypress in your project.

Usage​

Use the available tests to test for accessibility issues in your Cypress tests.

describe('accessibility tests', () => {
it('accessibility for the entire page matches our expectation', () => {
cy.visit('http://localhost:3000');

// For full page scan that uses the root element, we need to "get" something first otherwise the page won't be settled
cy.get('[data-cy="login"]').should('contain', 'Join or Login');

cy.get('html:root').then((htmlRootElement) => {
expect(htmlRootElement).to.findAccessibilityIssues();
expect(htmlRootElement).to.findTheseAccessibilityIssues('Img_Name_Missing');
expect(htmlRootElement).to.onlyHaveTheseAccessibilityIssues(
'Img_Name_Missing',
'Text_Contrast_TooLow',
'Html_Possible_Heading',
);
});
});

it('accessibility for the login button matches our expectation', () => {
cy.visit('http://localhost:3000');

cy.get('[data-cy="login"]').then((button) => expect(button).to.not.findAccessibilityIssues());
});
});

Available Tests​

findAccessibilityIssues​

Use .findAccessibilityIssues when checking if a component has accessibility issues.

it('expect to find accessibility issues on the page', () => {
cy.visit('http://localhost:3000');
cy.get('html:root').then((htmlRootElement) => expect(htmlRootElement).to.findAccessibilityIssues());
});
it('expect to find no accessibility issues on the page', () => {
cy.visit('http://localhost:3000');
cy.get('html:root').then((htmlRootElement) => expect(htmlRootElement).to.not.findAccessibilityIssues());
});

onlyHaveTheseAccessibilityIssues​

Use .onlyHaveTheseAccessibilityIssues when checking if a component has exactly the same issues as those expected. Pass a comma separated list of expected test names.

it('expect to find an accessibility issues when no alt-text is passed to component', () => {
cy.visit('http://localhost:3000');
cy.get('[data-cy="company-logo"]').then((htmlRootElement) =>
expect(htmlRootElement).to.onlyHaveTheseAccessibilityIssues('Img_Name_Missing'),
);
});

findTheseAccessibilityIssues​

Use .findTheseAccessibilityIssues when checking if a component's accessibility issues includes the issues expected. Pass a comma separated list of expected test names.

it('expect to find an alt-text accessibility issue', () => {
cy.visit('http://localhost:3000');
cy.get('[data-cy="company-logo"]').then((htmlRootElement) =>
expect(htmlRootElement).to.findTheseAccessibilityIssues('Img_Name_Missing'),
);
});
it('expect to not find an alt-text accessibility issue', () => {
cy.visit('http://localhost:3000');
const descriptiveImage = await promisify(cy.get(''));
cy.get('[data-cy="descriptive-image"]').then((htmlRootElement) => expect(htmlRootElement).to.not.findTheseAccessibilityIssues('Img_Name_Missing'));
});