<!DOCTYPE html> <title>SpeechSynthesisUtterance basics</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> const DEFAULTS = { text: '', lang: '', voice: null, volume: 1, rate: 1, pitch: 1, }; for (const prop in DEFAULTS) { test(function() { const utt = new SpeechSynthesisUtterance(); assert_equals(utt[prop], DEFAULTS[prop], prop); }, `new SpeechSynthesisUtterance() default ${prop}`); } test(function() { const utt = new SpeechSynthesisUtterance("hello"); assert_equals(utt.text, 'hello', 'text'); // check that the other properties retain their defaults for (const prop in DEFAULTS) { if (prop != 'text') { assert_equals(utt[prop], DEFAULTS[prop], prop); } } }, 'new SpeechSynthesisUtterance("hello") text and defaults'); test(function() { const utt = new SpeechSynthesisUtterance(null); assert_equals(utt.text, 'null'); }, 'new SpeechSynthesisUtterance(null)'); test(function() { const utt = new SpeechSynthesisUtterance(undefined); // See https://github.com/w3c/speech-api/pull/48. assert_equals(utt.text, ''); }, 'new SpeechSynthesisUtterance(undefined)'); test(function() { const utt = new SpeechSynthesisUtterance(); utt.text = 'word'; assert_equals(utt.text, 'word'); }, 'SpeechSynthesisUtterance text setter'); // TODO: setters https://github.com/w3c/speech-api/issues/29 </script>