Accessibility
Microsoft MakeCode includes some core features which promote greater accessibility for everyone. The menus and documentation are accessible with keyboard, assistive technology (including screen readers) and alternative themes, such as a high contrast color mode.
The JavaScript and Python editors are accessible using the keyboard and are accessible to screen readers.
The MakeCode block editor is accessible with keyboard and assistive technologies when “Keyboard Controls” are turned on, but is not yet accessible to screen readers (screen reader compatibility is under development).
Other MakeCode block editors including Arcade are not yet accessible, accessible coding is done using just the JavaScript or Python editors in these cases.
Here are the accessible features and how to enable and use them.
Keyboard Navigation
MakeCode includes features to assist in navigation when the keyboard is used as the primary input method. When a pointing device (mouse or touch input) is not used, or its use is limited, the keyboard assists navigation using these features:
A hidden menu of shortcuts appears when the user begins to tab into the editor. Help text is displayed for the shortcuts. Navigation into menus, JavaScript editor, and Python editor are standardized . You can use the
Tab
key to jump between MakeCode controls. UseShift
+Tab
to tab in reverse order. As you tab through the UI controls, you can see an indicator around the UI element once the element gains focus.
Blocks editor
The micro:bit MakeCode block editor allows you to use keyboard controls to create programs using blocks. Press Tab
to reach ‘Enable blocks keyboard controls’ and press Enter
.
To turn the keyboard controls off, use Tab
to navigate to the Settings menu, you will see a check next to Keyboard Controls when it is enabled, select Keyboard Controls to uncheck and disable keyboard controls.
These shortcuts are available in all areas of the editor:
Action | Windows | Mac |
---|---|---|
Show/hide embedded help | Ctrl +/ |
⌘ +/ |
Open area menu | Ctrl +B |
⌘ +B |
Keyboard controls help
Press Control
+ /
on Windows or ⌘
+ /
on Mac to open or close the keyboard controls help.
If you have enough space you can keep the embedded help open by navigating to the workspace.
Navigating between areas
Tab
and Shift
+Tab
can be used to navigate the whole page.
Alternatively, use Ctrl
+B
followed by the number of the area you want to jump to.
Action | Windows | Mac |
---|---|---|
Top bar | Ctrl +B then 1 |
⌘ +B then 1 |
Simulator (micro:bit) | Ctrl +B then 2 |
⌘ +B then 2 |
Toolbox | Ctrl +B then 3 |
⌘ +B then 3 |
Workspace | Ctrl +B then 4 |
⌘ +B then 4 |
Bottom bar | Ctrl +B then 5 |
⌘ +B then 5 |
The area numbers remain consistent when the layout changes, for example the simulator in the micro:bit MakeCode editor appears in the bottom right when the window is narrow or with high page zoom.
When the area overlay is shown you can also use Tab
and Shift
+Tab
to navigate to the next and previous area.
Workspace controls
The following shortcuts are also available when you are already in the workspace:
Action | Windows | Mac |
---|---|---|
Open context menu | Ctrl +Enter |
⌘ +Enter |
Block and toolbox navigation | Arrow keys | Arrow keys |
Move in or along a block | Left and right arrow keys |
Left and right arrow keys |
Edit or confirm | Enter or Space |
Enter or Space |
Open toolbox | T |
T |
Move block | M then arrow keys |
M then arrow keys |
Drag block | M then Ctrl + arrow keys |
M then ⌥ + arrow keys |
Format code | F |
F |
Delete | Delete or Backspace |
Delete or Backspace |
Disconnect block | X |
X |
Select workspace | W |
W |
Copy | Ctrl +C |
⌘ +C |
Paste | Ctrl +V |
⌘ +V |
Cut | Ctrl +X |
⌘ +X |
Undo | Ctrl +Z |
⌘ +Z |
Redo | Ctrl +Y or Shift +Ctrl +Z |
Shift +⌘ +Z |
Duplicate | D | D |
Navigate to next stack of blocks | N | N |
Navigate to previous stack of blocks | B | B |
Moving and Dragging blocks
Blocks added from the Toolbox are placed on the Workspace in move mode:
Press Enter
to confirm the position. Or use arrow keys to move the block to another position and then Enter
to confirm.
Hold Ctrl
and arrow keys to drag a block around the workspace (to any position not connected to existing blocks) and then Enter
to confirm.
Search box
The search box in the Toolbox can be useful for keyboard users.
After pressing T
(or Ctrl
+B
then 3
), just start typing and the text will appear in the search box. Matching search results are shown immediately. Press Enter
to navigate to the search results.
Pop-up help messages
Some actions display a helpful pop-up message at the bottom of the workspace.
Tab trapping
Dialogs
Sometimes MakeCode shows a dialog on top of the editor. When a dialog is displayed, keyboard navigation is restricted to just the elements inside the dialog.
To close a dialog, press the Escape
key or navigate to the close button (shown as an X at the top right or top left corner) and press Enter
or Space
.
JavaScript and Python editor navigation
These keyboard shortcuts are used in the JavaScript editor:
By default, pressing
Tab
in the editor will insert the tab character. Toggle this behavior by pressingControl
+M
on Windows orControl
+Shift
+M
on Mac. In order to jump to the toolbox from the editor. PressControl
+Alt
+T
on Windows or⌘
+Alt
+T
on Mac.
Drop-down menu
When navigating through the editor with the keyboard, focus is shown with a blue outline around the interactive element. When a contextual menu opens, the Top
and Bottom
arrow keys navigate into, through, and out of the menu. The Enter
or Space
keys validate the selection. Pressing Tab
or Shift
+Tab
moves to the next or previous interactive element outside of the current drop-down menu.
Documentation
The documentation for Microsoft MakeCode is also accessible. Just like on the main editor page, a hidden menu is available to access some shortcuts, such as jumping to the main content of the page.
The side bar menu is accessible with the Tab
key. Some menu items are cascading (a hierarchical view is shown with an arrow on the side of the menu item):
Use the Left or Right arrow keys to expand or collapse menu items.
Immersive reader
Some MakeCode editors will have an option to use the Microsoft Immersive Reader when certain text is displayed. The Immersive Reader is a tool to help with reading comprehension. It adds the ability to change colors, themes, font size, spacing, and highlight parts of speech. Along with its other capabilities, it will also read the text aloud. When available, the Immersive Reader icon appears near instructions or other information it will read.
The Immersive Reader opens in a separate window to show and read the text.
MakeCode Arcade and the Immersive Reader
The MakeCode Arcade editor has the Immersive Reader available when displaying tutorial instructions.
Screen readers
Several screen readers are available to help to use MakeCode. Currently the MakeCode block editor is not accessible to screen readers, but users can use the Javascript or Python editors instead. Screen reader access for the micro:bit MakeCode block editor is in development, provisionally aiming for a MakeCode release in summer 2026.
JAWS (Job Access With Speech) Screen Reader
JAWS is a popular commercial screen reader for Windows.
NVDA (NonVisual Desktop Access)
NVDA is a free screen reader for Windows.
Narrator
Narrator is the built-in screen reader that is part of Windows. To start Narrator:
Press the
Windows
key to open the Start Menu, type “Narrator”, and press Enter.
– OR –
Use the Ease Of Access section in the Windows settings. Set Narrator to On.
Voice Over
Voice Over is the built-in screen reader provided with the Mac. To start Voice Over:
Press the
⌘
+F5
keys.
– OR –
Use the Universal Access pane of System Preferences.
Zoom and responsive layout
MakeCode editors feature responsive, adaptive layouts that work at high levels of zoom, remaining usable at zoom levels of at least 200% and beyond. Different areas of the interface will automatically reflow and collapse to allow continued access to all areas.
Zoom level 1
Zoom level 2
Zoom level 3
High Contrast
The high contrast helps people to locate and distinguish between the different visual elements in the MakeCode editor. This is enabled by each MakeCode target with its own use of color and contrast. So, a high contrast view and dark view are not always available in every instance of a MakeCode editor (partner editions).
Where they are available, these modes are available even when the operating system configuration hasn’t enabled it. If available, in MakeCode, Tab
to the Settings menu and choose Theme then choose from the available options.
JavaScript and Python editors
Read more about accessibility for the JavaScript or Python editor (keyboard navigation, screen readers and high contrast) in the Monaco Editor Accessibility Guide.
Accessibility guidance for specific editors
Some MakeCode editors have more detailed accessibility information and guidance specific to its own platform.