If you want to surface the error to someone using a screen reader, you'll need to add error text to a different node on the page that has an aria-live
attribute, and hide it accessibly if you choose.
Note that aria-live='polite'
will wait for the current read order to finish. If you want the user to stop and adjust his or her action right away, an assertive
value is more appropriate.
As an alternative, use client side validation and raise the error on submission. Consider using <input type='tel' />
to do this. This would be more standard and less disruptive solution.
In either case, announce the expected format in a way that is associated with the input, either beforehand or as part of an error message.