avoid-merge-semantics-list-tile
Warns when MergeSemantics has a ListTile or CheckboxListTile that defines a non-null trailing or leading argument.
Wrapping a ListTile inside MergeSemantics when the tile contains independent trailing/leading action buttons (e.g. a favorite button or delete icon button) collapses the entire tile into a single static text block.
This renders the secondary action buttons completely unclickable for screen reader users.
Example
❌ Bad:
// LINT: Wrapping 'ListTile' inside 'MergeSemantics' makes action buttons completely unaccessible for screen reader users.
// Try removing this widget.
MergeSemantics(child: ListTile(leading: IconButton()));
// LINT: Wrapping 'ListTile' inside 'MergeSemantics' makes action buttons completely unaccessible for screen reader users.
// Try removing this widget.
MergeSemantics(child: ListTile(trailing: IconButton()));
✅ Good:
ListTile(leading: IconButton());
ListTile(trailing: IconButton());