Skip to content

SYSTEM Cited by 1 source

Android Accessibility Framework

Definition

The Android Accessibility Framework is the set of platform APIs Android apps use to expose UI semantics to assistive technologies like TalkBack. It defines the data model (what roles, states, and structures UI elements have) and the extension points (AccessibilityDelegate, AccessibilityNodeInfoCompat, accessibility events) that apps use to correct or augment the default semantics.

Key primitives surfaced on the wiki

AccessibilityDelegate

Attach a delegate to a View (or override it in a custom View subclass) to customise the a11y information the view exposes. This is the load-bearing extension point for fixing framework-semantic bugs without changing the widget tree.

Canonical wiki instance: Slack's SKListAccessibilityDelegate for SKListAdapter, which overrides the exported CollectionInfo so decorative SK divider items don't inflate TalkBack's "N items in a list" count. Pattern: patterns/accessibility-delegate-override-for-semantic-fix. (Source: sources/2025-11-19-slack-android-vpat-journey)

AccessibilityNodeInfoCompat.CollectionInfo

The data structure TalkBack reads to produce "N items in a list" announcements. Defaults to the raw child count of the adapter; must be overridden when decorative or non-semantic items are present in the adapter's child list.

Custom actions (AccessibilityNodeInfoCompat.addAction)

Re-expose gesture-only interactions as named actions invocable from TalkBack's context menu (three-finger tap on the element, or the L / r drawing gestures). Canonical wiki instance: Slack's workspace-switcher "Move before" / "Move after" actions attached to each workspace row during Edit mode. Pattern: patterns/custom-talkback-actions-as-gesture-alternative. (Source: sources/2025-11-19-slack-android-vpat-journey)

Focus-based announcements

Components can request that TalkBack announce text when focus enters them. Used by Slack's OutlinedTextField error-state fix and SKBanner error-type fix so users don't have to swipe-hunt to discover errors. (Source: sources/2025-11-19-slack-android-vpat-journey)

Known limitations relative to WCAG

Not every WCAG criterion maps cleanly to the Android Accessibility Framework. Two canonical examples from Slack's VPAT triage:

  • Top-app-bar title as heading — WCAG 1.3.1 expects a page title to be semantically a heading; Android platform convention (observed in native Google apps) does not mark top-app-bar titles as headings. Slack followed the platform convention rather than the WCAG web mapping.
  • Strikethrough announcement — WCAG 1.3.1 reading suggests strikethrough should be conveyed; most screen readers (including TalkBack) deliberately do not announce it because doing so is verbose and ambiguous.

See concepts/wcag-platform-applicability-gap for the general pattern.

Seen in

Last updated · 470 distilled / 1,213 read