diff --git a/src/app/features/room/RoomViewTyping.tsx b/src/app/features/room/RoomViewTyping.tsx index 7fa6341e6..9bc330772 100644 --- a/src/app/features/room/RoomViewTyping.tsx +++ b/src/app/features/room/RoomViewTyping.tsx @@ -38,7 +38,12 @@ export const RoomViewTyping = as<'div', RoomViewTypingProps>( // a `role="status"` region added to the DOM together with its first text // is not reliably announced by some screen readers. let typingAnnouncement = ''; - if (typingNames.length === 1) { + if (typingNames.length === 0) { + // nobody typing — keep the region mounted but silent (the final `else` + // below used to announce "undefined, undefined, undefined and -3 + // others are typing" on every room load, Gitea #187) + typingAnnouncement = ''; + } else if (typingNames.length === 1) { typingAnnouncement = `${typingNames[0]} is typing`; } else if (typingNames.length === 2) { typingAnnouncement = `${typingNames[0]} and ${typingNames[1]} are typing`;