Per the documentation on the Speak property (copied below), we should make sure that the Emulator is honoring the property correctly.
Notably:
But here is the full documentation to follow:
Speak
The speak field indicates how the activity should be spoken via a text-to-speech system. The field is only used to customize speech rendering when the default is deemed inadequate. It replaces speech synthesis for any content within the activity, including text, attachments, and summaries. The value of the speak field is SSML [7] encoded within a string. Unwrapped text is allowed and is automatically upgraded to bare SSML.
A3030: The speak field MAY contain an empty string to indicate no speech should be generated.
A3031: Receivers unable to generate speech SHOULD ignore the speak field.
A3032: If no root SSML element is found, receivers MUST consider the included text to be the inner content of an SSML
A3033: Receivers SHOULD NOT use XML DTD or schema resolution to include remote resources from outside the communicated XML fragment.
A3034: Channels SHOULD NOT send the speak field to bots.
A3035: Receivers generating speech from an Activity with a missing or null speak field SHOULD render message contents such as text and summary instead.
Tagging https://github.com/microsoft/BotFramework-WebChat/issues/2181 which should close this issue when completed
Tested this on webchat and emulator. This ticket can be safely closed as it satisfies the three conditions
When the property has a value, it should be used
When the property value is null, Speak should use the Text value
When the property is an empty string, the property value can be ignored.