PHPackages                             blueways/bw-captcha - 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. blueways/bw-captcha

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

blueways/bw-captcha
===================

Captcha element with audio support for TYPO3 form components. The captcha generation does not rely on Google or third-party integrations.

5.4.1(1w ago)14315.0k↓54%11[5 issues](https://github.com/maikschneider/bw_captcha/issues)GPL-2.0-or-laterPHPPHP ^8.2CI passing

Since Jun 11Pushed 1w ago4 watchersCompare

[ Source](https://github.com/maikschneider/bw_captcha)[ Packagist](https://packagist.org/packages/blueways/bw-captcha)[ RSS](/packages/blueways-bw-captcha/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (42)Versions (87)Used By (0)

[![Extension icon](Resources/Public/Icons/Extension.svg)](Resources/Public/Icons/Extension.svg)

TYPO3 extension `bw_captcha`
============================

[](#typo3-extension-bw_captcha)

[![Latest version](https://camo.githubusercontent.com/4e6b8c70ab5b9370eef8f50ef11b166501e556a4fb1b13194b04ad1010c168be/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f76657273696f6e2f736869656c64732e737667)](https://camo.githubusercontent.com/4e6b8c70ab5b9370eef8f50ef11b166501e556a4fb1b13194b04ad1010c168be/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f76657273696f6e2f736869656c64732e737667)[![Supported TYPO3 versions](https://camo.githubusercontent.com/764195a5561e5c9024d37483b408dc62ff27b5050ade363c14aed5c8029e1b69/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f7479706f332f736869656c64732e737667)](https://extensions.typo3.org/extension/bw_captcha)[![Total downloads](https://camo.githubusercontent.com/bbe83f8a2207c6707f8b84e5e4d85ce2c28af1c994cb40b7e68124dc1deada12/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f646f776e6c6f6164732f736869656c64732e737667)](https://camo.githubusercontent.com/bbe83f8a2207c6707f8b84e5e4d85ce2c28af1c994cb40b7e68124dc1deada12/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f646f776e6c6f6164732f736869656c64732e737667)[![TYPO3 extension](https://camo.githubusercontent.com/51923a94eb42c27aaa218c878ddf78209113bf6cfc35a662849d0dfd6dfb68b3/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f657874656e73696f6e2f736869656c64732e737667)](https://extensions.typo3.org/extension/bw_captcha)[![Composer](https://camo.githubusercontent.com/5f495863032f1bacc87e71685a7ae5793cdda33f0fde69cbc6a7ddbd4636327e/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f636f6d706f7365722f736869656c64732e737667)](https://packagist.org/packages/blueways/bw-captcha)

This extension adds a captcha element for the TYPO3 form component. The captcha generation uses [Gregwar/Captcha](https://github.com/Gregwar/Captcha), **no Google or 3rd party** includes.

[![Frontend Captcha example](Documentation/Images/Example.jpg)](Documentation/Images/Example.jpg)

Install
-------

[](#install)

### Composer

[](#composer)

```
composer require blueways/bw-captcha
```

### TER

[](#ter)

[![TER version](https://camo.githubusercontent.com/4e6b8c70ab5b9370eef8f50ef11b166501e556a4fb1b13194b04ad1010c168be/68747470733a2f2f7479706f332d6261646765732e6465762f62616467652f62775f636170746368612f76657273696f6e2f736869656c64732e737667)](https://extensions.typo3.org/extension/bw_captcha)

Download the zip file from [TYPO3 extension repository (TER)](https://extensions.typo3.org/extension/bw_captcha).

Usage
-----

[](#usage)

Add the captcha element via Form Editor to your form or directly to your yaml form.

### Via Form Editor

[](#via-form-editor)

[![Captcha via Form Editor](Documentation/Images/Example2.jpg)](Documentation/Images/Example2.jpg)

### Or manual configuration

[](#or-manual-configuration)

```
renderables:
    -   type: Captcha
        identifier: captcha
        label: Captcha
        properties:
        fluidAdditionalAttributes:
            required: required
            autocomplete: 'off'
```

Configuration
-------------

[](#configuration)

### Via Site Set (recommended)

[](#via-site-set-recommended)

Include the site set `blueways/bw-captcha` in your site configuration.

To modify the captcha output, use the site settings module and adjust the settings in the "Accessible Form Captcha" section.

### Via TypoScript

[](#via-typoscript)

Alternatively, include the static TypoScript template or include **setup** and **constants** manually.

To modify the captcha output, you can use the following TypoScript **constants**:

```
plugin.tx_bwcaptcha {
    settings {
        # Show reload button
        refreshButton =

        # Show audio button for speech output
        audioButton =

        # The length of the captcha
        length =

        # The charset of the captcha
        charset =

        # The width of the image
        width =

        # The height of the image
        height =

        # Custom font file(s) to use (comma-separated)
        fontFiles =

        # Text color (e.g. 255,0,0)
        textColor =

        # Line color (e.g. 0,0,0)
        lineColor =

        # Background color (e.g. 255,255,255)
        backgroundColor =

        # Distortion
        distortion =

        # The maximum number of lines to draw in front of
        maxFrontLines =

        # The maximum number of lines to draw behind
        maxBehindLines =

        # The maximum angle of char
        maxAngle =

        # The maximum offset of char
        maxOffset =

        # Is the interpolation enabled?
        interpolation =

        # Ignore all effects
        ignoreAllEffects =
    }
}

```

### Usage in other Extensions

[](#usage-in-other-extensions)

#### sf\_event\_mgt

[](#sf_event_mgt)

To use the captcha element in the [sf\_event\_mgt](https://github.com/derhansen/sf_event_mgt/) extension, you need to include the captcha partial in your custom event [Registration](https://github.com/derhansen/sf_event_mgt/blob/main/Resources/Private/Templates/Event/Registration.html) template and activate the **sfEventMgt** feature in the extension settings:

```

    ...
+

```

```
$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['bw_captcha']['sfEventMgt'] = 1;
```

### Overriding the captcha element

[](#overriding-the-captcha-element)

To override the captcha partial, copy it to your extension and add the partial path to your [form setup](https://docs.typo3.org/c/typo3/cms-form/main/en-us/I/Concepts/Configuration/Index.html#yaml-registration-for-the-frontend):

```
TYPO3:
    CMS:
        Form:
        prototypes:
            standard:
            formElementsDefinition:
                Form:
                renderingOptions:
                    partialRootPaths:
                    1680889288: 'EXT:your_ext/Resources/Private/Frontend/Partials/'
```

Migration from version 4.x to 5.x
---------------------------------

[](#migration-from-version-4x-to-5x)

In this version the inline JavaScript has been moved to a separate file to better comply with a Content Security Policy (CSP). If you dynamically load or display the captcha element, you probably need to initialize the captcha manually:

```
window.BwCaptcha.init();
```

Make sure the [JavaScript file](Resources/Public/JavaScript/Frontend/Captcha.js) is included in your page: `EXT:bw_captcha/Resources/Public/JavaScript/Frontend/Captcha.js`

Migration from version 3.x to 4.x
---------------------------------

[](#migration-from-version-3x-to-4x)

This version aims to make solving the captcha more accessible. It introduces a new audio feature that reads out the current captcha code. Missing `ARIA` properties have been added.

- Check out the [new captcha partial](https://github.com/maikschneider/bw_captcha/blob/master/Resources/Private/Frontend/Partials/Captcha.html)
- Audio button is enabled by default (can be disabled via `plugin.tx_bwcaptcha.settings.audioButton`)

Migration from version 2.x to 3.x
---------------------------------

[](#migration-from-version-2x-to-3x)

The generation of the captcha moved to a middleware, which solves a lot of caching issues. Therefore, adjustments to the form element partial have been made. If you've modified the partial, you need to update the image tag and refresh button link.

**tl;dr**:

- Check out the [new captcha partial](https://github.com/maikschneider/bw_captcha/blob/master/Resources/Private/Frontend/Partials/Captcha.html)
- Reload button is enabled by default (can be disabled via `plugin.tx_bwcaptcha.settings.refreshButton`)
- You can re-enable the page cache, if disabled it because of this element

Troubleshooting
---------------

[](#troubleshooting)

### Refresh button not working

[](#refresh-button-not-working)

If your site is configured to use trailing slashes, the refresh url cannot be resolved. A simple fix is to add a setting for the pageType 3413, e.g.:

```
routeEnhancers:
    PageTypeSuffix:
        type: PageType
        default: /
        index: index
        map:
            /: 0
            .captcha: 3413
            .audio: 3414
```

License
-------

[](#license)

This project is licensed under [GNU General Public License 2.0 (or later)](LICENSE.md).

Contribute
----------

[](#contribute)

This extension was made by Maik Schneider: Feel free to contribute!

Thanks to [blueways](https://www.blueways.de/) and [XIMA](https://www.xima.de/)!

###  Health Score

64

—

FairBetter than 99% of packages

Maintenance91

Actively maintained with recent releases

Popularity45

Moderate usage in the ecosystem

Community22

Small or concentrated contributor base

Maturity80

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 87.8% 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 ~44 days

Recently: every ~31 days

Total

42

Last Release

9d ago

Major Versions

v1.2.1 → v2.0.02022-10-16

v1.3.0 → 9.x-dev2022-10-22

v2.0.6 → v3.0.02023-04-02

v3.1.0 → v4.0.02023-09-23

4.2.2 → 5.0.02025-03-14

PHP version history (2 changes)v4.0.0PHP ^8.1

5.4.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/04b105eb2ade5d364c2ae93a9a012d591594eaa3ad54d252db70856d1c293d5d?d=identicon)[m.schneider](/maintainers/m.schneider)

---

Top Contributors

[![maikschneider](https://avatars.githubusercontent.com/u/696865?v=4)](https://github.com/maikschneider "maikschneider (310 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (14 commits)")[![sebastian-iffland](https://avatars.githubusercontent.com/u/164147994?v=4)](https://github.com/sebastian-iffland "sebastian-iffland (12 commits)")[![dev-rke](https://avatars.githubusercontent.com/u/6354774?v=4)](https://github.com/dev-rke "dev-rke (3 commits)")[![ysoxima](https://avatars.githubusercontent.com/u/74920396?v=4)](https://github.com/ysoxima "ysoxima (3 commits)")[![magicsunday](https://avatars.githubusercontent.com/u/564393?v=4)](https://github.com/magicsunday "magicsunday (2 commits)")[![markussoeth](https://avatars.githubusercontent.com/u/306641?v=4)](https://github.com/markussoeth "markussoeth (2 commits)")[![o-ba](https://avatars.githubusercontent.com/u/8812114?v=4)](https://github.com/o-ba "o-ba (1 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (1 commits)")[![janhelke](https://avatars.githubusercontent.com/u/5299739?v=4)](https://github.com/janhelke "janhelke (1 commits)")[![achimfritz](https://avatars.githubusercontent.com/u/2152991?v=4)](https://github.com/achimfritz "achimfritz (1 commits)")[![schloram](https://avatars.githubusercontent.com/u/13196174?v=4)](https://github.com/schloram "schloram (1 commits)")[![sypets](https://avatars.githubusercontent.com/u/13206455?v=4)](https://github.com/sypets "sypets (1 commits)")[![Tim-Obert](https://avatars.githubusercontent.com/u/45205076?v=4)](https://github.com/Tim-Obert "Tim-Obert (1 commits)")

---

Tags

typo3typo3-cms-extensiontypo3

###  Code Quality

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/blueways-bw-captcha/health.svg)

```
[![Health](https://phpackages.com/badges/blueways-bw-captcha/health.svg)](https://phpackages.com/packages/blueways-bw-captcha)
```

###  Alternatives

[friendsoftypo3/content-blocks

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

103519.9k53](/packages/friendsoftypo3-content-blocks)[typo3/cms-styleguide

TYPO3 extension to showcase TYPO3 Backend capabilities

106760.3k33](/packages/typo3-cms-styleguide)[wazum/sluggi

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

40529.5k](/packages/wazum-sluggi)[jweiland/events2

Events 2 - Create single and recurring events

2166.7k3](/packages/jweiland-events2)[in2code/lux

Living User eXperience - LUX - the Marketing Automation tool for TYPO3.

2158.6k1](/packages/in2code-lux)[t3sbs/t3sbootstrap

Startup extension to use bootstrap 5 classes, components and more out of the box. Example and info: \[www.t3sbootstrap.de\](https://www.t3sbootstrap.de)

2416.4k](/packages/t3sbs-t3sbootstrap)

PHPackages © 2026

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