mirror of
https://github.com/discourse/discourse.git
synced 2026-08-06 13:08:40 +08:00
Follow-up to #42120, which made a repeated announcement blank the shared live region and rewrite it a render later so the DOM records a change. The mutation exists, but VoiceOver still says nothing: it compares the text the region ends up with against the text it had, and an empty middle state leaves those identical. A reader refining a search that keeps matching nothing is told "no results" once and then hears silence. Both regions now idle on a non-breaking space, so every transition is a change between two non-empty strings. The character renders invisibly, is not announced on its own, and survives the whitespace collapsing that erases an ordinary space. It is applied in `A11yLiveRegions` rather than in the `a11y` service, whose messages are what callers compare announcements against. Tests assert an idle region still holds something a reader can notice leaving and that identical announcements never pass through a silent state; the measure is "not whitespace-only" rather than "not empty", since a region's text always carries the template's own indentation. |
||
|---|---|---|
| .. | ||
| asset-processor | ||
| deprecation-silencer | ||
| discourse | ||
| discourse-i18n | ||
| discourse-markdown-it | ||
| discourse-types | ||
| pretty-text | ||
| .npmrc | ||
| polyfills.js | ||