On iOS 16, VoiceOver will not speak "¥1,230" in Japanese.

In iOS 16, VoiceOver no longer speaks numbers such as “¥1,230" in Japanese, which worked correctly in iOS 15 and earlier. This is a very important bug in Accessibility support.

Steps to reproduce

  1. Create iOS App Project on Xcode. (I used Xcode 14)
  2. Set the Development Localization to "Japanese" on the project settings. (to make VoiceOver speak Japanese)
  3. For example, write the following code.
  4. Build and run the App targeting the actual device, not the simulator.
  5. Actual devices running iOS 15 or earlier will correctly read out loud with VoiceOver, while iOS 16 will have some reading problems.
import SwiftUI

@main
struct VoiceOverProblemApp: App {
  var body: some Scene {
    WindowGroup {
      // on project settings, set the development localization to Japanese.
      VStack {
        // ✅ said "Hello, world!"
        Text("Hello, world!")
         
        // ✅ said "残高 (ざんだか, zan-daka)"
        Text("残高")
         
        // ❌ said nothing (until iOS 15 or earlier, said "千二百三十円 (せんにひゃくさんじゅうえん, sen-nihyaku-san-ju-yen)"
        Text("¥1,230")
         
        // ❌ said wrong
        //  correct (iOS 15 or earlier):  "残高は千二百三十円です (zan-daka wa sen-nihyaku-san-ju-yen desu)"
        //  incorrect (iOS 16)         : "残高はです (zan-daka wa desu)"
        Text("残高は ¥1,230 です")
      }
    }
  }
}

The above sample code uses SwiftUI's Text but the same problem occurs with UIKit's UILabel.

On iOS 16, VoiceOver will not speak "¥1,230" in Japanese.
 
 
Q