# Common field baseline

**Test family:** `INP`

Use this generic family only when no stronger semantic subtype is evident. The file is self-contained; adapt lengths and accepted characters from the full product path, not only the HTML attributes.

- **INP-001** Render a visible label or accessible name that describes the value, not the control type.
- **INP-002** Associate instructions, required indicator, units, and errors programmatically with the field.
- **INP-003** Verify the initial value/default matches a new, returning, editing, and reset state.
- **INP-004** Leave absent, empty, whitespace-only, and null through non-UI paths; distinguish the intended meanings.
- **INP-005** Enter the shortest valid value, ordinary valid value, and longest valid value.
- **INP-006** Test min−1/min/min+1 and max−1/max/max+1 using the real unit: bytes, graphemes, rows, or tokens.
- **INP-007** Paste, type quickly, use IME composition, autofill, undo/redo, select-all, and replace.
- **INP-008** Enter leading/trailing whitespace and verify preserve/trim behavior is intentional and consistent.
- **INP-009** Enter newline, tab, non-breaking space, and zero-width characters where the control can receive them.
- **INP-010** Use accented, decomposed, CJK, RTL, emoji, and multi-code-point grapheme values.
- **INP-011** Use safe quote/markup/path/template canaries; render them inert in every output context.
- **INP-012** Bypass client constraints through the request/API; enforce the same contract server-side.
- **INP-013** Trigger validation on submit, blur, and edit; avoid premature errors before reasonable input.
- **INP-014** Correct one invalid field without losing other valid fields or uploaded content.
- **INP-015** Submit using Enter when conventional; prevent accidental submit from multiline/contenteditable fields.
- **INP-016** Repeated submit produces at most one intended side effect and a truthful progress state.
- **INP-017** Navigate away/back, refresh, reconnect, and session-expire with unsaved edits; warn/recover as promised.
- **INP-018** Disable/read-only states block mutation through pointer, keyboard, paste, autofill, and direct request.
- **INP-019** Tab order follows task order; focus and error summary lead to the first actionable error.
- **INP-020** Zoom, narrow viewport, large font, and translated labels do not hide value, label, error, or action.
- **INP-021** Browser spellcheck/autocorrect/autocapitalize/inputmode/autocomplete attributes fit the semantic field.
- **INP-022** Stored, reloaded, searched, exported, notified, and audited representations preserve intended meaning.
- **INP-023** Concurrent edit detects or resolves stale data rather than silently overwriting.
- **INP-024** Network failure during validation/save has a stable, retryable state and does not falsely claim success.

## Comprehensive per-item coverage

- **INP-025** Enter ordinary lowercase, uppercase, mixed-case, numeric, and alphanumeric values; apply the documented character policy consistently.
- **INP-026** Enter ASCII emoticons such as `:)`, `:-)`, `;)`, `:D`, `:(`, and `<3`; accept or reject each deliberately without corruption, partial stripping, or a server error.
- **INP-027** Enter kaomoji and symbol-heavy emoticons such as `¯\_(ツ)_/¯`, `(╯°□°)╯︵ ┻━┻`, and `ಠ_ಠ`; preserve or reject the whole value predictably.
- **INP-028** Enter a single emoji, repeated emoji, skin-tone modifier, variation selector, keycap, flag, and ZWJ family/profession sequence; count and validate complete grapheme clusters.
- **INP-029** Mix letters, digits, punctuation, emoticons, and emoji in one value; never normalize it into a different accepted identity or meaning.
- **INP-030** Try ASCII control characters, tab, newline, carriage return, null, non-breaking space, word joiner, and zero-width characters through UI and direct requests.
- **INP-031** Try Latin accents, decomposed accents, CJK, Arabic, Hebrew, Devanagari, and mixed-script text; preserve supported scripts and explain unsupported ones.
- **INP-032** Try left-to-right, right-to-left, and bidi-override/isolate characters; keep value, cursor, error, surrounding label, logs, and exports unambiguous.
- **INP-033** Compare visually confusable values using Latin, Cyrillic, Greek, digits, homoglyph punctuation, and normalization equivalents; prevent unintended duplicates or spoofing.
- **INP-034** Exercise exact lower and upper boundaries using ASCII, two-byte characters, four-byte emoji, and multi-code-point graphemes; enforce the declared counting unit everywhere.
- **INP-035** Send the same value through form encoding, JSON, multipart, URL query/path, API, import, and mobile/native clients where applicable; decode exactly once.
- **INP-036** Use inert SQL, markup, script, template, command, path, CSV-formula, and log-forging canaries; keep them data in validation, storage, display, notifications, analytics, and export.
- **INP-037** Type slowly and rapidly, paste plain/rich text, drag text, use autofill, dictate, compose with an IME, undo/redo, and replace a selection; converge on the same value.
- **INP-038** Bypass `maxlength`, `pattern`, `required`, input type, disabled, and client validation; require the authoritative server contract and a useful error.
- **INP-039** Save, reload, navigate back/forward, reopen, search, sort, mention, notify, audit, sync, import, and export the value; preserve intended content and policy.
- **INP-040** Edit the same value concurrently from two sessions and retry after timeout; detect conflicts and avoid duplicate side effects or silent overwrites.
- **INP-041** Exercise offline, validation timeout, save failure, partial response, reconnect, and session expiry; retain recoverable input and never claim false success.
- **INP-042** Verify label, instructions, required state, error, suggestions, character count, focus, and current value with keyboard, switch, voice, and screen-reader use.
- **INP-043** Test narrow viewport, zoom/reflow, large fonts, high contrast, reduced motion, translated copy, locale-specific input, and mobile keyboards without hiding or altering the value.
- **INP-044** Measure validation and save behavior near maximum size and during rapid input; avoid UI freezes, request storms, timing leaks, and unbounded downstream work.
- **INP-045** Inspect DOM, URL, clipboard, browser storage, telemetry, logs, traces, crash reports, notifications, and screenshots; expose the value only according to its data classification.
- **INP-046** Delete, clear, reset, cancel, and restore the value; distinguish intentional removal from lost input and honor retention, audit, and recovery policy.

[Back to Input controls index](../../controls-input.md)
