`!forceEvaluate` should be checked first, because the check is way cheaper than `hasAttribute` IMO