Handling SSN Input Properly

I just logged into my Google Adsense account. After 5+ years, I finally earned enough to get a payment. Only to discover that I had forgotten to update my mailing address, and that the check was sent a month ago to an address to which I no longer have access (if you find yourself in this situation, just cancel the check, and set up electronic funds transfer – much easier). In the process of updating my Adsense account, I put in my social security number so that the proper tax forms can be filed. I just entered it in the format of 123456789, since after all, a social security number is nine digits long. When I submitted the form, I got the following validation error:

So they want me to insert dashes into the SSN so that it is in the format of XXX-XX-XXXX (the format in which a social security number is normally written). That is not so hard for me to do. But why should I have to do that? They are already validating that I have the proper number of digits. So once they know that I entered nine digits, why can’t they just enter the dashes for me? No reason to bother the user with inanities like this. (One could also ask why they need to store the SSN in this format – storing them as nine digits in an int field is probably more efficient than storing them in a text field.)