Skip to content

v1.1.0 — Observability & Diagnostics

Choose a tag to compare

@golchha21 golchha21 released this 31 Jan 17:15

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 ValidationReport model
  • Rich Violation schema with:
    • rule (stable rule ID)
    • element
    • path (DOM-like location)
    • severity
    • spec metadata
  • 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_A
    • WCAG_AA
    • WCAG_AAA
    • STRICT_HTML
    • CMS_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.