Releases: RaspberryPiFoundation/blockly
Releases · RaspberryPiFoundation/blockly
blockly-v13.0.0
Hello Block Builders! We have a very exciting release for you with v13.0.0! Highlights:
- Blockly is now both keyboard-navigable and screenreader-accessible by default! You can read more about our approach here. If you have custom blocks and/or fields, you'll want to update the aria roles and labels for those as described here. See below for more resources.
- If you were using the
@blockly/keyboard-navigationplugin, you should uninstall it at the same time that you update to v13! Keyboard navigation is enabled by default. - As usual, each of the breaking changes PRs linked below contains instructions for how to know if a change affects you and what to do if it does. Many of these breaking changes are quite niche so for many of you it should not be a huge lift to update. A big category of these is the addition of new keyboard navigation shortcuts. If these conflict with your existing shortcuts, you'll need to update one or the other. We recommend you keep our default keyboard navigation shortcuts if at all possible, to maintain parity with other block-based applications. Get in touch on the forum if you have questions!
- We updated the default renderer to
thrasos. If you explicitly specify your renderer (as you probably should) then this does not affect you, but if not you may notice your blocks look very slightly different. Thrasos is more performant than geras so we recommend you keep using it if possible. - We've added a new sound for when a block is dropped on the workspace. Our user testing validated that the new sound helped users understand when a new block is placed, in addition to the existing sound effect for when blocks are connected or disconnected. We know new sounds can be jarring but give it a chance :)
- We also updated the default location of sounds to blockly.com/media. Best practice is to host the sounds yourself, so if you're doing that be sure to also host the new sound. Or you can replace it with your own file if you prefer.
- The oldest browser we now support is Safari 15.4. This version is already no longer receiving security updates from Apple so we believe most applications should already have a minimum supported version newer than this. If this is an issue for you, you can polyfill the css
:hasselector and continue supporting older versions. - Plugins are coming soon - we'll send another email when they're released. New this cycle is that all plugins will receive the v13.0.0 version number so it will be easy to tell how to update your plugins when required.
More accessibility resources:
- Be on the lookout for our Blockly Summit 2026 talks on YouTube which had tons of relevant talks! We'll post an update on the forum when these are live.
- Best practices for creating accessible applications
- How to audit your block-based app for conformance with accessibility requirements
What's Changed
Breaking changes 🛠
- fix!: Make
ISelectable.workspacean instance ofWorkspaceSvgby @gonfunko in #9534 - fix!: Remove event dependencies on XML by @gonfunko in #9536
- feat!: Use box-sizing: border-box by default by @gonfunko in #9556
- fix!: Use SVG icon assets by @gonfunko in #9569
- refactor!: Deprecate
Block.getVars()by @gonfunko in #9574 - fix!: Normalize Zelos connection indicators by @gonfunko in #9565
- feat!: Allow moving blocks, comments and bubbles using the keyboard by @gonfunko in #9593
- refactor!: Move responsibility for block creation out of flyouts by @gonfunko in #9610
- feat!: Allow using Blockly in web components/shadow DOM by @gonfunko in #9611
- feat!: Add support for keyboard navigation by @gonfunko in #9634
- fix!: Fix types on
BlockSvgconnections by @gonfunko in #9669 - feat!: announce toasts via shared ARIA live region by @mikeharv in #9672
- fix!: Improve keyboard navigation of icons and bubbles by @gonfunko in #9737
- feat: Add a sound effect when dropping top-level items on the workspace by @gonfunko in #9784
- feat!: Added additional keyboard shortcuts for context menu by @lizschwab in #9845
- fix!: set full block field status explicitly by @maribethb in #9840
- fix!: Flyout follows toolbox in DOM by @mikeharv in #9849
- feat!: Improve context announcement keyboard shortcuts by @gonfunko in #9863
- fix!: update default media location by @maribethb in #9870
- feat!: Add keyboard shortcut to toggle screenreader mode by @gonfunko in #9869
- feat!: add shortcuts to navigate between headings in the flyout by @maribethb in #9874
- fix!: remove deprecated APIs by @maribethb in #9938
- feat!: update the default renderer to thrasos by @maribethb in #9976
New features ✨
- feat: Add a method to play beep tones by @gonfunko in #9612
- feat: Add keyboard shortcut to focus the workspace by @gonfunko in #9615
- feat: Move mode for stacks of blocks by @mikeharv in #9630
- feat: Beep when attempting constrained move on top-level block by @gonfunko in #9635
- feat: Add keyboard shortcut for disconnecting the selected block by @gonfunko in #9650
- feat: Stop on workspace during constrained move by @mikeharv in #9649
- feat: aria live region for announcements by @mikeharv in #9653
- feat: Update CSS for keyboard navigation by @gonfunko in #9674
- feat: Add a JSON Block definition interface by @heliacer in #9613
- feat: Add keyboard shortcuts to navigate between stacks by @gonfunko in #9678
- feat: i shortcut on workspace gives overview by @mikeharv in #9677
- feat: Add aria APIs to Field base class by @mikeharv in #9683
- feat: aria utility additions / improvements by @mikeharv in #9690
- feat: Add keyboard shortcut to perform an action on the currently focused element by @gonfunko in #9673
- feat: Add keyboard shortcut to clean up the workspace by @gonfunko in #9728
- feat: Add keyboard shortcut for duplicating blocks and workspace comments by @gonfunko in #9727
- feat: Add basic support for generating ARIA labels and roles for blocks by @gonfunko in #9696
- feat: Screenreader announcements for move mode by @mikeharv in #9731
- feat: Update zelos path object to allowlist attributes by @lizschwab in #9742
- feat: add display text to shortcuts by @maribethb in #9743
- feat:
FieldInputARIA by @mikeharv in #9744 - feat: Added keyboard shortcut for displaying tooltip by @lizschwab in #9755
- feat:
FieldDropdownARIA by @mikeharv in #9766 - feat: ARIA for other field classes by @mikeharv in #9772
- feat: make flyouts and workspace labels properly accessible by @maribethb in #9774
- feat: Play delete sound when workspace comments are deleted by @gonfunko in #9776
- feat: allow setting custom role description for blocks by @maribethb in #9777
- feat: Bubble ARIA methods by @mikeharv in #9783
- feat: Added support for custom input ARIA labels by @lizschwab in #9789
- feat: ...
blockly-v13.0.0-beta.9
What's Changed
New features ✨
- feat: add docs as conventional commit option by @zspriggs in #9970
- feat: Reduce build size by enabling
assume_function_wrapperbuild flag by @gonfunko in #9921 - feat: add block role description to verbose block labels by @mikeharv in #9960
Bug fixes 🐛
- fix: Fix loss of focus when deleting blocks via context menu by @gonfunko in #9951
- fix: use translated 'bubble' string for ARIA label fallback by @mikeharv in #9954
- fix: don't allow disconnecting shadow blocks by @microbit-matt-hillsdon in #9964
- fix: only show paste hint toast on keyboard copy/cut by @microbit-matt-hillsdon in #9962
- fix: remove redundant labels for child blocks of parent input by @mikeharv in #9967
- fix: Fix styling and focusing of connections in shadow DOM by @gonfunko in #9952
- fix: allow nav into collapsed block row via right arrow by @microbit-matt-hillsdon in #9958
- fix: all use closest candidate when moving disconnected blocks by @mikeharv in #9971
- fix: position dragging block above/below all blocks by @mikeharv in #9972
- fix: improve terminal position detection by @mikeharv in #9973
Full Changelog: blockly-v13.0.0-beta.8...blockly-v13.0.0-beta.9
blockly-v13.0.0-beta.8
What's Changed
Bug fixes 🐛
- fix: improve fallback behavior for custom input labels by @maribethb in #9942
- fix: Improve fallback for getInitialCandidate by @microbit-robert in #9941
Full Changelog: blockly-v13.0.0-beta.7...blockly-v13.0.0-beta.8
blockly-v13.0.0-beta.7
What's Changed
Breaking changes 🛠
- fix!: remove deprecated APIs by @maribethb in #9938
New features ✨
- feat: Play error beeps when shortcuts fail by @gonfunko in #9925
- feat: Enable blocks during drags by @gonfunko in #9935
Bug fixes 🐛
- fix: Improve narration of modifier keys by @gonfunko in #9926
- fix: Fix bug that caused an incorrect count of inputs on blocks when generating ARIA labels by @gonfunko in #9927
- fix: Do not use custom input labels for connection positions and move start by @mikeharv in #9932
- fix: Avoid issue with toolbox search plugin by @gonfunko in #9934
- fix: typo in
unregisterWorkspaceby @maribethb in #9936 - fix: dont show workspace count on apple devices by @maribethb in #9939
- fix: dont show input number in connection labels by @maribethb in #9940
Full Changelog: blockly-v13.0.0-beta.6...blockly-v13.0.0-beta.7
blockly-v13.0.0-beta.6
What's Changed
New features ✨
- feat: allow chaining with setAriaLabelProvider by @mikeharv in #9913
- feat: Add custom input labels to built in blocks by @mikeharv in #9902
- feat: Announce usage hints to screenreaders on initial workspace focus by @gonfunko in #9871
Bug fixes 🐛
- fix(blocks): use static tooltip for controls_ifelse block by @sheitabrk in #9897
- fix: Fix visual glitch when dragging blocks by @gonfunko in #9901
- fix: Reinstate "moving on workspace" announcements by @microbit-robert in #9904
- fix: CSS back to <style> for Safari/cascade reasons by @microbit-matt-hillsdon in #9908
- fix: replace 'command' with 'statement' for block descriptions by @maribethb in #9912
- fix: Don't prepend "begin stack" to blocks inserted from the flyout by @microbit-robert in #9911
- fix: Block labels should not use custom input labels (nested inputs) by @microbit-robert in #9916
- fix: Fix bug that caused blocks to skip valid destinations when moving with looping disabled by @gonfunko in #9894
- fix: Fix resolution of parent toolbox category for block descriptions by @gonfunko in #9891
- fix: Improve initial block placement by @gonfunko in #9903
- fix: Correctly position blocks dragged by the mouse from the flyout by @gonfunko in #9919
- fix: Fix unexpected toast when committing a move with Space by @gonfunko in #9920
New Contributors
- @sheitabrk made their first contribution in #9897
Full Changelog: blockly-v13.0.0-beta.5...blockly-v13.0.0-beta.6
blockly-v13.0.0-beta.5
What's Changed
Breaking changes 🛠
- feat!: add shortcuts to navigate between headings in the flyout by @maribethb in #9874
New features ✨
- feat: Add custom ARIA labels to built-in block dropdown field options by @mikeharv in #9880
- feat: Adjacent label fields are combined when composing ARIA labels by @lizschwab in #9873
Bug fixes 🐛
- fix: Fix package-lock.json for CI by @gonfunko in #9875
- fix: Block labels should not use custom input labels by @mikeharv in #9886
- fix: Beep when attempting to move past a dead end by @gonfunko in #9890
- fix: Fix undefined message references by @gonfunko in #9888
- fix: Don't open the devtools in Firefox when toggling screenreader mode by @gonfunko in #9892
Other changes
- Keyboard shortcuts doc by @rachel-fenichel in #9895
Full Changelog: blockly-v13.0.0-beta.4...blockly-v13.0.0-beta.5
blockly-v13.0.0-beta.4
What's Changed
Breaking changes 🛠
- feat!: Added additional keyboard shortcuts for context menu by @lizschwab in #9845
- fix!: set full block field status explicitly by @maribethb in #9840
- fix!: Flyout follows toolbox in DOM by @mikeharv in #9849
- feat!: Improve context announcement keyboard shortcuts by @gonfunko in #9863
- fix!: update default media location by @maribethb in #9870
- feat!: Add keyboard shortcut to toggle screenreader mode by @gonfunko in #9869
New features ✨
- feat: Insert blocks at focus point by @gonfunko in #9806
- feat: Display keyboard shortcuts in context menus by @gonfunko in #9785
- feat: Comments ARIA by @mikeharv in #9832
- feat: use custom aria labels for inputs with move announcements by @mikeharv in #9846
- feat: Display toasts when items are cut/copied/pasted by @gonfunko in #9842
- feat: use custom labels for block parent input labels by @maribethb in #9867
- feat: add aria labels for connections by @maribethb in #9862
Bug fixes 🐛
- fix: Added comma between labels for fields when composing ARIA label strings by @lizschwab in #9812
- fix: Avoid locking up the test suite by @gonfunko in #9821
- fix: Adjust keyboard navigation of external inputs by @gonfunko in #9820
- fix: Fix bug that could cause unintend block movements by @gonfunko in #9818
- fix: Improve focus management on block deletion by @gonfunko in #9831
- fix: Mark the
WidgetDivandDropDownDivas owned by the workspace by @gonfunko in #9825 - fix: Redo move templates by @mikeharv in #9822
- fix: Improve ARIA fallback generation for HTML-based menu items by @gonfunko in #9827
- fix: Update workspace ARIA label on focus by @gonfunko in #9841
- fix: Improve display of move-related hints by @gonfunko in #9843
- fix: Don't suppress passive focus on blocks by @gonfunko in #9839
- fix: improve block labels and aria roles by @maribethb in #9834
- fix: Improve display of workspace focus rings by @gonfunko in #9848
- fix: Fix bug that prevented display of move indicators in mutator workspaces by @gonfunko in #9856
- fix: Display appropriate help hint for navigating blocks in RTL by @gonfunko in #9857
- fix: Fix positioning of keyboard-driven workspace context menu in RTL by @gonfunko in #9858
- fix: Fix bug that could cause blocks to be inadvertently deleted by @gonfunko in #9859
- fix: always store initial drag connections by @mikeharv in #9851
- fix: skip empty label fields and dummy/end row inputs for move announcements by @mikeharv in #9847
- fix: Improve display of focus rings on workspace controls by @gonfunko in #9860
- fix: Block-level ARIA labels no longer include clickable image descri… by @lizschwab in #9844
- fix: labels for multi-statement blocks by @mikeharv in #9868
Full Changelog: blockly-v13.0.0-beta.3...blockly-v13.0.0-beta.4
blockly-v13.0.0-beta.3
What's Changed
New features ✨
- feat: Added support for custom input ARIA labels by @lizschwab in #9789
- feat: Icon ARIA by @mikeharv in #9805
Full Changelog: blockly-v13.0.0-beta.2...blockly-v13.0.0-beta.3
blockly-v13.0.0-beta.2
What's Changed
New features ✨
- feat: Added keyboard shortcut for displaying tooltip by @lizschwab in #9755
- feat:
FieldDropdownARIA by @mikeharv in #9766 - feat: ARIA for other field classes by @mikeharv in #9772
- feat: make flyouts and workspace labels properly accessible by @maribethb in #9774
- feat: Play delete sound when workspace comments are deleted by @gonfunko in #9776
- feat: allow setting custom role description for blocks by @maribethb in #9777
- feat: Bubble ARIA methods by @mikeharv in #9783
- feat: Add a sound effect when dropping top-level items on the workspace by @gonfunko in #9784
Bug fixes 🐛
- fix: Make the undo/redo API more ergonomic by @gonfunko in #9573
- fix: Fix bug that could cause focus to be lost in Chrome when dismissing a dropdown by @gonfunko in #9763
- fix: Don't focus newly created variable blocks when not using keyboard navigation by @gonfunko in #9764
- fix: Disable some shortcuts in the flyout by @gonfunko in #9765
- fix: Remove unneeded scrollbars on contextual menus by @gonfunko in #9771
- fix: Fix bug that caused focus rings to be inverted in RTL Zelos by @gonfunko in #9767
- fix: Fix Escape in toolboxes and flyouts by @gonfunko in #9770
- fix: Prevent errors when mixing keyboard/mouse input in the toolbox/flyout by @gonfunko in #9773
- fix: Make trashcan and zoom controls accessible by @gonfunko in #9768
- fix: Make live region coalesce messages by @gonfunko in #9778
- fix: Fix bug that could cause focus to be lost when deleting a block by @gonfunko in #9779
Other changes
Full Changelog: blockly-v13.0.0-beta.1...blockly-v13.0.0-beta.2
blockly-v13.0.0-beta.1
What's Changed (since v13.0.0-beta.0)
Breaking changes 🛠
New features ✨
- feat: Add keyboard shortcut to clean up the workspace by @gonfunko in #9728
- feat: Add keyboard shortcut for duplicating blocks and workspace comments by @gonfunko in #9727
- feat: Add basic support for generating ARIA labels and roles for blocks by @gonfunko in #9696
- feat: Screenreader announcements for move mode by @mikeharv in #9731
- feat: Update zelos path object to allowlist attributes by @lizschwab in #9742
- feat: add display text to shortcuts by @maribethb in #9743
- feat:
FieldInputARIA by @mikeharv in #9744
Bug fixes 🐛
- fix: Add default aria role to svg and group elements by @lizschwab in #9697
- fix: Fix positioning of move marker on blocks by @gonfunko in #9722
- fix: Improve accuracy of block navigability detection by @gonfunko in #9725
- fix: Fix bug that caused blocks inserted via Enter to not attach by @gonfunko in #9699
- fix: Inhibit keyboard navigation shortcuts when the dropdown or widget divs are open by @gonfunko in #9724
- fix: Increase contrast of active tree focus ring color by @gonfunko in #9726
- fix: Fix bug that caused blocks in flyout to disappear on click in Chrome by @gonfunko in #9729
- fix: Field text hidden from ARIA by @lizschwab in #9734
- fix: Improve navigation and movement looping behavior by @gonfunko in #9732
- fix: Fix dropdowndiv animations by @gonfunko in #9733
- fix: use correct key names for key codes by @maribethb in #9746
- fix: Don't close the flyout when creating a variable using keyboard nav by @gonfunko in #9745
- fix: set role application and fix block readouts by @maribethb in #9747
- fix: dont activate base delete areas for keyboard moves by @maribethb in #9748
- fix: Improve focus handling when clicking outside injection div by @gonfunko in #9749
Reverted changes ⎌
Full Changelog: blockly-v13.0.0-beta.0...blockly-v13.0.0-beta.1