In the TextField class, the size attribute is always rendered regardless of the value of size. Since the size-attribute should be optional for the input-tag, it should be conditional, just as it is the case with maxLength and tabIndex. This would also mean that the default of 20 should be dropped.
if ( getSize() > 0 )
Since the HTML-spec says size is implied, it should only be added if there is any size.