In general, you don't want to force a screen reader to read something a specific way. Unfortunately, screen reader users are used to the way things are read. If your input field has a properly associated label with it, such as "zipcode", then when they hear "zipcode Fourty Five Thousand and Nine hundred eighty seven", they will understand what it is. Screen reader users can navigate elements by character so they can read each number separately if they want.
The important part is that you have a label associated with the input field. I know you're writing specifically for Android (which I'm not familiar with), but if I compare what you're doing to html, in html you'd want something like:
<label for="zip">zipcode:</label>
<input id="zip">
There are ways (in html) to force what a screen reader says, but it typically messes things up for braille users. Any "hidden" text you add to force the screen reader speech is physically displayed on braille devices.
For html, the autocomplete
attribute can be used as a "hint" to screen readers on the type of information that is in a field. Screen reading software can use that hint to change the way it reads the contents of the field (such as autocomplete="postal-code"
), but support for this hint is not widely supported yet. Again, I know that's for html and you're writing specifically for android, but perhaps there's a similar "hint" concept for android.