fix(quick-260921-jt4): drei Statussymbole in calendar-settings-panel tragen role="img" (D-03)

Die drei <span> mit aria-label ("Sync error"/"Connection OK"/
"Connection error") hatten die Rolle generic, die keine ARIA-Merkmale
traegt — die Beschriftung wurde stillschweigend verworfen. role="img"
ergaenzt (geprueft sauber, keine useSemanticElements-Neuausloesung).
Die Beschriftung ist hier der einzige Text des Symbols (svg bereits
aria-hidden) — Ursache behoben, nicht das Attribut gestrichen.

Erfolgsfall nutzt den vorhandenen Schluessel calendar.connectionSuccess
woertlich; fuer die beiden Fehlerfaelle neue kurze Schluessel
syncErrorLabel/connectionFailedLabel (der vorhandene connectionError
ist ein ganzer Hinweissatz, als Symbolbeschriftung zu lang). Die drei
fest verdrahteten englischen Texte damit aus der deutschen Oberflaeche.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TPPB4ApQxzSU1rwV2Ffj9J
This commit is contained in:
2026-09-21 14:54:06 +02:00
parent 9aa87bd000
commit b406a9c5f7
4 changed files with 36 additions and 4 deletions
@@ -154,12 +154,17 @@ export function CalendarSettingsPanel() {
{TYPE_LABELS[source.type] || source.type}
</span>
{/* Connection status indicator */}
{/* Connection status indicator. role="img" (D-03): die
Beschriftung ist der EINZIGE Text dieser Symbole (das
<svg> darin ist bereits aria-hidden) — ohne Rolle ist ein
<span> "generic" und die Vorlesehilfe verwirft
aria-label stillschweigend. */}
{source.lastSyncError ? (
<span
title={source.lastSyncError}
className="text-orange-500"
aria-label="Sync error"
role="img"
aria-label={t('calendar.syncErrorLabel')}
>
<svg
aria-hidden="true"
@@ -179,7 +184,11 @@ export function CalendarSettingsPanel() {
</svg>
</span>
) : testResults[source.id] === 'success' ? (
<span className="text-green-500" aria-label="Connection OK">
<span
className="text-green-500"
role="img"
aria-label={t('calendar.connectionSuccess')}
>
<svg
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
@@ -196,7 +205,11 @@ export function CalendarSettingsPanel() {
</svg>
</span>
) : testResults[source.id] === 'error' ? (
<span className="text-orange-500" aria-label="Connection error">
<span
className="text-orange-500"
role="img"
aria-label={t('calendar.connectionFailedLabel')}
>
<svg
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"