diff --git a/messages/de.json b/messages/de.json index a36eb32fe..80152dd7d 100644 --- a/messages/de.json +++ b/messages/de.json @@ -41,7 +41,9 @@ "copy": "Kopieren", "copyDetails": "Details kopieren", "retry": "Erneut versuchen", - "reportIssue": "Fehler melden" + "reportIssue": "Fehler melden", + "showPassword": "Passwort anzeigen", + "hidePassword": "Passwort verbergen" }, "doctorReport": { "title": "Gesundheitsbericht", diff --git a/messages/en.json b/messages/en.json index 4a7ad44e0..dfe3565dc 100644 --- a/messages/en.json +++ b/messages/en.json @@ -41,7 +41,9 @@ "copy": "Copy", "copyDetails": "Copy details", "retry": "Retry", - "reportIssue": "Report issue" + "reportIssue": "Report issue", + "showPassword": "Show password", + "hidePassword": "Hide password" }, "doctorReport": { "title": "Health Report", diff --git a/src/app/auth/login/page.tsx b/src/app/auth/login/page.tsx index befa9f494..ed1f25890 100644 --- a/src/app/auth/login/page.tsx +++ b/src/app/auth/login/page.tsx @@ -217,7 +217,12 @@ export default function LoginPage() { {t("auth.noAccount")}{" "} {t("auth.register")} diff --git a/src/app/page.tsx b/src/app/page.tsx index ca7a65257..116ff20bf 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -363,7 +363,11 @@ export default function DashboardPage() { - + {/* WCAG 2.5.5 — touch targets must be ≥44×44 CSS px on mobile. + `size="sm"` (h-8 = 32px) was below threshold; the explicit + min-h-11 ensures we hit 44px on the Pixel 5 viewport while + keeping the desktop visual unchanged. */} + {t("common.add")} diff --git a/src/components/layout/top-bar.tsx b/src/components/layout/top-bar.tsx index 2bd3cc7f9..4bf0fa2fc 100644 --- a/src/components/layout/top-bar.tsx +++ b/src/components/layout/top-bar.tsx @@ -59,7 +59,10 @@ export function TopBar() { ) : user ? ( - + {user.username} diff --git a/src/components/settings/password-input.tsx b/src/components/settings/password-input.tsx index d4f915afb..0c44a1040 100644 --- a/src/components/settings/password-input.tsx +++ b/src/components/settings/password-input.tsx @@ -4,6 +4,7 @@ import { useState } from "react"; import { Eye, EyeOff } from "lucide-react"; import { Input } from "@/components/ui/input"; +import { useTranslations } from "@/lib/i18n/context"; /** * Password input with a built-in show/hide toggle. Extracted from the legacy @@ -13,12 +14,18 @@ import { Input } from "@/components/ui/input"; */ export function PasswordInput(props: React.ComponentProps) { const [visible, setVisible] = useState(false); + const { t } = useTranslations(); return ( setVisible((v) => !v)} className="text-muted-foreground hover:text-foreground absolute top-1/2 right-3 -translate-y-1/2" >