Unless Ian Hixon agrees to alter the spec (and in turn, fixes get added to browsers), what we really need to check for here is !validity.badInput --- because if badInput is set, then we're really suffering from bad input and not a "real" value missing.