May 20th, 2026

Композер: слот голосового ввода (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.