oppia-android icon indicating copy to clipboard operation
oppia-android copied to clipboard

[BUG]: Talkback is not reading concept card link on Solution box

Open subhajitxyz opened this issue 4 months ago • 20 comments

Describe the bug

TalkBack is not reading the concept card link in the solution box on the flashback screen and Hints Dialog. However, TalkBack correctly reads the concept card link in the hints and solution box.

Steps To Reproduce

For Flashback solution box

  • Turn on Flashback feature flag
  • Go to First test topic.
  • Navigate to the question: "Two numbers are respectively 20%...".
  • Submit wrong answer "4:7" and click "See Example" button.
  • Turn on talkback.
    • Go to Phone Settings → Accessibility → TalkBack (or Screen Reader) and enable it.

For solution box on Hint's dialog

  • Go to First test topic.
  • Move to second state.
  • Submit two wrong answers, wait for hints and see solution.
  • Turn on talkback.
    • Go to Phone Settings → Accessibility → TalkBack (or Screen Reader) and enable it.

Expected Behavior

Talkback should read concept card link.

Screenshots/Videos

https://github.com/user-attachments/assets/d6e9df6d-06fe-441d-9f9a-a45b4be384d3

https://github.com/user-attachments/assets/33dbdaa2-6fa3-4bda-b4d1-dc1b036cb116

What device/emulator are you using?

Oppo reno 2f

Which Android version is your device/emulator running?

No response

Which version of the Oppia Android app are you using?

No response

Additional Context

subhajitxyz avatar Aug 12 '25 15:08 subhajitxyz

@subhajitxyz, thanks for filing this issue! Could you please edit the issue body and add more information about this, e.g. whether talkback reads links in the hints and solutions dialog, and how to trigger the flashback view(as part of the repro steps)

adhiamboperes avatar Aug 12 '25 16:08 adhiamboperes

@adhiamboperes , I have updated issue description and Additional context for GFI breakdown.

subhajitxyz avatar Aug 29 '25 03:08 subhajitxyz

Hi @subhajitxyz, could you please add a summarized explanation in the additional context section about what could be causing the bug.

adhiamboperes avatar Sep 01 '25 14:09 adhiamboperes

Hi! 👋 I am new to Oppia Android and this is the first issue I picked to explore. I followed all the steps mentioned in the issue to reproduce the TalkBack behavior.

🔍 What I tested

  • Device: Vivo T2x
  • Oppia Android: dev build (installed via Bazel)
  • TalkBack: latest version from Accessibility settings
  • Feature Flags → Flashback Support: ON

📝 Steps I followed

  • Opened Oppia app
  • Opened First Test Topic
  • Found the question “Two numbers are respectively 20% more than…”
  • Submitted the wrong answer 4:7
  • The “See Example” option appeared
  • (In my UI, the screen title is “Example”, not “Revisit Previous Question” as shown in the original video. I think the UI has been updated since the issue was created.)
  • Turned on TalkBack
  • Focused on all the links inside the explanation text

🎧 Observed TalkBack behavior on my device

  • TalkBack correctly reads the link text
  • Then it announces “Action available. Double tap to activate.”
  • This matches the expected TalkBack behavior for accessible links.

📌 Conclusion from my testing

  • I could not reproduce the issue described in the video.
  • Instead of the incorrect announcements shown in the old video, the behavior on my device seems fully correct.

❓ Questions for maintainers

  • Is this issue device-specific or already resolved in recent UI changes?
  • Is there a different screen / scenario where the problem still occurs?

I am happy to re-test and continue investigating with your guidance. Thank you! 🙌

CodeWithSangeeta avatar Nov 23 '25 14:11 CodeWithSangeeta

@CodeWithSangeeta ,Thanks for attempting to reproduce the issue. I’m still able to reproduce it on my end. Could you please share a screen recording of the exact steps you followed?

subhajitxyz avatar Nov 24 '25 03:11 subhajitxyz

Hi, Can I work on this issue?

Ave19Anurag avatar Nov 24 '25 09:11 Ave19Anurag

@Ave19Anurag, @CodeWithSangeeta is already putting some work into this, let's kindly allow her adequate time to respond to previous questions. In the meantime, please take a look at starter issues list. In particular, you could work on https://github.com/oppia/oppia-android/issues/5607

adhiamboperes avatar Nov 24 '25 14:11 adhiamboperes

Here is the screen recording showing the exact steps I followed on my Vivo T2x device.

Video (Google Drive): https://drive.google.com/file/d/1PJnwC5y8xwe642qDte8wpO9ZnZIPCE7u/view?usp=sharing

I followed:

  • Open Oppia
  • Go to Developer Options > Feature Flags > Enable Flashback Support
  • First Test Topic
  • Wrong answer 4:7 → See Example
  • Turn ON TalkBack
  • Move focus to the concept card link

TalkBack reads the link properly and announces “action available, double-tap to activate”.

Please let me know if I missed any step or if you want me to test a specific screen again.

CodeWithSangeeta avatar Nov 24 '25 21:11 CodeWithSangeeta

TalkBack should read “click on this test_skill_id_1_concept_card”.

For reference, you can check the hint section (not the solution section). In the hint section, TalkBack reads it correctly , please follow the second reproduction step mentioned in the issue description and open hint instead of solution solution.

Also, please read the Additional Context section carefully. It provides important details that will help you better understand the issue.

subhajitxyz avatar Nov 25 '25 01:11 subhajitxyz

Hi @subhajitxyz, thanks for the guidance! I followed both reproduction steps again, but I’m a little confused about the “second state” part in the Hint Dialog flow.

Here is what I observed: In the Flashback solution box, the link appears correctly (I already shared the screen recording). But in the Hint dialog, after moving to the next question and submitting two wrong answers, I am not seeing any concept card link inside the Hint or the Solution dialog. Because there is no link visible.

Could you please clarify what “second state” refers to? Should I: move to the next question in the exploration, or stay in the same question but after the second wrong attempt?

If possible, could you also share a small screenshot or the exact text of the question where the concept card link should appear in the Hint dialog?

This will help me verify that I am testing on the correct screen. Thanks again for your help!

CodeWithSangeeta avatar Nov 25 '25 12:11 CodeWithSangeeta

https://github.com/user-attachments/assets/93aa0ead-c089-42c5-bdca-d2525c074a5f

Use talkback, you will see , talkback read concept card link on hint section but not in solution section.

subhajitxyz avatar Nov 25 '25 12:11 subhajitxyz

Hi! Thank you for the video. I followed the exact same steps and tested using TalkBack on my device (Vivo T2x, Android 15).

In my testing, TalkBack correctly announces the concept card link ,it says:- “Double-tap to open link, Action available. ”

Here is my screen recording for reference: https://drive.google.com/file/d/1LJLZGhZ9zOUeOCa66xhjKEnAtcXFSto2/view?usp=sharing

CodeWithSangeeta avatar Nov 25 '25 18:11 CodeWithSangeeta

Hi @CodeWithSangeeta, I brlirvr it should read: "click on this test_skill_id_1_concept_card. Double-tap to open link, Action available”, but according to your video, it says, "click on this" then quiet, then “Double-tap to open link, Action available.”

adhiamboperes avatar Nov 28 '25 08:11 adhiamboperes

Hi @adhiamboperes, thanks for the clarification — and thank you for assigning me this issue! Just to confirm once more before I start working on the fix:

In the Hint section on my device (as shown in the video I shared), TalkBack reads the full link text like: “click on this test_skill_id_1_concept_card” followed by “Double-tap to open link, Action available.”

Could you please confirm that this same behavior is the expected output in: the Hint dialog solution box?

Because currently, TalkBack only says: “click on this” → silence → “Double-tap to open link, Action available.”

Once I get your confirmation, I will start investigating how Oppia generates and sets the accessibility label for this concept-card link.

CodeWithSangeeta avatar Nov 28 '25 13:11 CodeWithSangeeta

Hi @CodeWithSangeeta. To avoid any confusion, please make sure that the following three user flows read the concept card link correctly.

  1. Hint dialog(blue bar that shows after 2 incorrect answers)
  2. Hint Solution - shows up in the hint dialog after viewing all available hints(trigger via inputting more wrong answers to the same question after viewing a hint)
  3. Solution box in the Flashback state(using repro steps in the issue description)

The talk back should read “ “click on this test_skill_id_1_concept_card” followed by “Double-tap to open link, Action available.””.

Lastly, flashback is now enabled by default if you pull the latest commit from develop, so you don’t need to enable it via the developer options.

Please let me know if I can clarify anything further.

adhiamboperes avatar Nov 28 '25 14:11 adhiamboperes

Hi @adhiamboperes, Thanks for the detailed clarification!

Okay, I’ll start working on this. I will verify all three user flows you mentioned. I’ll make sure TalkBack reads the full text exactly as expected. Also, thanks for the note about Flashback being enabled by default — that helps.

If I need more clarification while checking the code structure, I will let you know.

CodeWithSangeeta avatar Nov 29 '25 17:11 CodeWithSangeeta

Hi @adhiamboperes, I have implemented the TalkBack content-description update for concept card links.

Here is a screen recording showing the behavior in: Hint section Hint–solution section Flashback solution section https://drive.google.com/file/d/1y6pqNhccfw5rjqeOtr_VNsF78jvSTvPN/view?usp=sharing

TalkBack now reads the concept card link exactly once and in the correct format.

Please let me know if this behavior looks correct, and I will immediately prepare the PR with the code changes. Thank you!

CodeWithSangeeta avatar Dec 03 '25 14:12 CodeWithSangeeta

This looks great, @CodeWithSangeeta! You can go ahead and create a PR for this.

adhiamboperes avatar Dec 04 '25 02:12 adhiamboperes

It might be possible to get talkback to not read the underscores--we can discuss this based on the implementation in your PR.

adhiamboperes avatar Dec 04 '25 02:12 adhiamboperes

I’ve created the PR for this fix. Here is the link: https://github.com/oppia/oppia-android/pull/6033. Please let me know if any changes are needed.

CodeWithSangeeta avatar Dec 04 '25 13:12 CodeWithSangeeta