Web Speech Synthesis Utteranceが普通に終わったのかcancel()で止まったのか知りたい
仕様(Draft Community Group Report, 1 October 2018)によると これが最新の仕様でいいのかな。WHATWGじゃなくてW3C?
end event
Fired when this utterance has completed being spoken. If this event fires, the error event must not be fired for this utterance.
error event
Fired if there was an error that prevented successful speaking of this utterance. If this event fires, the end event must not be fired for this utterance.
とあるので、エラー時にはendイベントは起こらない
error attribute, of type SpeechSynthesisErrorCode, readonly
The errorCode is an enumeration indicating what has gone wrong. The values are:
"canceled"
A cancel method call caused the SpeechSynthesisUtterance to be removed from the queue before it had begun being spoken.
"interrupted"
A cancel method call caused the SpeechSynthesisUtterance to be interrupted after it has begun being spoken and before it completed.
とあるので、SpeechSynthesisUtteranceが進行中にcancel()を読んだらエラーになるように読める
Firefox 64.0ではこうなっていない。
同じ話ではないんだけど、「SpeechSynthesisErrorEventが使われてない」って言ってて、使われるようになったら上の問題も解決する可能性がある。
Have cancel() dispatch an "interrupted" error on spoken utterance.
Have utterances dispatch "canceled" error when they never start.
ってのがあるからそれっぽい。
諦めたっぽい・・・。
特にこれについてはテストされてない