'aria-live' => 'assertive' inside extraModalWindowAttributes(). 'role' => 'alert'—which forces the announcement, but causes the entire modal to be re-read every time an additional field is revealed, which is disruptive. 'role' => 'alert' and 'aria-live' => 'polite', but that didn't work as expected.