I've submitted the following bug report to Apple regarding audio destination in Voiceover when using a Bluetooth speaker that supports keeping speech on your phone. In this case, it's my beloved Bose SoundLink Mini 2 SE. The bug report is as follows:
I would like to report a bug related to audio destination in Voiceover. I am running an iPhone 11 128GB with iOS 14.4. I am connecting it to a Bose SoundLink Mini 2 SE speaker via Bluetooth. If I restart Voiceover by triple-clicking the side button twice, Voiceover will set itself to external audio route instead of default audio route. If I switch it back to default manually via the rotor, Voiceover sound feedback is lost. Restarting Voiceover at this point will restore sound feedback to default audio route, but speech will automatically go to external once more. When I set audio route back to default via the rotor once more, Voiceover behaves as expected with speech and sound feedback playing through the iPhone speakers. If I use the microphone for any reason, Voiceover will repeat this behavior and set itself to external audio route once again. The only solution appears to be to turn off both devices, turn on my phone, enable Face ID, and then turn the Bluetooth speaker back on. If I reconnect to the speaker before Face ID is enabled, the problem persists. The problem persists even after forgetting the speaker on my phone, clearing the device pairing list on the speaker, and then pairing my phone to the speaker. Restarting is the only thing that fixes it. In Bluetooth settings, the SoundLink’s device type is set to “speaker”. “Contact sharing” appears to have no effect on this bug. Under Voiceover audio settings, both channels of the SoundLink are selected both for speech and for sound. Changing the channel selection has no effect on this bug. I cannot deselect both audio channels in either category. Please contact me if you need further information. Thank you for your time.
I will update this thread as soon as I receive a response.
I've found a second workaround/fix. Turn off Voiceover, turn off the speaker, turn on Voiceover, turn on the speaker. So basically turn it off and back on with more steps. So not perfect, but at least I don't have to restart now. Why is it you always find another solution right after you submit the bug report?