Skip to content

fix(a11y,QRCode): canvas has no figure wrapper, missing figcaption for label prop, no loading state during QR generation #207

Description

@k-deejah

Problem

Three issues in TransactionHistory affect UX, accessibility, and data correctness.

1. feePaid field from Transaction type is never displayed

Transaction has a feePaid field but TxRow only renders the hash, ledger, memo, status, and timestamp. Users have no way to see what fee was paid for a transaction without going to Stellar Explorer.

2. Transaction memo is truncated with no tooltip for long memos

{tx.memo && <span className="text-[10px] text-ink-3">· {tx.memo}</span>} renders the full memo inline. Long memos overflow the row layout. No title attribute or truncation cap is applied.

3. TxRow has no role or aria-label — screen readers announce raw text

Each TxRow is a <div> with no semantic role. Screen reader users traversing the list hear the truncated hash, ledger number, memo, and status as unrelated fragments with no grouping context.

Solution

  1. Add a feePaid field to TxRow rendered as a small secondary label (e.g. "Fee: 100 stroops").
  2. Cap memo display at 20 chars with title={tx.memo} for the full value.
  3. Add role="row" or wrap each TxRow in an <article> with aria-label describing the transaction.

Acceptance Criteria

  • feePaid is visible in each transaction row
  • Long memos are truncated at 20 chars with full value in title tooltip
  • Each transaction row has a meaningful accessible label for screen readers
  • npm run build passes

Note for Contributors: Write a clear PR description. Include a screenshot of the updated row layout showing the fee field and truncated memo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Stellar WaveIssues in the Stellar wave programenhancementNew feature or request

    Type

    No type
    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