With HTML alone, without any CSS, you can set
- font family with
<font face=...>
- font size with
<font size=...> (though just to a few values)
- text color with
<font color=...>
- italic typefact with
<i>
- bold typeface with
<b>
- superscripts with
<sup>
- subscripts with
<sub>
- underlining with
<u>
- forced line breaks with
<br>
- allowed direct line break points with
<wbr>
- allowed hyphenation (word division) points with
­
- no line breaks with
<nobr>
- text alignment in some elements with
align attribute or (for vertical alignment) valign attribute
- background color and/or image with
bgcolor and background attributes in body element and in table-related elements
- automatically scrolling text with
<marquee>
and some other formatting tools (it is somewhat debatable what belongs to text formatting).
Although HTML5 drafts declare many of these as “obsolete” and “nonconforming”, they also require or strongly recommend (depending on element) that browsers continue supporting them, with the exception of nobr (which is well supported by browsers, with no signs of getting dropped).
(HTML5 is a draft specification. It does not “support” anything; browsers do. Specifications may require support, but that’s just a normative statement, about how things should be.)
If you can in fact use CSS at least in style attributes, then there are many more possibilities, though styling is then clumsy and limited.
styleattributes?