CAPTCHA Widget Release Notes
Here you can see all the modifications and changes of the TrustCaptcha CAPTCHA widget.
CAPTCHA Widget 3.x
Section titled “CAPTCHA Widget 3.x”3.0.1 — 11.05.2026
Section titled “3.0.1 — 11.05.2026”- Fixed:
full-widthnow reliably stretches the widget to 100% in flex/grid parent layouts (e.g. Keycloak forms) where a plain block child does not auto-expand - Fixed: Invisible-hint can no longer be hidden behind other page elements — the
z-indexnow applies to the positioned wrapper instead of an unpositioned inner element - Fixed: With
white-labelenabled and no custom privacy URL, the invisible-hint no longer widens slightly on hover (the empty hover container is now omitted entirely)
3.0.0 — 08.05.2026
Section titled “3.0.0 — 08.05.2026”A major release that overhauls how the widget detects bots, what data it collects, how it integrates into modern frontend stacks, and how it behaves when our servers are temporarily unreachable.
Bot detection & verification quality
- Improved: Sharper signal collection for the bot score — more precise detection means fewer false positives for real users and harder bypasses for automated traffic
- Improved: Stronger honeypot system — multiple decoy fields with different concealment techniques and timing analysis, while leaving the host form’s submission payload untouched
- Improved: Faster, more accurate proof-of-work — workers are reused across challenges instead of being spawned per task, reducing time-to-verify especially on lower-end devices
- Improved: Headless / automation tooling detection covers current browser-automation frameworks
Privacy & data minimization
- Removed: A range of legacy event and DOM properties that no longer contributed to bot detection — less data collected in the first place
- Improved: Stricter handling of minimal-data mode — when enabled, no user-interaction events are tracked or transmitted, end-to-end
- Improved: Honeypot fields are no longer part of the host form’s natural submission and never leak honeypot values into the application’s form data
Failover behavior
- Added: Optional
failover-enabledmode. When activated and the captcha API is unreachable, the widget issues a clearly marked failover token so the user can still complete the form. The backend then decides — based on its own risk policy — whether to accept, soft-challenge, or reject the request
Customization & design
- Added: Spinner color, success-icon color, failure background / border / text color, and box / checkbox border-width are now part of the custom design schema
- Improved: Refined default light and dark themes (subtle border, spacing, and rounding adjustments)
- Improved: Trustcaptcha branding restyled and moved to the bottom-right corner; cleaner alignment with custom privacy links
- Updated: New error icon — a clearly recognizable warning triangle in place of the previous symbol
- Fixed: The widget text is now always left-aligned, regardless of the surrounding page or CMS context
Accessibility (targeting WCAG 2.2 AAA)
- Improved: Reworked screen-reader announcements for start, running, completed, failed and expired states — translated into all 38 supported languages
- Improved: Proper
role="checkbox"semantics witharia-checked,aria-busy,aria-disabledand a focus-visible outline - Improved: Keyboard handling — both Space and Enter activate the widget, and clicks on interactive children (links, buttons, custom privacy URL) are no longer absorbed by the widget
- Improved: Honors
prefers-reduced-motion(no spinner animation) - Improved: Failure reason is now announced in addition to the generic “verification failed” message
Events
- Added: New
captchaExpiredevent — fires when the verification token approaches its expiry and the widget auto-resets - Changed:
captchaFailednow emits a structured object ({ errorCode, message }) instead of a plain string, making programmatic error handling easier
Properties (renames & type changes) The widget API was tightened up for consistency. Existing integrations need to migrate the following attributes:
| Old | New | Notes |
|---|---|---|
trustcaptchaApi | apiUrl | renamed |
customTranslations | translations | renamed |
customDesign | design | renamed |
autostart (default true) | autostartDisabled (default false) | renamed and logic inverted |
mode="standard" / "minimal" | minimalDataMode (boolean) | type changed |
width="fixed" / "full" | fullWidth (boolean) | type changed |
license | licenseKey | renamed |
hideBranding | whiteLabel | renamed |
trustcaptchaUrl | — | removed (was a fixed internal value) |
A new failover-enabled attribute has been added (see above).
Error codes
- Removed:
UNAUTHORIZED,MODES_NOT_MATCHING,SITE_KEY_NOT_VALID,OPTION_NOT_AVAILABLE - Added:
SITE_KEY_FORMAT_INVALID,CAPTCHA_NOT_FOUND,MINIMAL_DATA_MODE_MISMATCH,LICENSE_FORMAT_INVALID,LICENSE_SITE_KEY_MISMATCH,LICENSE_FEATURE_MISSING_WHITE_LABEL,LICENSE_FEATURE_MISSING_INVISIBILITY,LICENSE_FEATURE_MISSING_CUSTOMIZABILITY - The single
OPTION_NOT_AVAILABLEcode has been split into three license-feature-specific codes so integrators can react to the exact missing entitlement - The error model’s
errorCodefield is now a typed enum value rather than a numeric index
Verification token
- Changed: The token is now produced fully server-side and includes the verification’s
expiresAt— the previously deprecatedapiEndpointandencryptedAccessTokenfields are no longer part of the payload. Existing backend SDKs continue to work; the simplified format is opaque to most integrations
License system
- Added:
whiteLabelis now its own license feature, separate fromcustomizability. Hiding the Trustcaptcha branding and customizing privacy/design can be licensed independently
Bug fixes
- Fixed:
data-autostart="false"is now also honored when the user types into a marked field, not just on focus - Fixed: Auto-reset timer and theme/language listeners are properly cleaned up when the widget is removed from the DOM
- Fixed: Audio-fingerprint deprecation warning in current browsers no longer appears in the console
Frameworks & ecosystem
- Updated: Angular wrapper requires Angular 17+, ships standalone components only
- Updated: React wrapper supports React 18 and 19
- Updated: Vue wrapper supports Vue 3.3+
- Updated: Stencil 4.43 with current output targets
Performance & footprint
- Improved: External JWT library replaced with the browser’s native
crypto.subtle— fewer runtime dependencies, smaller bundle - Improved: Faster proof-of-work startup through worker reuse and inline worker code (no extra HTTP request)
For step-by-step migration help see the Upgrade to v3 guide. The previous documentation set is preserved under Legacy v1 / v2.
CAPTCHA Widget 2.x
Section titled “CAPTCHA Widget 2.x”2.2.0 — 09.03.2026
Section titled “2.2.0 — 09.03.2026”- Added: Support for Angular 21
- Added: Translatable runtime error messages for users
- Improve: Default text translations for many languages
- Improve: Textual and visual accessibility
2.1.2 — 04.11.2025
Section titled “2.1.2 — 04.11.2025”- Added: Support for Angular 20
2.1.1 — 18.10.2025
Section titled “2.1.1 — 18.10.2025”- Bugfix: Automatic reset of the CAPTCHA widget shortly before the verification token expires
2.1.0 — 17.10.2025
Section titled “2.1.0 — 17.10.2025”- Added: Automatic reset of the CAPTCHA widget shortly before the verification token expires
2.0.1 — 24.06.2025
Section titled “2.0.1 — 24.06.2025”- Update: Improving accessibility
2.0.0 — 17.06.2025
Section titled “2.0.0 — 17.06.2025”- TrustCaptcha is now part of TrustComponent
- Changed: Scopes, namespaces and some packages combined under TrustComponent
- Changed: JavaScript files are no longer provided under
https://resources.trustcaptcha.com/. All TrustCaptcha JavaScript files from version 2.0.0 are now available athttps://cdn.trustcomponent.com/trustcaptcha/
CAPTCHA Widget 1.x
Section titled “CAPTCHA Widget 1.x”1.9.0 — 30.04.2025
Section titled “1.9.0 — 30.04.2025”- Added: Changeable rounding of CAPTCHA box corners
- Updated: TrustCaptcha branding link from
trustcaptcha.comtotrustcomponent.com - Updated: API endpoint changed from
api.captcha.trustcaptcha.comtoapi.trustcomponent.com - Updated: Privacy link now only visible if a custom privacy url is set
- Updated: Added screen reader translations for
fr,es,itandlb - Fixed: TrustCaptcha branding when theme uses auto detection
- Improved: Data privacy
- Removed: Slider
1.8.4 — 21.03.2025
Section titled “1.8.4 — 21.03.2025”- Added: Option to hide the privacy link
- Updated: Translations
- Updated: Accessibility improvements
1.8.3 — 19.02.2025
Section titled “1.8.3 — 19.02.2025”- Changed: Angular TrustCaptcha component now standalone (requires Angular 14+)
- Updated: StencilJS upgrade to
4.26 - Updated: Internal dependencies
1.8.2 — 15.02.2025
Section titled “1.8.2 — 15.02.2025”- Refactor: Technical improvements
1.8.1 — 31.01.2025
Section titled “1.8.1 — 31.01.2025”- Fixed: Error in older browsers like Safari 15
1.8.0 — 05.01.2025
Section titled “1.8.0 — 05.01.2025”- Added: Override translations and add additional languages
- Added: Customizable captcha-box design
- Added: Option to set a custom privacy link
- Added: Hint for running CAPTCHA if the CAPTCHA is invisible
- Updated: Angular version to v19
1.7.3 — 19.11.2024
Section titled “1.7.3 — 19.11.2024”- Added: Provide static UMD JavaScript bundles from version 1.7
- Added: Cache rules for static assets
- Changed: Improved proof-of-work and privacy measures
1.7.2 — 08.11.2024
Section titled “1.7.2 — 08.11.2024”- Updated: Links in README.md files
1.7.1 — 05.11.2024
Section titled “1.7.1 — 05.11.2024”- Added: Provide static CJS JavaScript bundles from version 1.7
- Added: Measures to optimize the captcha box in the future
- Changed: Replace company website with privacy url
1.7.0 — 01.11.2024
Section titled “1.7.0 — 01.11.2024”- Added: New captcha box slider security measure
- Added: Public JavaScript event
captchaReset() - Changed: Improved cache methods to improve loading performance of static JS bundles
- Changed: Improved text minification and compression to improve loading performance
- Changed: Reduced code size
- Changed: Improved privacy measures
- Removed: Language support for: Armenian (hy), Azerbaijani (az), Bengali (bn), Hebrew (he), Indonesian (id), Japanese (ja), Kazakh (kk), Malay (ms), Persian (fa), Swahili (sw), Tagalog (tl), Tamil (ta), Thai (th), Urdu (ur), Vietnamese (vi)
- Updated: Internal dependencies
1.6.1 — 24.10.2024
Section titled “1.6.1 — 24.10.2024”- Added: Public JS function
startVerification()to trigger the captcha box manually - Fixed: StencilJS downgraded to
4.17.2to fix Vue issues
1.6.0 — 17.10.2024
Section titled “1.6.0 — 17.10.2024”- Added: Hide branding option
- Added: Invisible option
- Added: Public JS event
captchaStarted() - Removed: Old button shaped design
- Updated: StencilJS to
4.20.0
1.5.0 — 07.09.2024
Section titled “1.5.0 — 07.09.2024”- Added: Error message if captcha is locked
- Added: Error message if captcha is temporarily locked because of payment issues
1.4.2 — 14.08.2024
Section titled “1.4.2 — 14.08.2024”- Added: Language support for Albanian (sq), Armenian (hy), Azerbaijani (az), Bosnian (bs), Bulgarian (bg), Catalan (ca), Estonian (et), Hebrew (he), Kazakh (kk), Macedonian (mk), Malay (ms), Persian (fa), Serbian (sr), Slovene (sl), Tamil (ta), Ukrainian (uk)
- Changed: Improve compatibility for screen readers
1.4.1 — 11.08.2024
Section titled “1.4.1 — 11.08.2024”- Fixed: Issue with provided static ESM JS bundle files
1.4.0 — 11.08.2024
Section titled “1.4.0 — 11.08.2024”- Added: New checkbox shaped design
- Added: Captcha box width option
fullandfixed - Added: Language support for: Arabic (ar), Bengali (bn), Chinese (zh), Hindi (hi), Indonesian (id), Japanese (ja), Korean (ko), Swahili (sw), Tagalog (tl), Thai (th), Urdu (ur), Vietnamese (vi)
- Added: Provide static ESM JS bundles for v1.2, v1.3 and v1.4
- Changed: Improve error display message on error
COMMUNICATION_FAILURE - Deprecated: Current button shaped design will be removed in v1.6.0
1.3.2 — 03.07.2024
Section titled “1.3.2 — 03.07.2024”- Changed: Improve captcha box design
- Fixed: Bug in auto language detection
1.3.1 — 03.05.2024
Section titled “1.3.1 — 03.05.2024”- Fixed: Issue in the build process
1.3.0 — 03.05.2024
Section titled “1.3.0 — 03.05.2024”- Added: Auto language detection
- Added: Minimal data mode option
- Added: Bypass keys for testing purposes
- Fixed: Wrong display error on HTTP
422server response
1.2.0 — 27.03.2024
Section titled “1.2.0 — 27.03.2024”- Added: Dynamic names for honeypot field
- Fixed: Move proof-of-work calculation to Web Workers (performance & efficiency)
- Fixed: Privacy and performance issues while data collection and analysis
- Fixed: Cursor design on disabled buttons
- Updated: StencilJS to
4.13.0 - Updated: Internal dependencies
1.1.1 — 18.03.2024
Section titled “1.1.1 — 18.03.2024”- Updated: Privacy link in the captcha-box
- Updated: Links in README.md files
1.1.0 — 29.02.2024
Section titled “1.1.0 — 29.02.2024”- Added: Language support for: Belarusian (be), Croatian (hr), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), Greek (el), Hungarian (hu), Italian (it), Latvian (lv), Lithuanian (lt), Luxembourgish (lb), Norwegian (no), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Slovak (sk), Spanish (es), Swedish (sv), Turkish (tr)
- Added: Make verification token field name changeable
- Added: Switch off the autostart for certain input fields
- Changed: Loading spinner animation (design & behaviour)
- Updated: StencilJS to
4.12.4
1.0.1 — 23.01.2024
Section titled “1.0.1 — 23.01.2024”- Refactor: Proof-of-work calculation
- Refactor: Remove unnecessary code
- Updated: StencilJS to
4.11.0
1.0.0 — 12.01.2024
Section titled “1.0.0 — 12.01.2024”- Release version
CAPTCHA Widget Alpha & Beta
Section titled “CAPTCHA Widget Alpha & Beta”0.0.4 — 11.01.2024
Section titled “0.0.4 — 11.01.2024”- Open-Beta
0.0.3 — 11.01.2024
Section titled “0.0.3 — 11.01.2024”- Open-Beta
0.0.2 — 23.11.2023
Section titled “0.0.2 — 23.11.2023”- Open-Beta
0.0.1 — 15.08.2023
Section titled “0.0.1 — 15.08.2023”- Closed-Beta