Skip to content

screenreader / keyboard navigation of blocks containing multiple statement inputs #9617

@maribethb

Description

@maribethb

Check for duplicates

  • I have searched for similar issues before opening a new one.

Description

Blocks with multiple statement inputs, like if/else if/else blocks (I may call them if blocks below) currently have some problems:

  • The screenreader reads the entire block at once when you focus on it, which is too much information
  • The plus/minus button mutator model that makecode uses doesn't work cleanly with navigation. You have to focus on the block and use the right arrow key to hit the buttons, instead of focusing on them in the vertical order they appear in.
  • You can't easily access the minus button on the "else" branch, or any button that appears in a branch that does not have another value input.

Solutions:

  • The label for the block should only include the text of the first branch, plus the number of branches. e.g. "if, has 3 branches"
  • You can already hear the output for each individual branch by focusing on the connections for those branches, so no changes needed there.
  • Fix the navigation so that plus/minus buttons are visited in a sane order (need to check whether makecode uses fields or icons for these)
  • The "shift+i" shortcut when you're on a child block of an if block, should only read information for the current branch. If you want to hear the full text of the if block you'll have to focus on the if block as a whole and press i.

Reproduction steps

Priority

High priority, one of the biggest remaining problems from user testing

Stack trace

Screenshots

No response

Browsers

No response

Metadata

Metadata

Assignees

Labels

issue: bugDescribes why the code or behaviour is wrong

Type

No type
No fields configured for issues without a type.

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions