| Id | UnsynchronizedFeedbackTiming |
| Summary | Feedback is delayed or triggered too early relative to the visible update |
| Severity | N/A |
| Category | Assistive Technologies / Dynamic Feedback |
| Affects | Kotlin and Java files |
| Implementation | Manual testing – automatic detection of incorrect timing of accessibility announcements is challenging because it requires simulating real user navigation, observing UI transitions, and listening to actual screen reader output. |
Screen readers announce UI states that don't accurately reflect the current or intended screen state due to timing issues, race conditions, or premature announcements during transitions.
Provides misleading information to assistive technology users about screen content and functionality, leading to confusion and potentially incorrect user actions based on inaccurate state information.
class PostListActivity : AppCompatActivity() {
private lateinit var statusText: TextView
private lateinit var postList: RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
loadPosts() // Loading posts when activity starts
}
private fun loadPosts() {
// Announces "No posts available" before knowing if posts exist
statusText.text = "No posts available"
statusText.announceForAccessibility("No posts available")
// Correction: Announce empty state only after knowing there are no posts
// fetchPostsAsync { posts ->
// if (posts.isEmpty()) {
// statusText.text = "No posts available"
// statusText.announceForAccessibility("No posts available")
// }
// else { ... }
}
}
}