Set VoiceOver Custom gestures for navigating by heading.
Why assign custom gestures to move by heading:
There is an option on the Voiceover rotor for moving by heading, so why would you want a specific gesture for moving to previous and next headings? My answer is for convenience and to save a little wrist strain. If you've used Voiceover a lot you have probably noticed that it doesn't always keep the rotor on the option you last chose so it is often necessary to turn the rotor to see where it is set and to go back to an option you want.
Moving by headings is one of the most common things I want to do, especially on webpages. The problem is that I also often want to move by link or have a word spelled out letter by letter. If custom gestures are assigned to move by headings then it is possible to set the rotor to links and still be able to conveniently move by both heading and links.
Many apps have custom menu options assigned to swiping up or down. You can recognize the availability of these options by listening for the phrase "Actions Available" spoken by VoiceOver after a slight pause. Whenever VoiceOver says that you can be sure that the rotor is no longer set to the option you last chose because VoiceOver is interpreting one finger up or down swipes for moving through the menu of actions that can be performed on the focused item.
These same apps can still have very useful headings to navigate by, but you can't use the VoiceOver rotor. If custom gestures are assigned to move by heading they will still work in these situations.
Procedure: assign custom heading navigation gesture
On an iPhone or iPad, open the settings app and Swipe down to Accessibility and activate it.
The first option will be VoiceOver. Open the Voiceover settings and turn VoiceOver on.
Once VoiceOver is enabled swipe through the VoiceOver settings until you hear "Commands button." Double tap it.
The first option is "All Commands" which is the list you want to open, so double tap that.
Swipe down to "Advanced Navigation" and activate it.
Swipe down to "Move to Next Heading" and double tap.
Now you are in the dialog where you can assign new commands for moving to the next heading. You can assign a gesture that can be performed with your fingers on the touch screen or keys to be pressed on a hardware keyboard.
The method for assigning a custom command to use on a braille display is slightly different, because they are assigned under the commands options for each braille display separately. I've described that procedure later in this document.
Right now we want to assign a gesture for use on the touch screen, so double tap the "Add Gesture" button.
Now you will be presented with a long categorized list of options. Of course, many possible gestures are already assigned to a command that is necessary for operating your iOS device, so you may not want to change them. The 2 finger swipe right gesture is not assigned to any command by default, so that is the gesture I recommend assigning to move to next heading.
Note: As of iOS 15 the 2 finger swipe right and 2 finger swipe left gestures are assigned to commands by default. They are assigned to Move in and Move Out respectively. These commands are only necessary if VoiceOver is set to use Navigation Style: Grouped, instead of Navigation Style: Flat. My own opinion is that the default navigation style of Flat will make the most sense to most VoiceOver users. Grouped may be familiar to Mac Voiceover users, but I avoid it whenever possible, despite being a Mac OS user. I find using 2 finger swipe left/right for heading navigation much more practical, so I have reassigned mine.
Swipe through the options until you hear "Two Finger Swipe Right" and double tap it.
You'll be placed back in the dialog for assigning commands so you can confirm that it now says:
"Move to Next Heading, Heading, Edit Button Touch Gestures, Heading Two Finger Swipe Right"
Now you can use the back button to get back to the list of commands that can be assigned.
Note: There is an iOS bug that at times causes the procedure you just followed to fail the first time. If that happens assign the gesture once more and it will work.
Similar procedure: assign previous heading gesture
You should now be in the list Titled "Advanced Navigation" so swipe way more times than you'd like to until you hear "Move to Previous Heading." Double tap it to get into the dialog for assigning commands.
Double tap the "Assign New Gesture" button.
Now you should be in the list of categorized possible gestures. This time you can conveniently use the gesture you just assigned to more quickly find the option you want.
Swipe right with two fingers until you hear "Swipe Two Fingers Heading."
Now Swipe right with one finger and you'll hear "Two Finger Swipe Left." Double tap that.
Confirm that the dialog assigned the gesture correctly.. It should say:
"Move to Previous Heading, Heading, Edit Button Touch Gestures, Heading Two Finger Swipe Left"
You'r done and can use the "Back button until you get back to Voiceover settings.
Note:
if you make a mistake or just decide you don't like an assigned gesture, you can always delete a specific assigned command, or you can reset all Voiceover commands to the defaults. I've had to do it, and it was no problem, so no worries.
Un-assigning a Gesture
Open VoiceOver settings. Remember it's in the settings app under Accessibility.
Find and double tap the Commands button.
Swipe down to Gestures Button, if that is the type of command you want to un-assign, and double tap it.
You will be in a list of all possible gestures organized by type and by how many fingers are used.
Find the gesture you no-longer want assigned as it currently is.
When you double tap the button for the gesture, you will be in a very long list of possible commands that you could assign. You can either assign a new command or just un-assign the current command.
The Remove Button is the last item in the list. I suggest using a 4 finger tap near the bottom of the screen to get to it quickly.
If you change your mind about removing the assigned command, just use the 2 finger scrub gesture to escape or activate the Cancel Button.
Braille Custom Commands
Custom commands aren't just useful for Voiceover gestures. If you have a bluetooth braille display many useful commands can be assigned.
assigning a custom command is even a good idea when there is already a quick-nav letter. This is because Quick-Nav doesn't' always work, and even when it does, it is extremely sluggish.
For example, pressing H on a webpage or in an app may take seconds to move VoiceOver focus to the next heading. Pressing a custom command on your braille display that is assigned to move to next heading will move focus very quickly.
To assign a custom braille display command go to Settings > Accessibility > VoiceOver > Commands.
near the bottom of the list of types of commands will be a Braille devices.heading. Find the button with the name of your currently connected braille device and activate it.
Find Navigation in the list of categories and activate it.
Now find Next Heading, Next plain Text, Next Bold Text, or whatever command you would like and activate it.
Activate the Assign New Braille Keys button.
Now press the command you want to use on your braille display. I've resorted to using dot 7 with various dot combinations since most dot combinations with spacebar are already taken.
There will be a warning message if that command is already assigned. You can choose to use it anyway, but just make sure you really don't want the default anymore.