0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 13:08:40 +08:00
discourse/frontend
Sérgio Saquetim 6389fffb65
A11Y: Idle live regions on a space so identical repeats are announced (#42184)
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.
2026-07-31 14:13:18 -03:00
..
asset-processor DEV: Derive styleguide code samples from the rendered example (#42100) 2026-07-29 13:48:35 -03:00
deprecation-silencer
discourse A11Y: Idle live regions on a space so identical repeats are announced (#42184) 2026-07-31 14:13:18 -03:00
discourse-i18n DEV: add typescript support for core, themes and plugins (#41478) 2026-07-08 12:57:18 +01:00
discourse-markdown-it DEV: Bump eslint/lint-configs, and correct violations (#41321) 2026-07-01 10:39:57 +01:00
discourse-types DEV: Use bundler module resolution for @discourse/types consumers (#41661) 2026-07-13 21:43:39 -03:00
pretty-text FIX: clean up onebox loading decorations on fetch failure (#39277) 2026-07-23 19:50:41 -03:00
.npmrc
polyfills.js