slack

Android VPAT journey (opens in new tab)

Slack’s Android VPAT review uncovered recurring accessibility issues after the company’s 2024 UI redesign. Slack addressed problems involving error announcements, headings, form labels, list counts, and workspace reordering through changes to UI components and TalkBack support. The review also showed that some vendor recommendations required interpretation against Android conventions, while keyboard navigation remains future work.

Background and Triage

  • A VPAT documents how a product aligns with accessibility standards and helps customers evaluate software.
  • Slack commissioned a third-party VPAT in 2024 after its IA4 redesign.
  • Straightforward issues, such as poor color contrast and missing image labels, were assigned immediately.
  • The remaining Android findings were grouped into recurring themes:
    • Inaccessible error messages
    • Missing semantic headings
    • Unclear edit-field labels
    • Incorrect list item counts
    • Inaccessible workspace drag-and-drop
    • Strikethrough information not conveyed to screen readers
    • Errors communicated through color alone
    • Keyboard navigation and focus, which remain future work because Android’s large-form-factor support is limited

Making Error Messages Accessible

  • Invalid form submissions displayed errors visually, but TalkBack did not announce them.
  • Slack addressed both primary error patterns:
    • OutlinedTextField now announces errors positioned below the field.
    • Error-type SKBanner components now announce their messages to screen-reader users.
  • Users can therefore understand both that a field is invalid and why it failed without swiping through the screen.

Adding Semantic Headings

  • Missing headings made page structure difficult for screen-reader users to understand and navigate.
  • Slack added headings in lists, including the Preferences page.
  • The team did not classify top app-bar titles as headings because testing with other Android applications showed that this is not a consistent Android convention.

Providing Persistent Edit-Field Context

  • Some fields relied only on placeholder text, which disappears after text is entered.
  • This can make the field’s purpose unclear, particularly for users with cognitive impairments.
  • The team explored difficult cases such as the main search field and message input area.
  • Because of space limitations, the message input received no ideal redesign.
  • Slack added a search icon to the search field, giving it a persistent visual cue even after the placeholder disappears.

Correcting List Item Counts

  • TalkBack incorrectly counted decorative dividers as list items.
  • For example, a bottom sheet with five actual rows and two dividers was announced as containing seven items.
  • Slack introduced SKListAccessibilityDelegate for SKListAdapter.
  • The delegate overwrites accessibility CollectionInfo with the correct number of meaningful list items.

Making Workspace Reordering Accessible

  • Dragging workspaces requires dexterity that some users may not have.
  • Slack added an explicit Edit mode with visible six-dot drag handles for each workspace.
  • TalkBack users can now use custom “Move before” and “Move after” actions from the accessibility context menu.
  • These actions are available through a three-finger tap or TalkBack gestures such as L and r.
  • A Done button exits Edit mode and removes the drag handles.

Slack’s experience demonstrates that Android accessibility improvements often require both component-level fixes and alternative interaction models. Teams should validate screen-reader behavior directly, distinguish decorative elements from meaningful content, provide persistent context for inputs, and offer accessible alternatives to gesture- or dexterity-dependent interactions.