- From: Glen Shires <gshires@google.com>
- Date: Sat, 13 Oct 2012 20:31:41 -0700
- To: olli@pettay.fi
- Cc: public-speech-api@w3.org
- Message-ID: <CAEE5bcijXvTNF9ets21Pu+2GPYkR6E_o5MpAz8=XniqWCmAbtw@mail.gmail.com>
OK, if no disagreement, I'll update the spec on Tuesday to remove "static"
from all elements in interface SpeechSynthesis.
Glen Shires
On Sat, Oct 13, 2012 at 5:35 PM, Olli Pettay <Olli.Pettay@helsinki.fi>wrote:
> 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 <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 03:32:49 UTC