"""Dictation and read-aloud, checked without a runtime. There is no JavaScript test runner here and hard rule 1 keeps Node out of the project, so the behaviour is driven by hand under a DOM stub before committing. Both halves of this file are progressive -- without it the composer and the bubbles still work, they simply have two buttons that do nothing -- which is also the shape of every way it can break: a microphone left open, a button left disabled, a reply read out twice. None of them raises anything. What the suite can pin is that there is one recording state machine and one `