covered method
landsOn names what the pointer actually reaches, when the hit test
could name it. It comes from the hit path the reachability check already
ran — a fact, not a guess. Without it the sentence falls back to the two
usual causes, both of which can be wrong at once: an OverflowBox that
pushes a target's centre over a neighbour covers nothing and absorbs
nothing.
Implementation
String covered(String verb, String described, {String? landsOn}) =>
'$described is on screen, but `$prefix$verb` at its center would not '
'reach it: '
'${landsOn == null ? 'another widget covers it, or an IgnorePointer or '
'AbsorbPointer takes the pointer' : 'the pointer there lands on $landsOn instead'}'
'.$coveredEscapeHatch';