provide-progress-indicator-semantics
Warns when a progress indicator does not have a semantics label.
Standard Flutter loading indicators (CircularProgressIndicator, LinearProgressIndicator, RefreshIndicator) communicate progress or active background processing visually.
Without a semanticsLabel, the indicator is completely excluded from the semantics tree on iOS, rendering the loading state completely invisible to VoiceOver.
Example
❌ Bad:
// LINT: Provide a non-empty semantics label to progress indicators.
CircularProgressIndicator();
// LINT: Provide a non-empty semantics label to progress indicators.
LinearProgressIndicator();
✅ Good:
CircularProgressIndicator(semanticsLabel: 'some label');
LinearProgressIndicator(semanticsLabel: 'some label');