add validity tooltip on demand
use $Node.fire(fn) to make validity method safer