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¶
- sources/2025-11-19-slack-android-vpat-journey — the
wiki's canonical source for
AccessibilityDelegate,CollectionInfooverride, and custom-action mechanisms.
Related¶
- systems/talkback — the primary consumer of this API surface.
- systems/slack-kit — example of a component library that extends this framework.
- patterns/accessibility-delegate-override-for-semantic-fix
- patterns/custom-talkback-actions-as-gesture-alternative
- concepts/wcag-platform-applicability-gap