Accessibility
Accessibility is a crucial aspect of web development. It ensures that web applications are usable by everyone, including people with disabilities.
We use eslint-plugin-vuejs-accessibility to quickly catch accessibility issues in the codebase. This plugin is used in the @ownclouders/eslint-config.
We use @axe-core/playwright to automatically test the accessibility of the ownCloud Web client. All tests are run automatically on every PR and on commits to the master branch. We are not running dedicated accessibility tests and instead make them part of the E2E tests. This way we do not have to maintain duplicate tests and we can granularly add accessibility tests to the specific steps of the tests. The tests are considered failed if any serious or critical accessibility violations are found.
To run the accessibility tests, you can simply run our existing E2E tests using the following command:
pnpm test:e2e:cucumber
If you want to skip the accessibility tests, you can add the SKIP_A11Y_TESTS environment variable to your command.
SKIP_A11Y_TESTS=true pnpm test:e2e:cucumber
If you want to skip the accessibility tests in CI, you can add the [skip-a11y] flag into the title of the PR.
After the tests are run, a JSON accessibility report is generated in the reports/e2e/a11y-report.json file. This report contains detailed information about the accessibility violations found in the tests.