Skip to content

[Bug]: VoiceOver can't reach the on/off switch for mobile environments #20983

Closed

Description

@akj

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/mobile

Steps to reproduce

  1. On iOS, turn on VoiceOver.
  2. In T3 Code, open Settings → Environments with at least one saved environment.
  3. Swipe through the environment's row and try to reach its on/off switch.
  4. Open the environment (Manage <name>) and try the same in its Connection section.

Expected behavior

VoiceOver can focus each environment's switch. The switch says which environment it controls and whether it is on, and double-tapping it turns the environment on or off.

Actual behavior

VoiceOver reads the whole row as one button, "Manage <name>", followed by its status, such as "Connected" or "Off". The switch never gets focus, so a VoiceOver user cannot turn an environment on or off on either screen. Double-tapping the row only opens the environment's details.

I hit this after updating to 2.0: both of my T3 Connect environments were switched off on the phone, and I had no way to switch them back on. I could only remove them from the phone and add them again from T3 Connect. Now that they are connected, I still cannot switch one off.

Likely cause: in both rows the switch is nested inside a Pressable that has accessibilityRole="button" and an accessibilityLabel. On iOS, that makes the row a single accessibility element and hides its children. The switch also has no label of its own.

I have only checked this on iOS. I have not tried Android with TalkBack.

Impact

Major degradation or frequent failure

Version or commit

T3 Code for iOS 2.0 (App Store). Code links are from main @ 13aa882.

Environment

iPhone with VoiceOver. Host: T3 Code desktop 0.1.1-nightly.20261017.3238 on Windows, connected through T3 Connect.

Workaround

To switch an environment back on, remove it from the phone, then add it again from the T3 Connect section, which adds it switched on. I found no VoiceOver workaround for switching a connected environment off.


Drafted with Claude Code (Opus 5.5) from my report and a read of the source.

Activity

  1. juliusmarminge commented on Oct 17, 2026

    @juliusmarminge
    Member

    Note

    Grok responding on behalf of Julius.

    Thanks for the detailed report. Open PR #17677 already reworks both environment rows (CloudEnvironmentRows.tsx and ConnectionEnvironmentRow.tsx) so the switch is no longer nested inside the row's button Pressable, and gives the switch its own label (Enable <name>). That should let VoiceOver focus and toggle it on both screens, so I've linked this issue to that PR and it will close when it lands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions