Require implementing hasTooltip if there's custom tooltip logic (#11052)

Change-Id: I3038b97d9a7c7e144a325ce87aa849309b9b31c4