Overview › Accessibility (a11y)

Accessibility (a11y)

Almost zero contentDescription / semantics usage in Compose layer.

0 findings in this category
35
SCORE

Summary

Accessibility is the weakest category in this review. A grep for contentDescription and semantics { across Kotlin files returned essentially zero matches. TalkBack support is therefore likely broken across most Compose UI.

Findings

CRITICAL

No contentDescription / Compose semantics adoption

Search for contentDescription = and semantics { in .kt files returned 0 matches. Every Image, Icon, IconButton, and clickable Composable should have a description or be marked decorative.
Recommendation: Run a one-time codemod adding contentDescription = stringResource(...) on every Image/Icon; for decorative images use contentDescription = null intentionally; for clickable rows add semantics { contentDescription = ... }.
HIGH

Touch target sizes

Without spot-checks, it is unsafe to assume the 48dp x 48dp minimum is met for icon buttons and chips.
Recommendation: Establish a MinTouchTargetModifier and apply via design-system; verify with Compose UI tests using assertTouchTargetSizeIsAtLeast.
HIGH

Color contrast on tokens

Confirm pallet color tokens meet WCAG AA (4.5:1 for body text, 3:1 for large text).
Recommendation: Snapshot-test palette ratios; flag failing combos at design-token build time.
MEDIUM

Dynamic font scaling

Verify text uses sp not dp and respects fontScale up to 200%.
Recommendation: Add a font-scale = 2.0 preview to the design system catalog.
MEDIUM

RTL support

No RTL-locale resources detected (only en, en-rCA, fr, fr-rCA). If future markets include Arabic/Hebrew, RTL layout regressions will surface.
Recommendation: Audit padding/start-end usage; switch all paddingHorizontal to start/end-aware modifiers.
Costco Android · Code Review Report · Generated 2026-05-07 · 626 machine-curated findings