Web app broken, uses system default voice for all locales on iOS 18
🐛 Bug Report
After upgrading to iOS 18, neither setLanguage() nor setVoice() have any effect for Web applications, breaking flutter web applications relying on this functionality.
Expected behavior
setLanguage() uses locale-appropriate voice models. Instead, system default model is used.
Reproduction steps
Simplest repro is running https://dlutton.github.io/flutter_tts/ on iOS device (tried Chrome and Safari browsers).
Configuration
Version: 3.8.x
Platform:
- [ x] :iphone: iOS -Web
- [ ] :robot: Android
I tried to handle this issue manually like this:
flutterTts.setProgressHandler(
(text, start, end, word) {
_currentWordStart = (_lastSpokenIndex ?? 0) + start;
_currentWordEnd = (_lastSpokenIndex ?? 0) + end;
print("start : $_currentWordStart, end : $_currentWordEnd");
setState(() {});
},
);
flutterTts.setPauseHandler(
() {
_lastSpokenIndex = _currentWordStart ?? _lastSpokenIndex;
print("_lastSpokenIndex : $_lastSpokenIndex, end : $_currentWordEnd");
setState(() {});
},
);
But it's not reliable — the progress still resets after calling flutterTts.speak() again, and the highlighted word becomes incorrect after resuming from pause.
Let me know if you'd like me to format the full issue body again with this included.