setEmail(e.target.value)}
required
autoComplete="email"
+ aria-label="Email"
+ enterKeyHint="next"
className={`w-full border ${error ? 'border-red-500' : 'border-zinc-300'} bg-white py-2.5 px-3 text-[0.9rem] text-black outline-none transition-colors focus:border-black placeholder:text-zinc-400`}
placeholder="you@example.com"
/>
@@ -100,7 +102,7 @@ export function LoginForm() {
-
+
Forgot password?
@@ -112,6 +114,7 @@ export function LoginForm() {
onChange={(e) => setPassword(e.target.value)}
required
autoComplete="current-password"
+ aria-label="Password"
className={`w-full border ${error ? 'border-red-500' : 'border-zinc-300'} bg-white py-2.5 px-3 text-[0.9rem] text-black outline-none transition-colors focus:border-black placeholder:text-zinc-400`}
/>
diff --git a/frontend/src/components/feed/FeedItem.tsx b/frontend/src/components/feed/FeedItem.tsx
index 827f188..91764a9 100644
--- a/frontend/src/components/feed/FeedItem.tsx
+++ b/frontend/src/components/feed/FeedItem.tsx
@@ -83,28 +83,44 @@ export function FeedItemRow({ item, onComplete, onUncomplete, onDismiss, onResto
return (
- {/* Checkbox */}
+ {/* Checkbox — 44pt hit target (iOS HIG min); inner span carries the visual */}
{/* Content */}
diff --git a/frontend/src/components/inbox/InboxPage.tsx b/frontend/src/components/inbox/InboxPage.tsx
index c382753..e187058 100644
--- a/frontend/src/components/inbox/InboxPage.tsx
+++ b/frontend/src/components/inbox/InboxPage.tsx
@@ -22,9 +22,9 @@ export function InboxPage() {
} = useInbox();
return (
-
+
{/* Top nav */}
-
+
ordrctrl
@@ -37,7 +37,8 @@ export function InboxPage() {
{/* Main content */}
-
+
+
Inbox
{!loading && total > 0 && (
@@ -90,6 +91,7 @@ export function InboxPage() {
)}
+
);
}