Startboard project

Startboard / Design system

Documentation v1.0.0 · Public product

Design system contents

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

Source references
Repository fileResponsibility
app/(home)/AppHome.tsxPlaceholder fields/errors
app/settings/preferences/page.tsxSelect labels
app/auth/sign-in/SignInClient.tsxAssociated 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.

Settings Account Password Error Desktop Light · Screen · Light · Desktop · Password Error · 2880 × 2176 px
Link Editor Validation Desktop Light · Component detail · Light · Desktop · Validation · 1800 × 1530 px

Source audit: 2026-10-08 · Revision 08fa2595a668 · Documentation v1.0.0