diff --git a/components/escrow/ContributeForm.tsx b/components/escrow/ContributeForm.tsx
index 6d6c9b6b..0479f8cf 100644
--- a/components/escrow/ContributeForm.tsx
+++ b/components/escrow/ContributeForm.tsx
@@ -117,10 +117,15 @@ export default function ContributeForm({
type="number"
value={amount}
onChange={(e) => setAmount(e.target.value)}
+ aria-invalid={!isValid && parseFloat(amount) > 0}
+ aria-describedby={[
+ !isValid && parseFloat(amount) > 0 ? "amount-error" : undefined,
+ "amount-helper"
+ ].filter(Boolean).join(" ") || undefined}
className="w-full rounded-2xl border border-white/10 bg-white/5 px-4 py-4 pr-12 text-lg font-bold text-dark-100 focus:border-brand-400 focus:outline-none transition-all group-hover:bg-white/[0.08]"
placeholder="0.00"
/>
-
@@ -138,7 +143,7 @@ export default function ContributeForm({
{!isValid && parseFloat(amount) > 0 && (
-
+
diff --git a/components/escrow/CreateEscrowForm.tsx b/components/escrow/CreateEscrowForm.tsx
index c2e1a602..f807f85d 100644
--- a/components/escrow/CreateEscrowForm.tsx
+++ b/components/escrow/CreateEscrowForm.tsx
@@ -496,12 +496,12 @@ export default function CreateEscrowForm({
setDraft((current) => ({ ...current, deadlineDate: event.target.value }));
if (event.target.value) clearFieldError("deadlineDate");
}}
- aria-describedby={fieldErrors.deadlineDate ? "deadline-date-error" : undefined}
+ aria-describedby={[fieldErrors.deadlineDate ? "deadline-date-error" : undefined, "deadline-helper"].filter(Boolean).join(" ") || undefined}
aria-invalid={!!fieldErrors.deadlineDate}
className={`w-full rounded-xl border bg-white/5 px-4 py-3 text-dark-100 focus:outline-none transition-colors ${fieldBorderClass(fieldErrors.deadlineDate, !!draft.deadlineDate)}`}
/>
-
+
Ledger timestamp: {deadlineLedgerTimestamp ?? "-"}
diff --git a/components/escrow/RoommateInput.tsx b/components/escrow/RoommateInput.tsx
index b289ce60..a796e35f 100644
--- a/components/escrow/RoommateInput.tsx
+++ b/components/escrow/RoommateInput.tsx
@@ -89,7 +89,7 @@ export default function RoommateInput({
Share Amount
{percentage !== null && (
- ({percentage}%)
+ ({percentage}%)
)}
0) onClearError?.(roommate.id, "shareAmount");
}}
placeholder="0"
- aria-describedby={errors.shareAmount ? shareErrorId : undefined}
+ aria-describedby={[
+ errors.shareAmount ? shareErrorId : undefined,
+ percentage !== null ? `roommate-share-helper-${roommate.id}` : undefined
+ ].filter(Boolean).join(" ") || undefined}
aria-invalid={!!errors.shareAmount}
className={`w-full rounded-xl border bg-white/5 px-3 py-2 text-sm text-dark-100 placeholder:text-dark-600 focus:outline-none transition-colors ${fieldBorderClass(errors.shareAmount, !!roommate.shareAmount && Number(roommate.shareAmount) > 0)}`}
/>