Releases: golchha21/htmlforge
v1.2.0 — Deterministic Validation & Diagnostics
HTMLForge v1.2.0 finalizes the validation pipeline and diagnostic model.
Highlights
- Deterministic multi-violation reporting per node
- Validators no longer short-circuit on failure
- Formalized 3-phase validation pipeline
- Stable rule ID registry
- CI-ready structured diagnostics
Why this matters
If HTML renders, it is correct — and now every violation is reported exactly once, for the correct node, with a stable rule identity.
This release strengthens correctness, transparency, and debuggability without adding heuristics or auto-fixing.
Stability
The validation architecture is now frozen for all v1.x releases.
v1.1.0 — Observability & Diagnostics
This release strengthens diagnostics, traceability, and tooling readiness without changing HTMLForge’s core behavior or API guarantees.
HTMLForge v1.1.0 makes validation explainable, machine-readable, and defensible.
✨ What’s New
Structured Validation Diagnostics
- Deterministic
ValidationReportmodel - Rich
Violationschema with:rule(stable rule ID)elementpath(DOM-like location)severityspecmetadata
- Machine-readable output:
$report->toArray(); $report->toJson();
Rule IDs & No-Overlap Guarantees
- Every validation emits a single canonical rule ID
- Introduced no-overlap invariant to prevent duplicate diagnostics
- Clear separation between:
- structural rules
- attribute rules
- accessibility rules
- policy rules
Validator Execution Discipline
- Validators refactored onto a shared
AbstractTreeValidator - Deterministic traversal with path tracking
- Inert and raw-text isolation enforced consistently
Improved HTML Validation Report Renderer
- Human-readable, browser-friendly error output
- Clear grouping by rule and element
- Stable structure suitable for CI artifacts
🧪 Testing & Reliability
- Fresh PHPUnit test suite aligned to rule IDs
- Profile-aware regression coverage:
WCAG_AWCAG_AAWCAG_AAASTRICT_HTMLCMS_SAFE
- Explicit invariant tests for duplicate-error prevention
🧱 Stability & Compatibility
- No breaking changes
- v1.x API remains frozen
- Rendering behavior unchanged
- Validation remains strict by default
If HTML renders, it is still correct.
📚 Documentation Updates
- RULES.md with canonical rule registry
- ELEMENT_REGISTRY.md generated from source
- Updated README and ROADMAP
- Clear separation between v1.0.x maintenance and v1.1+ evolution
Philosophy Reminder
HTMLForge treats HTML as a language, not a suggestion.
This release improves how errors are explained, not how they are forgiven.
v1.0.0
Initial Stable Release
This is the first public, production-ready release of HTMLForge.
v1.0.0 establishes the core architecture, validation model, and rendering guarantees that future releases will build on.
The API is now frozen for the v1.x series.
✨ What’s included
Standards-first core
- Deterministic HTML AST with predictable rendering
- Complete HTML5 element registry
- Separate rendering modes for full documents and fragments
Structural and semantic validation
-
Content model validation for:
- Document structure
- Void elements
- Raw-text elements
- Inert content
-
Attribute validation with support for:
- Global attributes
data-*aria-*
-
URL, ID reference, and language attribute validation
Accessibility validation (WCAG-aware)
- Accessible name enforcement (implicit, explicit, ARIA-based)
- Form label validation
- Heading outline validation
- Landmark validation
- ARIA role validation
Validation profiles
WCAG_AWCAG_AAWCAG_AAASTRICT_HTMLCMS_SAFE
Developer tooling
- ValidationReport with HTML renderer for browser-friendly error output
- PHPUnit regression test matrix per validation profile
Security and safety
- Inline event handlers blocked in strict profiles
🧱 Core design decisions
These are intentional and now locked in:
- No auto-fixing of invalid HTML
- No silent, browser-like error recovery
- No framework or CMS assumptions in the core
- Validation failures never throw during rendering
HTMLForge tells you what’s wrong. It does not guess what you meant.
🚀 Release status
- First stable, production-ready release
- API frozen for v1.x
- Safe to adopt for long-term tooling, CMS integrations, and build pipelines