Repository navigation
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.