HTML 4 and 5 leave open the possibility of other types, but do not specify any besides "text/css". In practice, I have never encountered a case where anything but "text/css" is used. For this reason, the HTML5 specification made the type attribute optional. If it is omitted, the default type "text/css" is used. See the style tag specification for details:
The type attribute gives the styling language. If the attribute is
present, its value must be a valid MIME type that designates a styling
language. The charset parameter must not be specified. The default
value for the type attribute, which is used if the attribute is
absent, is "text/css". RFC2318
In HTML 4 documents, the type attribute must be specified. The specification does not limit the values that can be used:
This attribute specifies the style sheet language of the element's
contents and overrides the default style sheet language. The style
sheet language is specified as a content type (e.g., "text/css").
Authors must supply a value for this attribute; there is no default
value for this attribute.
In old versions of HTML (<= 4) the type attribute appears to be an attempt to maintain compatibility with the <link>
method of importing stylesheets, where the type
is required:
<link rel="stylesheet" href="style.css" type="text/css" />