Skip to content

feat: inline help text, focus-on-mode-switch, validation live region, longer copy status (#100, #101, #102, #103) - #244

Open
UFObject247 wants to merge 1 commit into
soroban-testkit:mainfrom
UFObject247:fix/issues-100-101-102-103
Open

UFObject247 wants to merge 1 commit into
soroban-testkit:mainfrom
UFObject247:fix/issues-100-101-102-103

Conversation

@UFObject247

Copy link
Copy Markdown

Summary

Closes #100
Closes #101
Closes #102
Closes #103

Four focused accessibility enhancements to the Soroban Testkit Interface.

#100 — Inline help text for form fields

Every required and optional input, select, and checkbox in the command builder now carries an aria-describedby attribute pointing to a visible .field-help element. Screen reader users can now discover each field's purpose and expected value without trial and error.

  • Path: "Path to the contract workspace or source directory, such as . or ./contracts/token."
  • Format: "html opens in a browser; lcov feeds into CI coverage tools; text prints to stdout."
  • Open: "Automatically launches the HTML report in your default browser after generation."
  • Function: "Use the exported symbol name from your contract ABI, such as batch_payout." (pre-existing, now verified)
  • Ramp: "Use the parameter you want to increase in the contract input set." (pre-existing, now verified)
  • Strict: "When enabled, the audit command exits with a non-zero status if any warnings are found."
  • Shell: "Adjusts quoting and syntax so the generated command is valid for your shell."

#101 — Focus moves to the workflow heading after a mode switch

Clicking the coverage / limits / audit tab buttons now moves focus to the "From intent to command" h2 (via tabIndex={-1} + a useEffect that skips the first render). Keyboard and screen-reader users land at the top of the updated form instead of staying on the tab button.

#102 — Validation errors announced via live region

The Copy button now runs validation before writing to the clipboard. The first unsatisfied constraint is announced through an aria-live="assertive" + role="alert" region, and the message clears as soon as the field is corrected. The clipboard is never written when validation fails.

#103 — Copied status persists long enough for assistive technology

The reset timeout for all copy buttons (Copy, Copy with comments, Copy as script, step Copy buttons) has been extended from 1 600 ms to 3 000 ms. This gives screen readers and Braille displays enough time to announce the state change before it reverts.

Test plan

  • Focused unit tests added for all four behaviours (src/App.test.tsx)
  • Pre-existing test count unchanged (15 pre-existing failures, 0 new failures introduced)
  • docs/accessibility.md updated with new automated-check entries and findings 11–14

🤖 Generated with Claude Code

…er copy status (soroban-testkit#100, soroban-testkit#101, soroban-testkit#102, soroban-testkit#103)

- soroban-testkit#100: Associate inline help text with every form field.
  All required and optional inputs, selects, and checkboxes now carry
  aria-describedby pointing to a visible .field-help element, making
  each field's purpose and expected value discoverable by screen readers
  without trial and error.

- soroban-testkit#101: Move focus to the workflow heading after a mode switch.
  Clicking the coverage / limits / audit tab buttons now moves focus to
  the "From intent to command" h2, giving keyboard and screen-reader
  users an unambiguous entry point into the updated form.

- soroban-testkit#102: Announce validation errors through a live region.
  The Copy button now validates required fields before writing to the
  clipboard. The first unsatisfied constraint is announced via an
  aria-live="assertive" region; the error clears when the field is
  filled.

- soroban-testkit#103: Make the copied status persist long enough for assistive technology.
  Reset timeout extended from 1 600 ms to 3 000 ms so screen readers
  and Braille displays have enough time to announce the state change.

Adds focused tests for each behaviour and updates docs/accessibility.md
with new automated-check entries and findings 11–14.
@drips-wave

drips-wave Bot commented Oct 21, 2026

Copy link
Copy Markdown

@UFObject247 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant