fix(quick-260921-jt4): zwei Schaltflaechenreihen tragen role="toolbar" (D-03)

calculator-widget.tsx Speicherzeile und favorites-widget.tsx
Ansichtsumschalter waren schlichte <div> mit aria-label, das die Rolle
generic stillschweigend verwarf. role="toolbar" ergaenzt (geprueft
sauber; role="group"/"region" loesen useSemanticElements neu aus).

Taschenrechner: fest verdrahteter Text wandert in
calculator.memoryLabel; bei dieser Gelegenheit auch Anzeigefeld
(displayLabel) und Rueckschritt-Taste (backspaceLabel) in den Katalog
gezogen (D-05), da diese Datei ohnehin geaendert wird.

Favoriten: die bisherige Beschriftung ("Favoriten") war sachlich
falsch fuer einen Listen/Kachel-Umschalter — neuer, zutreffender
Schluessel favorites.viewModeLabel statt des wiederverwendeten
favorites.name.

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:56:02 +02:00
parent b406a9c5f7
commit f7b5df4db8
5 changed files with 40 additions and 11 deletions
@@ -263,7 +263,16 @@ export function FavoritesWidget({
<div className="flex flex-1 flex-col gap-2 overflow-auto p-1">
{/* View mode toggle (edit mode only) */}
{isEditMode && (
<div className="flex gap-1 widgetNoDrag" aria-label={t('favorites.name')}>
// role="toolbar" (D-03): die bisherige Beschriftung ("Favoriten")
// war sachlich falsch fuer einen Umschalter zwischen Listen- und
// Kachelansicht — hier greift D-03 im Sinn des Streichens (die
// Beschriftung trug keine echte Bedeutung), eine richtige
// Beschriftung ist trotzdem besser als gar keine.
<div
className="flex gap-1 widgetNoDrag"
role="toolbar"
aria-label={t('favorites.viewModeLabel')}
>
<button
type="button"
onClick={() => handleViewMode('list')}