- From: Olli Pettay <Olli.Pettay@helsinki.fi>
- Date: Fri, 12 Oct 2012 13:42:11 +0300
- To: Glen Shires <gshires@google.com>
- CC: public-speech-api@w3.org
On 10/12/2012 04:41 AM, Glen Shires wrote: > I propose the following change to the SpeechSynthesis IDL to use a callback instead of events. It doesn't change functionality, but does make the IDL > more well-defined and conventional. (The current IDL breaks platform conventions, because the speak() method makes a copy of utterance, and thus > event.target cannot be properly defined, nor can addEventListener be used in the conventional manner.) The SpeechSynthesisEvent object is > renamed SpeechSynthesisUpdate (because it is no longer an event, but rather a callback). If there's no disagreement, I'll update the spec with this > on Monday. > > callback SpeechSynthesisCallback = void (SpeechSynthesisUpdate update); > > interface SpeechSynthesis { > ... > static void speak(SpeechSynthesisUtterance utterance, SpeechSynthesisCallback callback); > }; > > interface SpeechSynthesisUpdate { > enum UpdateType { > "start", > "end", > "pause", > "resume", > "mark", > "boundary", > "error" > }; > readonly attribute UpdateType type; > readonly attribute unsigned long charIndex; > readonly attribute float elapsedTime; > readonly attribute DOMString name; > }; > > /Glen Shires Looks odd to me. Shouldn't it be interface SpeechSynthesis : EventTarget { void speak(SpeechSynthesisUtterance utterance); EventHandler onspeak; } That way one doesn't need to pass callback to the speak method all the time. Just registering once is enough. -Olli
Received on Friday, 12 October 2012 10:42:37 UTC