microsoft / microsoft/pxt-microbit

Use code analysis to load simulator controls upfront

Open
#6,785 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

screenreader Simulator
Dominant language
TypeScript
Stars
804
Forks
721
Avg merge
2d 9h
Merged PRs (30d)
2

Description

Is your feature request related to a problem? Please describe.
Excluding the A and B buttons (and touch logo for V2 programs), simulator controls are currently rendered when code that uses a sensor runs through the simulator. Consider a program that reads the light level when Button A is pressed. The simulator does not show the light level control until Button A is pressed on the simulator.

This makes these controls less discoverable for screen reader users, who might explore the simulator without causing additional controls to render and then assume that these additional controls simply do not exist. It is also not possible to set sensor values before the program starts. When the simulator restarts, sensor values are also reset.

There has also been some confusion over the touch logo control appearing. It appears when the program uses V2 features, but these features could be sound-related and nothing to do with the touch logo.

Describe the solution you'd like
Using code analysis of the user's program, it may be possible to determine what sensors may be triggered when the program runs. These sensor controls can then be added to the simulator immediately. This should make these controls more discoverable.

Describe alternatives you've considered
Use an aria live region to announce when simulator controls are rendered, however, this is potentially noisy and depending on the location of the live region, would require the simulator to be focused at the time.

Additional context
Not expected for the 2026 release.

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

No files or tests are named in the issue. Start by tracing how simulator controls are rendered and where the user's program is analyzed; done means relevant sensor controls appear before interaction, remain discoverable to screen reader users, and sensor values can be set before the program starts.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
accessibility, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.