Accessibility: icon labels, large text rows, diff lines #17

closed cmc opened this on 2026-09-28 03:18 UTC · accessibility

Discussion

cmc 2026-09-28 03:18 UTC

Accessibility: unlabelled icon buttons, rows that break at large text, unreadable diff lines.

  • Only 2 accessibilityLabels in the app (AdminUsersView.swift:97, DashboardView.swift:58) against 68 Image(systemName:). Unlabelled: the ellipsis.circle action menus (MRView.swift:617-625, IssueView.swift:219-229), the account, plus and bookmark toolbar buttons (RepoListView.swift:31-46,297-301), the plus.circle.fill add buttons, and the chip remove "x" (RemovableChips.swift:21-28, identifier only, caption-sized, under 44pt).
  • At the largest accessibility text size the MR list breaks apart: the "merged" chip wraps one letter per line, the branch becomes d…, "3 days ago" splits over four lines. Seen in the simulator.
  • Diff lines (DiffView.swift:141-155) are four Texts each, so VoiceOver stops four times per line; the 34pt number columns overflow at accessibility sizes.

Changes:

  • Labels: "Actions", "Account", "Add label", "Remove \(item)", and a 44pt hit area on the chip remove.
  • List rows: ViewThatFits or a vertical stack when dynamicTypeSize.isAccessibilitySize; .fixedSize() on chips.
  • Diff lines: .accessibilityElement(children: .combine) with "Added line 13: …"; columns sized with @ScaledMetric.

closed by cmc in commit 41d60b2d2b: Accessibility: icon labels, large-text rows, diff lines (!138)

2026-09-30 02:16 UTC