- From: Olli Pettay <Olli.Pettay@helsinki.fi>
- Date: Sun, 14 Oct 2012 03:35:40 +0300
- To: Glen Shires <gshires@google.com>
- CC: public-speech-api@w3.org
On 10/14/2012 01:27 AM, Glen Shires wrote:
> I agree.
>
> Also, is there any reason not to remove "static" from the following? If not, I propose removing it here too.
>
> static readonly attribute boolean pending;
> static readonly attribute boolean speaking;
> static readonly attribute boolean paused;
>
> static SpeechSynthesisVoiceList getVoices();
>
Right. I'd be surprised if anything needs to be 'static'
> Glen Shires
>
> On Sat, Oct 13, 2012 at 7:56 AM, Olli Pettay <Olli.Pettay@helsinki.fi <mailto:Olli.Pettay@helsinki.fi>> wrote:
>
> static void speak(SpeechSynthesisUtterance utterance);
> static void cancel();
> static void pause();
> static void resume();
>
> Those shouldn't be static.
>
>
>
>
>
>
> On 10/12/2012 01:42 PM, Olli Pettay wrote:
>
> 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 Sunday, 14 October 2012 00:36:05 UTC