PHPackages                             web-vision/a11y-by-default - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. web-vision/a11y-by-default

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

web-vision/a11y-by-default
==========================

Accessibility checker backend module for TYPO3 using axe-core and HTML CodeSniffer

1.0.1(1mo ago)034↑216.7%GPL-2.0-or-laterTypeScriptPHP &gt;=8.2

Since Jul 3Pushed 1mo agoCompare

[ Source](https://github.com/web-vision/a11y-by-default)[ Packagist](https://packagist.org/packages/web-vision/a11y-by-default)[ Docs](https://github.com/web-vision/a11y-by-default)[ RSS](/packages/web-vision-a11y-by-default/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (9)Versions (3)Used By (0)

TYPO3 Extension `a11y_by_default` (A11y by default - Accessibility Checker)
===========================================================================

[](#typo3-extension-a11y_by_default-a11y-by-default---accessibility-checker)

Accessibility checker backend module for TYPO3 using axe-core and HTML CodeSniffer.

URL**Repository:****Read online:****TER:**[https://extensions.typo3.org/extension/a11y\_by\_default/](https://extensions.typo3.org/extension/a11y_by_default/)Compatibility
-------------

[](#compatibility)

BranchVersionTYPO3PHPmain1.x-devv13 + v148.2, 8.3, 8.4, 8.5What it does
------------

[](#what-it-does)

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.

### Key Features:

[](#key-features)

- **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.

Installation
------------

[](#installation)

### Via Composer

[](#via-composer)

```
composer require web-vision/a11y-by-default
```

### Manual Installation

[](#manual-installation)

1. Download the extension.
2. Upload it to `typo3conf/ext/a11y_by_default`.
3. Activate the extension in the Extension Manager.

Usage
-----

[](#usage)

1. Open the **Accessibility** module in the web section of the TYPO3 backend.
2. Select a page in the page tree.
3. The extension will automatically render the page and perform an accessibility scan.
4. Review the found notices, warnings, and errors.
5. Use the provided links to learn how to fix the identified issues.

Development
-----------

[](#development)

### JavaScript/TypeScript Build

[](#javascripttypescript-build)

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 buildJs
```

### Testing

[](#testing)

The 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 lintJs
```

Create a release (maintainers only)
-----------------------------------

[](#create-a-release-maintainers-only)

Prerequisites:

- git binary
- ssh key allowed to push new branches to the repository
- GitHub command line tool `gh` installed and configured with user having permission to create pull requests.

**Prepare release locally**

> Set `RELEASE_BRANCH` to branch release should happen, for example: 'main'. Set `RELEASE_VERSION` to 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 origin
```

Credits
-------

[](#credits)

Inspired by the pa11y dashboard layout. Developed by Markus Hofmann (web-vision GmbH).

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance90

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

47d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1453466?v=4)[Stefan Bürk](/maintainers/sbuerk)[@sbuerk](https://github.com/sbuerk)

![](https://www.gravatar.com/avatar/1a1ddeb615ab1289506094f767ffacee7e1deaa6c914527b116cf88fcbe62e68?d=identicon)[calien666](/maintainers/calien666)

---

Top Contributors

[![calien666](https://avatars.githubusercontent.com/u/11405116?v=4)](https://github.com/calien666 "calien666 (71 commits)")[![sbuerk](https://avatars.githubusercontent.com/u/1453466?v=4)](https://github.com/sbuerk "sbuerk (4 commits)")

---

Tags

accessibilitytypo3-cms-extensiontypo3-extension

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/web-vision-a11y-by-default/health.svg)

```
[![Health](https://phpackages.com/badges/web-vision-a11y-by-default/health.svg)](https://phpackages.com/packages/web-vision-a11y-by-default)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103574.3k70](/packages/friendsoftypo3-content-blocks)[fluidtypo3/flux

The flux package from FluidTYPO3

1501.0M25](/packages/fluidtypo3-flux)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

15100.9k](/packages/eliashaeussler-typo3-form-consent)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

571.8M9](/packages/yoast-seo-for-typo3-yoast-seo)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40543.5k](/packages/wazum-sluggi)[typo3/cms-adminpanel

TYPO3 CMS Admin Panel - The Admin Panel displays information about your site in the frontend and contains a range of metrics including debug and caching information.

115.8M71](/packages/typo3-cms-adminpanel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
