scanAccessibility function

List<AuditViolation> scanAccessibility({
  1. required Map<String, String> fileContents,
  2. List<AuditRule> rules = const [],
  3. AuditBaseline baseline = AuditBaseline.empty,
})

Scans fileContents (path → source text) against rules, dropping anything baseline suppresses. A file present in fileContents with no violations contributes nothing — this function never reports "clean" files, only actual findings.

Implementation

List<AuditViolation> scanAccessibility({
  required Map<String, String> fileContents,
  List<AuditRule> rules = const [],
  AuditBaseline baseline = AuditBaseline.empty,
}) {
  final effectiveRules = rules.isEmpty ? defaultAuditRules : rules;
  final violations = <AuditViolation>[];
  for (final entry in fileContents.entries) {
    for (final rule in effectiveRules) {
      if (_violatesRule(rule, entry.value)) {
        final violation = AuditViolation(
          file: entry.key,
          ruleId: rule.id,
          severity: rule.severity,
          description: rule.description,
        );
        if (!baseline.suppresses(violation)) {
          violations.add(violation);
        }
      }
    }
  }
  return violations;
}