Skip to content

feat(WalletScreen,QRCode): accessible receive QR code (#121 upgrade) - #132

Merged
k-deejah merged 3 commits into
Sorokit:mainfrom
jadonamite:feat/walletscreen-qr-a11y
Jun 26, 2026
Merged

feat(WalletScreen,QRCode): accessible receive QR code (#121 upgrade)#132
k-deejah merged 3 commits into
Sorokit:mainfrom
jadonamite:feat/walletscreen-qr-a11y

Conversation

@jadonamite

Copy link
Copy Markdown
Contributor

Context

The core of issue #121 — removing the duplicate AccountCard, adding a QR receive section, and a copyable InfoCell — already landed on main (commit 66b8cc6). This PR upgrades that receive-funds surface with the accessibility piece it was missing.

Problem

The receive QR is rendered as a <canvas>, which is completely opaque to assistive technology. A screen-reader user on WalletScreen gets no indication that a QR code for receiving funds is present.

Change

  • QRCode: add an optional ariaLabel prop and expose the canvas as role="img" with an accessible name. The name resolves to ariaLabellabel → a generic "QR code" fallback, so existing call sites gain a sensible default with no change required.
  • WalletScreen: pass a descriptive label naming the receiving address (QR code to receive funds at address G…).
  • Tests: added QRCode cases for the role="img" exposure and accessible-name resolution.

Verification

  • npm test (QRCode suite): 10 passed.
  • npm run lint: clean.
  • npm run build: my files type-check cleanly. Note: tsc -b currently fails on a pre-existing, unrelated error in src/verify-exports.ts (TS1484 type-only import) that is present on main before this change — out of scope for this PR.

Closes #121

…readers (Sorokit#121)

The WalletScreen receive surface (issue Sorokit#121) renders the address as a
<canvas> QR code, which is opaque to assistive tech — screen reader users
got no indication a QR code was present.

Upgrade the existing receive-funds implementation with accessibility:
- QRCode: add an `ariaLabel` prop and expose the canvas as `role="img"`
  with an accessible name (falls back to `label`, then a generic
  description).
- WalletScreen: pass a descriptive label naming the receiving address.

Adds QRCode tests for the role/name behaviour.

Closes Sorokit#121
@drips-wave

drips-wave Bot commented Jun 25, 2026

Copy link
Copy Markdown

@jadonamite 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

@k-deejah
k-deejah merged commit d75a80c into Sorokit:main Jun 26, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(WalletScreen): duplicate AccountCard removed, QR code for receiving missing, InfoCell values not copyable

2 participants