Accessibility checker backend module for TYPO3 using axe-core and HTML CodeSniffer.
| Branch | Version | TYPO3 | PHP |
|---|---|---|---|
| main | 1.x-dev | v13 + v14 | 8.2, 8.3, 8.4, 8.5 |
The goal of this extension is to provide a backend module that shows current accessibility problems of the page selected in the page tree. It helps editors and developers identify and fix accessibility issues directly within the TYPO3 backend.
- Client-side Scanning: Scans run directly in the user's browser using the TYPO3 View Module technique. This ensures the rendered page respects the logged-in backend user's session and access rights.
- Multiple Engines: Supports axe-core (default) and HTML CodeSniffer (user-selectable).
- Issue Classification: Distinguishes between issues that can be fixed by editors (e.g., content-related) and those that require developer intervention (e.g., template-related).
- No Data Persistence: Reports are generated fresh on each call and are not saved to the database.
- Page Layout Integration: Shows a hint above the Page Layout module if problems are found on the current page.
composer require web-vision/a11y-by-default- Download the extension.
- Upload it to
typo3conf/ext/a11y_by_default. - Activate the extension in the Extension Manager.
- Open the Accessibility module in the web section of the TYPO3 backend.
- Select a page in the page tree.
- The extension will automatically render the page and perform an accessibility scan.
- Review the found notices, warnings, and errors.
- Use the provided links to learn how to fix the identified issues.
The JavaScript is built from TypeScript. To build the assets, use the provided runTests.sh script:
./Build/Scripts/runTests.sh -s npmInstall
./Build/Scripts/runTests.sh -s buildJsThe extension includes functional and unit tests for both PHP and JavaScript.
# Run PHP unit tests
./Build/Scripts/runTests.sh -s unit
# Run PHP functional tests
./Build/Scripts/runTests.sh -s functional
# Run JavaScript linting
./Build/Scripts/runTests.sh -s lintJsPrerequisites:
- git binary
- ssh key allowed to push new branches to the repository
- GitHub command line tool
ghinstalled and configured with user having permission to create pull requests.
Prepare release locally
Set
RELEASE_BRANCHto branch release should happen, for example: 'main'. SetRELEASE_VERSIONto release version working on, for example: '1.0.0'.
echo '>> Create release based on configuration' ; \
RELEASE_BRANCH='main' ; \
RELEASE_VERSION='1.0.1' ; \
DEV_VERSION='1.0.2' ; \
echo ">> Checkout branches" && \
git checkout main && \
git fetch --all && \
git pull --rebase && \
git checkout ${RELEASE_BRANCH} && \
git pull --rebase && \
echo ">> Create release ${RELEASE_VERSION}" && \
git checkout -b release-${RELEASE_VERSION} && \
sed -i "s/^COMPOSER_ROOT_VERSION.*/COMPOSER_ROOT_VERSION=\"${RELEASE_VERSION}\"/" Build/Scripts/runTests.sh && \
sed -i "s/^ RELEASE_VERSION.*/ RELEASE_VERSION='${RELEASE_VERSION}' ; \\\\/" README.md && \
sed -i "s/^ DEV_VERSION.*/ DEV_VERSION='${DEV_VERSION}' ; \\\\/" README.md && \
tailor set-version ${RELEASE_VERSION} && \
composer config "extra"."typo3/cms"."version" "${RELEASE_VERSION}" && \
echo "${RELEASE_VERSION}" > VERSION && \
git add . && \
git commit -m "[RELEASE] ${RELEASE_VERSION}" && \
git push --set-upstream origin release-${RELEASE_VERSION} && \
gh pr create --fill --base ${RELEASE_BRANCH} --title "[RELEASE] ${RELEASE_VERSION}" && \
sleep 10 && \
gh pr checks --watch --interval 2 && \
sleep 10 && \
gh pr merge -rd --admin && \
git remote prune origin && \
git tag ${RELEASE_VERSION} && \
git push origin ${RELEASE_VERSION} && \
echo ">> Post-release - set dev version: ${DEV_VERSION}-dev" && \
git checkout -b set-dev-version-${DEV_VERSION} && \
sed -i "s/^COMPOSER_ROOT_VERSION.*/COMPOSER_ROOT_VERSION=\"${DEV_VERSION}-dev\"/" Build/Scripts/runTests.sh && \
tailor set-version ${DEV_VERSION} && \
composer config "extra"."typo3/cms"."version" "${DEV_VERSION}-dev" && \
echo "${DEV_VERSION}-dev" > VERSION && \
git add . && \
git commit -m "[TASK] Set dev version ${DEV_VERSION}" && \
git push --set-upstream origin set-dev-version-${DEV_VERSION} && \
gh pr create --fill --base ${RELEASE_BRANCH} --title "[TASK] Set dev version \"${DEV_VERSION}-dev\"" && \
sleep 10 && \
gh pr checks --watch --interval 2 && \
sleep 10 && \
gh pr merge -rd --admin && \
git remote prune originInspired by the pa11y dashboard layout. Developed by Markus Hofmann (web-vision GmbH).
| Version | Supported | End of Support |
|---|---|---|
| 1.x | ✅ | 2029-06-30 |
Found a vulnerability? Please report it privately via our security report form — do not open a public issue. See SECURITY.md for the full vulnerability disclosure policy, including what to expect and our safe harbor statement.
Hereby, web-vision GmbH declares that the product with digital elements type A11y by default - Accessibility Checker is in compliance with Regulation (EU) 2024/2847.
The full text of the EU declaration of conformity is available at the following internet address: https://security.web-vision.de/conformity/web-vision/a11y-by-default/1.1.0/en/
The full declarations are also included in this repository: English · Deutsch.
This extension is released under the GPL-2.0-or-later license.