- 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