Interpretation is questionable here concerning the exact meaning of "text".
COUNTA() counts *non-empty* cells ... including numbers, errors (#DIV/0!),
logical values (TRUE, FALSE) and zero length strings ( "" ).
To count *only* text ... including alpha and numeric *text*, try this:
=COUNTIF(A1:A20,"*?")