Skip to content

Touch accessibility: 55+ interactive elements below 44dp minimum tap target #73

Description

@physercoe

Touch Accessibility Review — 4.0/10

This is the most severe UX issue in the current app. Approximately 55 interactive elements have effective tap targets well below the Material Design 44dp minimum.

Systemic cause

The visualDensity: VisualDensity.compact + padding: EdgeInsets.zero combination appears on 55 IconButtons, reducing the default 48dp target to ~32-36dp. Four locations also use materialTapTargetSize.shrinkWrap, explicitly disabling the Material minimum.

Worst offenders

File Size Element
annotation_overlay.dart:185-208 28×28dp Close/edit annotation buttons
feed_render.dart:96 h=24dp TextButton in transcript
agent_compose.dart:643 36×36dp Bolt/attach/send buttons (4x)
agent_compose.dart:770 28×28dp Input suffix icon
action_bar_button.dart:205 32×36dp All ActionBar quick action buttons
compose_bar.dart:570 no minimum Suffix icon constraints

Button spacing (mis-tap risk)

File Gap Risk
compose_bar.dart 6dp Insert/Send too close
action_bar_settings_screen.dart 4dp (Wrap) Dense buttons
phase_badge.dart 4dp Badge mis-tap

Material Design recommends ≥8dp between interactive elements.

P0 fixes

  1. Replace all minWidth: 36 / minHeight: 36 on IconButtons → 44/44
  2. Remove materialTapTargetSize.shrinkWrap (4 sites)
  3. Bump TextButton minimumSize from (0, 28)(0, 40)
  4. Increase button spacing from 4-6dp → ≥8dp

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions