fix(quick-260921-bi2): a11y - Layout-Navigation und Einstellungsformulare

useButtonType: Hamburger-, Profil-, Kategorie-, Ein-/Ausklapp- und Logout-
Buttons (kein Formular in diesen Dateien) erhalten type="button".

noSvgWithoutTitle: Icons neben sichtbarem Text werden dekorativ
(aria-hidden="true"). Zwei bislang unbenannte interaktive Elemente erhalten
zusaetzlich ein aria-label, weil ihr Text im eingeklappten Sidebar-Zustand
verschwindet bzw. ganz fehlte: die Dashboard-/Marketplace-Links und der
"Einstellungen"-Button in der Seitenleiste (t('dashboard')/t('marketplace')/
t('settings'), alle bereits vorhandene Schluessel) sowie der mobile
Schliessen-Button (tCommon('close')).

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 09:21:43 +02:00
parent 969fd01f5c
commit 27a6e2952c
10 changed files with 40 additions and 11 deletions
+4
View File
@@ -33,6 +33,7 @@ export function ThemeToggle() {
return (
<button
type="button"
onClick={cycleTheme}
className="inline-flex items-center justify-center rounded-md p-2 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors"
aria-label={label}
@@ -42,6 +43,7 @@ export function ThemeToggle() {
<span className="h-5 w-5" />
) : theme === 'light' ? (
<svg
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
@@ -64,6 +66,7 @@ export function ThemeToggle() {
</svg>
) : theme === 'dark' ? (
<svg
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"
@@ -78,6 +81,7 @@ export function ThemeToggle() {
</svg>
) : (
<svg
aria-hidden="true"
xmlns="http://www.w3.org/2000/svg"
width="20"
height="20"