microsoft / microsoft/AdaptiveCards

[Teams][Accessibility] [TextRun element focusable on Android while all other elements are not]

Open
#5,207 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Accessibility Partner-MsftTeams Partner-MsftTeamsMobile Platform-Android
Dominant language
C#
Stars
2k
Forks
595
Avg merge
1d 19h
Merged PRs (30d)
1

Description

https://user-images.githubusercontent.com/29580478/102677799-0c593600-4159-11eb-9d26-6ba272b6a8e2.mp4

originalCardJson.txt

Platform

What platform is your issue or question related to? (Delete other platforms).

  • .NET HTML
  • .NET WPF
  • Android
  • iOS
  • JavaScript
  • UWP

Author or host

Are you an author (like sending something to Outlook), or a host that is rendering your own cards? If host, please specify the corresponding host (app) name.

Host - Teams Mobile

If you're an author, who are you sending cards to?

Version of SDK

What version are you using? Ex: NuGet 1.0.2, or latest main, etc...

1.2

Details

Explain your issue. If you just have a question, please post on StackOverflow instead.

Using TextRun elements is causing accessibility focus issues on Android. See attached video and card JSON. It seems that for all other adaptive card elements, like TextBlock, they are set to fosuable: false, however, for some reason the TextRun elements is rendering with fosuable; true. This causes very unexpected results when used alignside other TextBlock elements. When the focus is on the whole card, it skips reading the TextRun elements. When swiping to next element, it then jumps only to the TextRun element, causing a very confusing user experience. See video for example, where "16 hours" is rendered using TextRun.

Currently we are recommending from Teams to not use TextRun next to TextBlock because of this accessibility issue. So while developers can work around this by using other types of elements, they will not be able to leverage the features of TextRun.

This does not repro on iOS or Web

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the attached video and originalCardJson.txt, then reproduce the issue in the Android Teams Mobile host using the TextRun and TextBlock elements described. Trace Android rendering and accessibility focus for TextRun; done means TextRun no longer receives unexpected focus or gets skipped in the card's reading order, without regressing other elements.

Written by the indexing model from the issue text.

Assessment

Tech stack
android
Domain
accessibility, mobile
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.