Search for a command to run...
Last updated June 9, 2026
Ctrovalidate is a lightweight, zero-dependency validation ecosystem for the web. It uses a declarative, HTML-first approach where validation logic is defined directly in your markup using data attributes.
Ctrovalidate provides validation through HTML attributes instead of complex JavaScript configuration. This keeps logic close to your form fields and simplifies maintenance across projects.
Key Technical Details:
ctrovalidate-core, ctrovalidate-browser, and framework adapters — each in its own repository.data-ctrovalidate-rules attributes directly on inputs.aria-invalid and aria-describedby for full accessibility compliance.data-ctrovalidate-if.Instead of writing imperative logic, you declare validation parameters directly in your HTML:
<!-- Define validation rules in HTML -->
<input
type="email"
name="subscriber_email"
data-ctrovalidate-rules="required|email"
data-ctrovalidate-if="wants_newsletter:checked"
/>In this example, the email field is validated only when the wants_newsletter field is checked. Ctrovalidate manages:
data-ctrovalidate-rules.import { Ctrovalidate } from 'ctrovalidate-browser';
const validator = new Ctrovalidate(
document.querySelector('#myForm'),
{ realTime: true }
);
// Programmatic validation
const isValid = await validator.validate();ctrovalidate-core engine.