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

No one assigned

    Labels

    issue: bugDescribes why the code or behaviour is wrong

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions