4.10.7
"The type attribute controls the data type (and associated control) of
the element. It is an enumerated attribute."
"The accept, alt, autocomplete, max, min, multiple, pattern,
placeholder, required, size, src, step, and type IDL attributes must
reflect the respective content attributes of the same name."
2.7.1
"If a reflecting IDL attribute is a DOMString whose content attribute is
an enumerated attribute, and the IDL attribute is limited to only known
values (...)"
"If a reflecting IDL attribute is a DOMString but doesn't fall into any
of the above categories, then the getting and setting must be done in a
transparent, case-preserving manner."
The input section does not specify that @type is limited to only known
values. I assume this is so to allow extensions with new input types to
work properly. However, this also means get/set operations on .type are
not allowed to normalize case for known values, and that the missing
value default does not apply to .type.
===
4.10.7
"The missing value default is the Text state."
'Missing value default' is not linked to the definition. Yes, it is
quite close to the sentence saying @type is an enumerated attribute, but
there is a huge table between them, breaking the flow.
--
Magnus Kristiansen
"Don't worry; the Universe IS out to get you."