29

iOS voice over does not correctly read out my companies name. For example it reads out "dog" instead of "D.O.G." (not my real company name but you get the idea)

We get around this by telling the app to read out "D O G" in all places where the company name is read out.

However, voice over reads the bundle display name out incorrectly both on the app icon, and after the app has finished launching.

Is there a way to make my app read out "D O G" instead of "dog" after app launch? I would settle for forcing the app not to read out the bundle display name after app launch and then manually reading out "D O G".

(I'm assuming you can't set a custom voice over for the app icon, but bonus points for anyone that knows if I can or can't)

Mike Abdullah
  • 14,933
  • 2
  • 50
  • 75
Robert Wagstaff
  • 2,664
  • 1
  • 27
  • 40
  • Well no answers 6 months on. Based on that and talks with colleagues I'm going to assume this is not possible as of iOS 6.1 – Robert Wagstaff Feb 12 '13 at 23:47
  • 1
    "D.O.G." actually reads out as "D O G" on 6.1. Can you give an example (another string) that demonstrates the exact issue? – proxi Apr 08 '13 at 17:50
  • 1
    misunderstanding, my app is called "DOG" so it reads out the word dog. I want it to read out "D O G" (Three separate letters). I know that D.O.G. achieves this. The question is wether you can tell the iOS operating system to read that out when an accessibility user highlights your app icon on the iOS home screen (Outside your app) – Robert Wagstaff Apr 10 '13 at 01:43

2 Answers2

11

I don't think you can provide an alternate bundle name string for VoiceOver. I was however able to find a hack that could work in your specific scenario:

VoiceOver seems to interpret various control characters differently. \u7f is one of the characters that split the word for VoiceOver and yet do not break display in launchpad. Therefore, defining bundle name as:

CFBundleDisplayName="D\U007fO\U007fG";

in InfoPlist.strings seems to achieve what you need.

proxi
  • 1,243
  • 10
  • 18
  • Awesome! Well done! However.... my company name is not really DOG. It actually starts with an A. Lets call my company ADS. Using your method voice over reads " 'ah','D','S' ", instead of "'Ay','D','S'". It seems to be using the wrong pronunciation of the letter A. Is there anyway to force this? Your solution would have worked perfectly if my company name didn't happen to start with an A – Robert Wagstaff Apr 12 '13 at 01:02
  • This is working for me but it makes me nervous. Can someone who has released apps using this technique tell me that everything is working without issue please ;) ? I'm having a hard time determining what the intended use for the 7f character is and what potential repercussions it could have. – hyperspasm Dec 05 '14 at 20:21
9

As of iOS 8, you can achieve this by adding the CFBundleSpokenName key to your Info.plist.

https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/plist/info/CFBundleSpokenName

  • Interestingly, this changes how VO reads the app name right after you've launched it, but unfortunately does not influence how VO reads the name of the app from the Springboard/Home Screen. – marcshilling Aug 26 '20 at 13:54