Skip to content
Back to skills

Form Ux

ASecurity

Form UX and accessibility pass. Use for forms, inputs, checkout, signup/login, validation, labels, autocomplete, mobile keyboards, inline errors, required fields, disabled submits, and field-level accessibility.

  • 9 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added September 2, 2026
ai-agentsgoapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add KyaniteLabs/tastecheck --skill form-ux --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Form Ux?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Form Ux
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kyanitelabs-form-ux/badge)](https://www.skillsdirectory.com/skills/kyanitelabs-form-ux)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: form-ux
description: >-
  Form UX and accessibility pass. Use for forms, inputs, checkout, signup/login,
  validation, labels, autocomplete, mobile keyboards, inline errors, required
  fields, disabled submits, and field-level accessibility.
---

# Form UX

A form is a completion path: reduce effort, prevent predictable errors, and make failure
truthful, repairable, and accessible.

## Model task before styling

Start with outcome, risk, and data authority, not an inherited input array. Remove, defer,
or explain each field through this contract:

| Field contract | What to decide |
| --- | --- |
| User value | What completing this field unlocks now, in the user's words |
| Data rule | Required/optional condition, source of truth, and whether the rule is client- or server-owned |
| Input affordance | Label, type, inputmode, autocomplete, format help, and a safe example |
| Validation moment | What can be checked while editing, on blur, on submit, or only after a server request |
| Recovery | Exact message, preserved value, focus destination, and next available action |
| Sensitivity | Whether the field is personal, financial, irreversible, or must never be persisted locally |

Unknown rule/ownership stays unresolved; never invent validation; group by task, not
database/API shape.

## Non-negotiables

- Persistent associated label; visible required/optional state; correct type, inputmode,
  autocomplete, and one-column task flow (short related pairs excepted).
- Validate on submit. Validate on blur only when the value is complete enough to judge;
  after an error, re-check while the person repairs it. Keep server truth server-owned.
- Put specific adjacent “what + fix” errors behind `aria-invalid`/`aria-describedby`; announce
  and focus the first error on failed submit.
- Never silently disable submit; retain visible focus and explain what is missing.

## Error-message formula

Use `[what is wrong] + [how to fix it] (+ example)`, plainly and without blame. Tie it
visually/programmatically to the field; long-form summaries link to inline errors.

## Validation is a conversation

Give feedback at the earliest truthful moment; browser checks never impersonate server
truth. On submit distinguish field errors (focus/retain), conflict (correct branch),
transient failure (preserved draft/safe retry), authorization (boundary/route), and
irreversible payment (duplicate lock plus receipt/status). Pending work has accessible
label/status, rejects duplicates, and restores an explained route on failure. Ignore stale
responses so older validation cannot overwrite current value.

### Worked contract

| Field | Rule owner | When to check | Repair path |
| --- | --- | --- | --- |
| Email | server owns account availability; client owns basic shape | submit; blur after a complete address; re-check while repairing | “Enter an address like name@example.com.” Preserve the value; announce an account conflict only after the server responds. |

The row separates local affordance from server authority. Apply it to cross-field rules,
invitation codes, inventory, pricing, and payment status.

## Quick-start

Use `references/patterns.md` for markup/wiring; retain this field contract.

## Reduce effort

Ask only necessary fields; defer optional data. Use safe defaults/autofill, nonblocking
formatting, password reveal/paste, inline help, preserved input, and saved progress.

## Reference files

- `references/patterns.md` — types, validation, mobile/autofill, and a11y wiring.
- `references/decision-records.md` — novel-case ADR rules.

## Evidence

Establish task, fields, rule owner, success/risk/interruption before styling. Record each
field/state, validation owner, and recovery; `n/a` needs subject absence, not unknown rule.

## Self-check

1. Field contract, labels, required state, types/autofill, and keyboard/screen-reader wiring complete?
2. Submit/blur/repair timing, stale async responses, specific adjacent errors, first-error focus, and retained input work?
3. No silent disabled submit; pending, duplicate, conflict, authorization, and irreversible outcomes differ?

## How to deliver

Deliver one field/state matrix with source rule, affordance, owner/timing, recovery, pending
behavior, evidence, and risk; hand adjacent concerns to their skills.

<!-- contract:v1:start -->
## Contract (generated)

Canonical detail: [contract.json](contract.json).

- Route: A form has completion, validation, recovery, autofill, or interruption problems.; avoid: The issue is only a control's visual interaction state.
- Exclude: Do not hide errors or validate only on blur without a recovery path. (+1 in contract.json)
- Stop / handoff: Stop when validation rules or data ownership are unknown. (+1 in contract.json); receives [component-states, design-system-interview, deslop-ui, humanize-copy, responsive-layout, spacing-system, tasteroll] -> sends [a11y-pass, i18n-ready, tastecheck-pass, cognitive-a11y]
- Output: completion-oriented form flow and evidence table
- Evidence: `table_with_evidence` with `status`, `reason`, `remediation`, `evidence`, `provenance`.
<!-- contract:v1:end -->

Files in this skill

  • SKILL.md5.3 KB
  • contract.json1.8 KB
  • references/decision-records.md2.5 KB
  • references/patterns.md4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.