Композер: слот голосового ввода (Web Speech API backend)
Что изменилось
В панели композера появилось место для голосового ввода. Слот зарезервирован и presentation-компонент готов: микрофонная кнопка с состояниями idle/recording/processing. Backend на Web Speech API подключается в feature-flag режиме.
- Microphone button: презентационный компонент с aria-label, focus-ring и tooltip; визуально интегрирован в composer-toolbar справа от emphasis-кнопок.
- Pure state machine: состояния
idle,listening,processing,error— без побочных эффектов в reducer'е, легко тестируются. - Web Speech API factory:
voice-asr-webspeech.tsоборачивает нативныйSpeechRecognition/webkitSpeechRecognitionв стабильный интерфейс{ start, stop, onResult, onError }. Возвращаетnullна неподдерживаемых runtime — без падений. - Tooltip «скоро»: пока кнопка disabled с подписью на 8 локалях; полноценное включение — в следующих релизах.
- Feature-detect: кнопка скрыта на платформах без браузерной поддержки — без false-positive в UI.
Где попробовать
Откройте композер, наведите курсор на иконку микрофона справа от emphasis-кнопок — tooltip покажет статус слота для вашей платформы.
Связано
PR #123 — slot UI + state machine. PR #187 — Web Speech API backend.