Skip to content

fix(a11y): AccountScreen heading hierarchy missing h2, TransactionsScreen missing h2, SorobanScreen missing h2 #213

Description

@k-deejah

Problem

Three issues in TopBar affect the mobile menu button appearance, error banner height consistency, and the page title semantics.

1. TopBar mobile menu button has no visible label or tooltip on desktop

On desktop, the hamburger button is hidden with lg:hidden. On mobile it is visible but has only aria-label="Open menu". There is no title attribute for users who hover on a touch-capable desktop device, and no visible text label that appears on the menu button.

2. TopBar error banner has a fixed height that clips long error messages

The error banner uses py-2.5 with flex items-center justify-between. Long error messages (e.g. full Horizon error strings) wrap and the h-[60px] header below shifts down, breaking the layout. The error banner should have flex-shrink-0 and the overall layout should account for variable banner height.

3. TopBar page title <h1> tag is missing — the title is in a <p> or <span> semantically

TopBar renders {title} in a styled element. If this is not a semantic <h1>, screen readers navigating by heading skip the page title entirely. The top-level heading of each screen should be a proper <h1>.

Solution

  1. Add title={sidebarOpen ? "Close menu" : "Open menu"} to the mobile menu button.
  2. Remove the fixed h-[60px] constraint from the header when an error banner is present; use min-h-[60px] and allow the banner to expand the containing block.
  3. Change the title <p> to <h1> in TopBar with the same styling, ensuring one <h1> per page.

Acceptance Criteria

  • Mobile menu button has title tooltip on hover
  • Long error messages display fully without clipping
  • Page title renders as semantic <h1>
  • One and only one <h1> exists on each screen
  • npm run build passes

Note for Contributors: Write a clear PR description. Include screenshots of the error banner with a long message and confirm only one <h1> per page via browser DevTools.

Metadata

Metadata

Assignees

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