Accessibility
Form labels and feedback
Visible field hints and plain feedback paragraphs do not automatically establish accessible form contracts.
On this page
Observed labels
Authentication forms associate labels and controls using htmlFor/id. Dashboard editor fields primarily rely on placeholders. Several settings pages render label elements without associating them to select/input IDs. Public toggles and icon actions have explicit names.
Observed errors
Editor and profile errors render ordinary paragraphs. They do not use role=alert, aria-live or aria-describedby associations. Account messages share subdued styling for success and failure. Search no-results is a blank region. Source errors are shown faithfully in the captures.
Remediation contract
- Give every input a stable programmatic name independent of placeholder.
- Tie field-level errors to the relevant input and retain user values.
- Announce asynchronous failures and completion without interrupting typing.
- Use clear recovery instructions, not only red coloring.
- Validate URL protocols on the server in addition to client guidance.
Source references
| Repository file | Responsibility |
|---|---|
| app/(home)/AppHome.tsx | Placeholder fields/errors |
| app/settings/preferences/page.tsx | Select labels |
| app/auth/sign-in/SignInClient.tsx | Associated credential labels |
Examples from the app
Actual Startboard source UI with isolated fictional records; both native themes at 2× resolution or higher. No live integrations or account writes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-08 · Revision 08fa2595a668 · Documentation v1.0.0