Custom Punctuation Dictionary

There are things I just don't want to hear my ScreenReader saying. Underscore for the _ character is a good example. I love voicemail transcription but VoiceOver says "underscore underscore underscore" every time someone pauses while leaving their message. Unfortunately, a lot of people pause just as much as I do.

Another app I use, called JW Library, has pronunciation symbols in proper names in order to help sighted readers say names correctly. They assist VoiceOver to say the names very wrong while driving me crazy. Fortunately, this type of VoiceOver annoyance can be fixed.

Directions

  1. Open settings, > Accessibility, > VoiceOver.
  2. Now find the Verbosity button and activate it.
  3. Activate the Punctuation button.
  4. activate the Add Punctuation Group Button.
  5. A dialog will open asking you which punctuation setting you want to base your custom group on. I suggest choosing Some unless you have a very specific reason for wanting another option.
  6. Now you will find Edit and Share buttons followed by a Name text field. Double tap the name field and type in a name that makes sense to you. This name will be added to the list after the system default punctuation groups of All, Some, and None.

In this dialog You can add a punctuation symbol that VoiceOver doesn't currently have a pronunciation rule for, or you can change the rule for an existing punctuation symbol in the list.

Change an Existing Rule

For my first example--the _ (underscore) character--we will change the rule that tells Voiceover to speak underscore whenever it is found when punctuation group is set to Some.

Under the heading Default Replacements swipe through the long list until you hear
_, Underscore
and double tab it.

The dialog that opens already has the underscore character in the Punctuation Edit so we don't need to enter it or find it with the Choose Punctuation button.

Examine the options under the Rule heading. The purpose of each option is explained at the bottom of the page, but the explanation may not help much.

Ignore: Not generally a helpful option to choose but may be helpful for some languages or for the system default.
Replace: Choose this option if you want to hear a punctuation character spoken but want it to be called something else. E.G. * as asterisk instead of star.
Remove: Choose this option if you don't want to hear the punctuation symbol spoken at all.

I chose Remove for the _ (underscore) character since I get really tired of hearing it.

Once you have made your choice activate the back button.

Notice that any characters who's rule you have changed will no longer appear in the Default Rules list but will be under the Custom Rules heading. If you are finished making changes just activate the back button.

Add a New Rule

The solution to my second example requires adding punctuation characters that VoiceOver does not have in its default rules list. to accomplish this it is necessary to capture an example of the troublesome character and add it to the rules list.

I suggest preparing for the next steps by opening the app, webpage, or document that contains the problematic character.

swipe through the document until you hear the character you want.

Set the VoiceOver rotor to words and swipe down until you get to the word containing the character.

Now rotate the Voiceover rotor to characters and swipe up until the punctuation character you want is spoken.

Tap 3 fingers on the screen four times very quickly. Yes, that's a 3 finger quadruple tap.

VoiceOver should say, "copied to clipboard" because that is the Copy Last spoken Phrase. command.

Okay, have you successfully hunted down and captured that undesirable character?

A · is in my clipboard. Later I'll also be removing the ʹ character.

Follow steps 1-6 to create and name a new custom punctuation group. If you have already created a custom punctuation group you want to edit, follow steps 1-3 and then double tap on the name of your existing custom group.

You should now be in the dialog containing an edit field with the name of your custom punctuation group, as well as Custom and default Replacements headings.

Under the Custom replacements heading find and double tap the Add Replacement button.

Double tap the currently empty Punctuation Text Field.

Rotate your Voiceover rotor to Edit. swipe down to paste then Double tap.

Check to make sure the character you wanted was pasted in the edit field. If it was not delete whatever did end up in there, then go back and follow the directions right under the heading "Add a new rule" in this document.

Note that you can quickly switch between open apps by using a 4 finger swipe left or right.

Once the correct character is entered in the Punctuation edit choose the option that explains what Voiceover should do when encountering that character.

If you don't want to hear the character you just entered then swipe down to Remove and double tap it.

If you want to hear something else spoken instead of the current name of the character you entered swipe down to Replace and double tap. After Replace is chosen swipe back to the Replacement text field and enter a new name for the character.

When done activate the back button.

You will be back in the dialog where you can add or change the rules for your punctuation group. If you have no more changes to make just activate the back button. All changes are automatically saved.

Using custom punctuation groups

Now that you have created a customize set of rules for speaking punctuation you must tell Voiceover to use them.

Method 1: Open Settings > Accessibility > VoiceOver.

Double tap Verbosity then Punctuation.

VoiceOver will say, "Active punctuation group--" followed by the name of the rule group currently in use. If it is not the one you want then double tap.

A page will open that lists the 3 default system groups followed by your custom groups. Find the one you want to use and double tap it. The chosen group will say "selected" in front of it.

You can now activate the back button and VoiceOver will be using your selected punctuation group.

Method 2: If you want to be able to quickly switch between different options for how punctuation marks are spoken you can add Punctuation to the VoiceOver rotor.

Go to Settings > Accessibility > VoiceOver. So in the main VoiceOver settings not in Punctuation or even Verbosity.

swipe right repeatedly until you hear "Rotor Button" and double tap it. Note: don't mistake the Rotor Options Button for the Rotor Button. If you hear Rotor Options swipe left once to get back to the Rotor Button.

In Rotor swipe through the options until you hear Punctuation and make sure it is selected.

When finished activate the Back button.

Now any time you want to change what punctuation VoiceOver speaks, turn the VoiceOver Rotor until you hear Punctuation. swipe up or down until you hear the name of the Punctuation Group you want to use and double tap it.

Notes and Caveats
  • In VoiceOver > Verbosity > Punctuation there is an import button. Don't bother trying it. I have very thoroughly tested to make sure it doesn't work under any circumstances. It is possible to export a custom punctuation group you have created, but no one will be able to import it. If it was possible I would have shared mine.

  • Since VoiceOver is using a selected punctuation group when you are customizing yours it can be a bit confusing. If punctuation is not set to all, you may want to review the punctuation marks you are considering changing by reading by character. VoiceOver will speak almost all punctuation when moving by character. There are a few exceptions that I can't explain.

  • I haven't found a solution for the problem most VoiceOver Vocalizer voices have of saying comma instead of the actual punctuation mark present at the beginning of lines in some applications. Do not try to fix this type of weirdness using Custom Punctuation Groups.

  • Writing punctuation as many times as I have in this document may have a detrimental affect on your ability to write the word punctuation rather than improving it as one might think.