← Back to all sparks
B

Blockly

EDTECH
Velocity5.0

Visual block-based programming editor library for education

Accessibility moved from plugin to core, and v13 is now being hardened around that default.

accessibilitykeyboard-navigationscreenreaderperformanceinternationalizationbreaking-changes
Current state
Blockly shipped v13.0.0 in mid-June: keyboard navigation and screenreader support are on by default, and the separate keyboard-navigation plugin is folded into core and meant to be uninstalled. The two point releases since have been consolidation — a FOCUSABLE capability on IComponent, paste-near-focus, more navigation shortcuts, and a long tail of ARIA-label fixes. The v13 line arrived through nine betas, several of them carrying breaking changes that forced custom blocks and fields to declare their own roles and labels.
Where it's heading
The work is shifting from making accessibility correct to making it fast and localizable. v13.2.0 rewrites insertion markers for performance and memory-leak reasons, exposes setAriaTypeName on fields, and allows translated field labels — the first release in this window where the accessibility surface is being tuned rather than built. Invalid-input handling that no longer relies on color alone points the same direction: the a11y pass is now reaching the visual layer, not just the ARIA tree.
Prediction
Expect continued 13.x point releases in the same shape — ARIA and focus-behavior fixes plus targeted performance work on drag and rendering paths, with translation coverage extending to more built-in block strings.

Recent moves

  1. 4d ago

    Insertion markers rewritten; field labels now translatable

    The first v13 release that optimizes rather than extends the accessibility work: insertion markers are rewritten to fix performance and memory leaks, and field labels can now be translated. Invalid-input states gain a non-color visual treatment, closing an a11y gap in the rendering layer rather than the ARIA tree.

    View source ↗
  2. 25d ago

    Fixes delete-area hit testing at non-default zoom

    A single-fix patch correcting delete-area hit testing when the workspace is zoomed. Housekeeping on the v13.1 line with no change to the accessibility surface.

    View source ↗
  3. 1mo ago

    Focusable components and paste-near-focus land in 13.1

    The first substantive follow-up to v13.0.0, generalizing focus into a FOCUSABLE capability on IComponent and adding keyboard behaviors users would expect once navigation is the default — paste lands near the focused block, with optional shortcuts for moving around blocks and the workspace. Consolidation of the v13 model rather than new ground.

    View source ↗
  4. 1mo ago

    Keyboard navigation and screenreader support on by default

    ⚡ SPARK

    The release the entire beta train was building toward, and the pivot point for everything after it: accessibility stops being opt-in. Every later entry in this window is either hardening or optimizing what this release made the default.

    View source ↗
  5. 1mo ago

    Beta 9 trims build size and adds block role descriptions

    A late beta balancing the two costs of the v13 push: verbose block labels gain role descriptions for screenreaders, while an added build flag reduces bundle size. Focus-loss and label-fallback fixes continue tightening the ARIA work before GA.

    View source ↗
  6. 2mo ago

    Beta 8: two fallback-behavior fixes

    A two-fix beta refining fallback behavior for custom input labels and initial focus candidates. Routine stabilization on the road to v13.0.0.

    View source ↗