From 773addb279bddcdea6b6b06092d755d1deded827 Mon Sep 17 00:00:00 2001 From: xRangerDE Date: Mon, 11 May 2026 08:49:17 +0200 Subject: [PATCH] a11y + i18n: chat viewer filter placeholder + aria-label, status dot aria-hidden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two unrelated small fixes bundled: 1. The chat viewer modal's filter input (chatViewerFilter) had a hardcoded "Filter..." placeholder that was never localized — every other filter input in the app routes its placeholder through UI_TEXT. Added queue.chatViewerFilterPlaceholder + queue.chatViewerFilterAria locale keys (DE: "Chat filtern..." / "Chatnachrichten filtern"; EN: "Filter chat..." / "Filter chat messages") and wired them through renderer-texts so the placeholder now matches the active language and screen readers get a proper accessible name on the input. 2. The status-bar's coloured dot (statusDot) had no aria-hidden — screen readers would read it as a generic element with no meaning. The status text right next to it already carries the same information ("Verbunden" / "Nicht verbunden"), so the dot is purely decorative. Added aria-hidden="true". Co-Authored-By: Claude Opus 4.7 (1M context) --- src/index.html | 2 +- src/renderer-locale-de.ts | 2 ++ src/renderer-locale-en.ts | 2 ++ src/renderer-texts.ts | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index 06ae2ac..ffaef5d 100644 --- a/src/index.html +++ b/src/index.html @@ -802,7 +802,7 @@
-
+ Nicht verbunden
diff --git a/src/renderer-locale-de.ts b/src/renderer-locale-de.ts index aa5048d..990e038 100644 --- a/src/renderer-locale-de.ts +++ b/src/renderer-locale-de.ts @@ -297,6 +297,8 @@ const UI_TEXT_DE = { viewChat: 'Chat ansehen', viewChatLoading: 'Lade Chat...', viewChatFailed: 'Chat-Datei konnte nicht gelesen werden', + chatViewerFilterPlaceholder: 'Chat filtern...', + chatViewerFilterAria: 'Chatnachrichten filtern', viewChatCount: '{count} Nachrichten', viewChatTruncatedSuffix: ' (gekuerzt)', viewEvents: 'Events ansehen', diff --git a/src/renderer-locale-en.ts b/src/renderer-locale-en.ts index eb2d277..766adb8 100644 --- a/src/renderer-locale-en.ts +++ b/src/renderer-locale-en.ts @@ -297,6 +297,8 @@ const UI_TEXT_EN = { viewChat: 'View chat', viewChatLoading: 'Loading chat...', viewChatFailed: 'Could not read chat file', + chatViewerFilterPlaceholder: 'Filter chat...', + chatViewerFilterAria: 'Filter chat messages', viewChatCount: '{count} messages', viewChatTruncatedSuffix: ' (truncated)', viewEvents: 'View events', diff --git a/src/renderer-texts.ts b/src/renderer-texts.ts index 8d86cb7..1a04ba2 100644 --- a/src/renderer-texts.ts +++ b/src/renderer-texts.ts @@ -291,6 +291,8 @@ function applyLanguageToStaticUI(): void { setPlaceholder('vodFilterInput', UI_TEXT.vods.filterPlaceholder); setTitle('vodFilterClearBtn', UI_TEXT.vods.filterClearTitle); setAriaLabel('vodFilterClearBtn', UI_TEXT.vods.filterClearTitle); + setPlaceholder('chatViewerFilter', UI_TEXT.queue.chatViewerFilterPlaceholder); + setAriaLabel('chatViewerFilter', UI_TEXT.queue.chatViewerFilterAria); setText('vodSortLabel', UI_TEXT.vods.sortLabel); if (typeof refreshVodSortSelectLabels === 'function') { refreshVodSortSelectLabels();