Reproduction steps
- Receive or send a message that contains a custom server emoji (which under the hood looks like
<:name:1234567890>). - Receive or send a message that contains a Discord-style Unix timestamp (which under the hood looks like
<t:1234567890:R>). - Trigger the Text-to-Speech (TTS) feature to read these messages aloud.
Expected behaviour
The TTS engine should parse out the metadata.
• For custom emojis, it should only read the emoji name (e.g., "smile") and skip the numerical ID.
• For Unix timestamps, it should convert the raw string into a human-readable relative/absolute time string (e.g., reading it as "4 seconds ago" or "today at 12:00") and speak that version instead.
Actual behaviour
The TTS engine reads everything literally, including the formatting syntax and raw numbers. This results in the voice synthesis awkwardly reading long strings of random numbers and tags, which disrupts the listening experience.
Build information
Stable Web 2026.1027.182052, Windows NT 10.0 (x64), Chrome 153.0.0.0, Locale en-US
Platform
macOS, Windows, Linux, Web, Android, iOS, Self-hosting
Evidence
Examples of what the TTS actually outputs (captured via voice-to-text, source: Fluxer HQ server):
- For a timestamp: It says: "I think it also does it for less than T 1,793,141,700 are greater than"
- For a server emoji:: "(emoji name)< 1,458,578,071,768,826,270 >"