Stay organized with collections
Save and categorize content based on your preferences.
Blockly provides keyboard navigation through the @blockly/keyboard-navigation
plugin. This code uses the focus system
and will eventually be integrated into Blockly core.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eBlockly's keyboard navigation allows users to move, connect, add, detach blocks, and navigate the toolbox and flyout using keyboard shortcuts.\u003c/p\u003e\n"],["\u003cp\u003eUsers can enable keyboard navigation with \u003cstrong\u003eShift + Ctrl + k\u003c/strong\u003e and utilize \u003cstrong\u003eWASD\u003c/strong\u003e keys along with \u003cstrong\u003eEnter\u003c/strong\u003e, \u003cstrong\u003eI\u003c/strong\u003e, and \u003cstrong\u003eX\u003c/strong\u003e to perform various actions.\u003c/p\u003e\n"],["\u003cp\u003eNavigation is structured into levels (workspace, stack, block/connection, field/input) for traversing blocks and their components.\u003c/p\u003e\n"],["\u003cp\u003eThe default key mappings can be customized, and users are encouraged to experiment with different configurations.\u003c/p\u003e\n"],["\u003cp\u003eCurrent limitations include lack of navigation support for non-block components like the trash can and zoom buttons.\u003c/p\u003e\n"]]],["Keyboard navigation in Blockly is enabled via **Shift + Ctrl + k**, which initiates a cursor. Users navigate the workspace using **WASD** keys across different levels: workspace, stack, block/connections, and fields/inputs, with levels changed using **A** and **D**. **Enter** creates a marker for block insertion. Blocks can be connected by marking a connection with **Enter**, then moving and using **I** to insert. Blocks can be detached using **X**. The toolbox is accessed with **T**, and blocks are inserted with **Enter**. There are opportunities for experimentation in key mappings, screen reader output, workspace navigation and cursor design.\n"],null,[]]