coderef

Speech recognition grammarLimited availability

The SpeechRecognition.grammars property of the Web Speech API represents a set of words or patterns of words that the recognition service should recognize, used for when the recognition service's accuracy is low.

Not yet supported in all major browsers — check the table and provide a fallback.

Discouraged: Advancements in speech recognition mean that speech grammars are not needed to achieve low error rates.

Browser support

DesktopChrome
✕Not supportedup to 155
Current: 155
Edge
✕Not supportedup to 154
Current: 154
Firefox
✕Not supportedup to 157
Current: 157
Safari
✕Not supportedup to 27
Current: 27
MobileChrome Android
✕Not supportedup to 155
Current: 155
Firefox Android
✕Not supportedup to 157
Current: 157
Safari iOS
✕Not supportedup to 27
Current: 27

How to use

Not supported in Chrome, Edge, Firefox, Safari, Chrome Android, Firefox Android, Safari iOS. Use feature detection below and provide a fallback (or a polyfill) for those browsers.

Example

Full syntax and examples are on MDN: SpeechGrammar.

Feature detection

JS · check before using
if ("SpeechRecognition" in globalThis && "grammars" in SpeechRecognition.prototype) {
  // SpeechRecognition.grammars is available
}

Sub-features

Support for each part of the feature (10). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
SpeechGrammar✕✕✕✕✕✕✕
SpeechGrammar.src✕✕✕✕✕✕✕
SpeechGrammar.weight✕✕✕✕✕✕✕
SpeechGrammarList139139✕✕139✕✕
SpeechGrammarList.SpeechGrammarList139139✕✕139✕✕
SpeechGrammarList.addFromString139139✕✕139✕✕
SpeechGrammarList.addFromURI139139✕✕139✕✕
SpeechGrammarList.item139139✕✕139✕✕
SpeechGrammarList.length139139✕✕139✕✕
SpeechRecognition.grammars139139✕✕139✕✕