Skip to content

[Existing app][OTP Module] Close keyboard and screen-reader gaps #987

Description

@kryputh

Summary

Improve the existing OTP Module surface. This issue is intentionally scoped to existing app code and should not introduce a new standalone tool or unrelated feature.

Current area

OTP detection, OTP card rendering, copy behavior, expiry messaging, and OTP visual states

Relevant paths

  • src/features/otp/detectOtp.ts
  • src/features/otp/components/OTPCard.tsx
  • src/features/otp/styles.css

Goal

tighten the current OTP detection and display experience around security-sensitive mail.

Work focus

Audit the existing surface for keyboard flow, focus order, visible focus, ARIA naming, reduced-motion behavior, and screen-reader clarity. Fix gaps in place without changing the core workflow.

Acceptance criteria

  • All interactive controls are reachable and operable from the keyboard.
  • Focus order matches the visual reading order and does not trap users unexpectedly.
  • Icon-only controls have accessible names and stateful controls expose current state.
  • Reduced-motion or non-animated fallback behavior is respected where motion exists.

Scope guardrails

  • Keep the work inside the relevant existing app/module paths above unless a small shared helper is clearly justified.
  • Do not add a new V1/V2 tool folder for this issue.
  • Do not use real user data, secrets, private keys, or live customer mail.
  • Keep copy and UI aligned with the Stealth Mail safety, speed, and sender-control positioning.

Suggested validation

  • Run the most relevant unit or e2e tests for the touched area.
  • Run �un x tsc --noEmit and �un run lint when the local environment supports the project dependency install.

Metadata

Metadata

Assignees

Labels

AccessibilityAccessibility workGrantFox OSSGrantFox open-source contribution issueMaybe RewardedPotentially rewardable contributor issueOfficial CampaignOfficial campaign issueSecuritySecurity-focused workUIUser interface workenhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions