LiveAudit

Changelog

Generated from CHANGELOG.md in the project repository. Never maintained twice.

0.2.0

30 September 2026

  • fixedContrast: colours in oklch(), lab(), color() and other spaces are converted to sRGB instead of being read as transparent. A dark theme built on oklch tokens was checked against white and stayed silent. A background that cannot be read ends the search as undetermined (UNTESTED).
  • fixedLive mode no longer starves on pages that never settle: it rescans at the latest 1 s after the first pending change (maxWaitMs).
  • fixedRules no longer run on hidden content: no false FAIL for a nameless button inside hidden, display: none or aria-hidden (a11y-rules). Labels that are not rendered no longer count, and focusable elements under an aria-hidden ancestor are reported.
  • addedA checklist: criteria no machine can decide appear once per page as UNTESTED under manual/*.
  • addedHeuristic REVIEW checks with the rendering pass: reading order, endless animation, reflow, pointer-only controls, obscured focus, target size.
  • addedscan(root, { rendering: true, focus: true }) measures focus visibility. It moves focus through the page once and restores it; without it, focus visibility is reported as UNTESTED.
  • addedLiveAudit.rescan(root?) for changes that are not DOM mutations.
  • addedLive mode also rescans on change and transitionend.

0.1.0

29 September 2026

  • addedInspector layer: frames, markers with popovers, a sidebar that docks to all four edges; live mode that rescans only the changed subtree.
  • addedContrast as an opt-in second pass.
  • addedThe sidebar shows what the last scan did — nodes, rules that ran, time — and the page weight by type with timings. Sizes the browser does not expose are shown as unknown, never as zero.
  • addedStyles are adopted, not inserted as <style>: a strict style-src 'self' needs no hash.
  • addedInert until unlocked with ?liveaudit or enable().