ethos 0.7.0
ethos: ^0.7.0 copied to clipboard
Measure accessibility coverage in Flutter apps using WCAG 2.2 specifications with Spec-Driven Development.
0.7.0 #
ethos watchsubcommand — incremental re-analysis on file save. Performs a full scan on startup, then re-parses only the changed file and recomputes the report from the cached results of all other files. Prints the full report after each change with▲/▼coverage deltas and highlights findings in the modified file only.
0.6.0 #
-
2 new WCAG detectors (7 rules covered):
- Non-text Content (1.1.1, Level A): detects images and icons without an accessible text alternative (
Semantics(label:),semanticLabel, or explicitly marked as decorative). - Resize Text (1.4.4, Level AA): detects fixed
textScaleFactorandtextScalervalues that ignore system text-size preferences.
- Non-text Content (1.1.1, Level A): detects images and icons without an accessible text alternative (
-
ethos initautomatically generates a starterethos.yamlwith custom widgets and color definitions that require manual configuration. -
Public API for
ethos initviaWidgetDiscovery.discover()andEthosYamlGenerator.generate(). -
Compliance levels updated: WCAG 1.1.1 added to A/AA/AAA, and WCAG 1.4.4 added to AA/AAA.
0.5.1 #
- Resolve absolute path issue for package_config.json
0.5.0 #
- Deep analysis mode: a new CLI flag and
DeepAnalyzerAPI that usesAnalysisContextCollectionto resolve the full project — cross-file references, class hierarchies, and type information. Detects widgets and accessibility issues that standard syntactic analysis misses entirely. Falls back to standard mode automatically when the project is not ready (noflutter pub getrun).
0.4.0 #
-
Improved compatibility with newer
analyzerversions (up to 13.x), ensuring Ethos works reliably across supported releases. -
Added official desktop platform support (
Windows,macOS, andLinux) and resolved analyzer/lint-related issues. -
Significantly enhanced color contrast detection by automatically extracting colors from
ThemeDataand supporting customcolor_aliasesinethos.yaml, reducing indeterminate results in real-world applications. -
Introduced
ColorAliasandThemeExtractorto resolve design-system and theme-based colors into actual WCAG contrast calculations.
0.3.0 #
- CLI command renamed from
accessibility-coveragetoethos.
0.2.0 #
-
Built-in WCAG 2.2 specification with automatic project configuration via
ethos.yaml; no external spec files required. -
Extensible design-system support through
widget_aliasesand per-rule customization throughrule_overrides, allowing custom widgets to participate in accessibility analysis. -
Improved analysis accuracy with alias-aware detectors, precise source-level findings, explicit
Indeterminatetracking, and better support for modern Dart syntax and widget detection patterns.
0.1.0 #
-
Pure static analysis (AST) using
package:analyzerandRecursiveAstVisitorto map Flutter widgets without runtime analysis. -
Transparent metrics: Rigorous classification of nodes into Pass, Fail, or Undetermined (for dynamic styles or
Theme.of(context)inheritance). -
Complete decoupling: Detectors (
SemanticLabels,Contrast,TouchTarget,Keyboard,FocusOrder) are registered independently in aDetectorRegistry.
0.0.1 #
- Initial MVP with 5 WCAG 2.2 coverage rules (semantics, contrast, touch targets, keyboard, focus)
- Spec-Driven Development with formal YAML specifications
- CLI tool with JSON, human, and markdown report formats
- Compliance level determination (A/AA/AAA)
- Full test suite and documentation