8000 Release blockly-v12.0.0 · google/blockly · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

blockly-v12.0.0

Latest
Compare
Choose a tag to compare
10000
@maribethb maribethb released this 15 May 20:24
852512f

v12.0.0

Blockly v12.0.0 is here, and it's a big one! The team first started working on this release almost a year ago, so it's packed with new features and improvements. Our main goal with this release is to improve the accessibility of Blockly, in conjunction with our brand new keyboard-navigation plugin. Read more below!

Highlights

  • Revamped focus and handling selected items to be compatible with browser focus and enable keyboard navigation. This is most likely to require your attention if you have custom elements that should be keyboard navigable or if you ever set tabstops manually on Blockly components
  • Added many new css classes (and changed a few pre-existing ones) to make styling of various Blockly components easier without having to use themes
  • Added support for arbitrary flyout contents with custom FlyoutInflaters
  • Removed the ASTNode class and some other pieces related to keyboard navigation. Check out the new experience in the keyboard-navigation experiment instead
  • Added ability to register context menu items on basically any Blockly component that is selectable. Read more in our docs
  • Added support for HTMLElements in FieldDropdown options. You can now create options that use both images and text, for example

Accessibility Improvements

Blockly v12 enables a new keyboard-accessible experience when coupled with our new keyboard-navigation plugin. The plugin is currently in beta in the blockly-keyboard-experimentation repo, and will be released as @blockly/keyboard-navigation v1.0.0 in a few weeks. We'll post an update on the blockly-announce group when it's released!

This also marks a major stepping stone toward screenreader-compatibility, which the team will continue working towards through Q2-Q3 of this year. Learn more about our accessibility roadmap

Blockly Samples

Our plugins have also been updated to be compatible with Blockly v12. As a reminder, all plugins also get a new major version when we update their minimum required version of Blockly. Be sure to update any plugins you use at the same time you update Blockly.

Feedback

If you find any problems with this release, please open an issue. If you try out the new keyboard-navigation experience and have feedback, consider joining our blockly-accessibility group to discuss. As always, we welcome PR contributions as well, especially on issues marked help wanted!

What's Changed

Breaking changes 🛠

New features ✨

Bug fixes 🐛

  • fix: Remove references to getFastTextWidth (#8277) by @ga-fleury in #8307
  • fix: improve prompting when deleting variables by @gonfunko in #8529
  • fix: display the correct variable reference count when deleting a variable. by @gonfunko in #8549
  • fix: improve flyout performance by @gonfunko in #8571
  • fix: size text with computed styles even when hidden by @gonfunko in #8572
  • fix: include potential variables in variable dropdowns in the flyout by @gonfunko in #8574
  • fix: Fix bug that prevented dismissing the widgetdiv in a mutator workspace. by @gonfunko in #8600
  • fix: Fix bug that caused fields in the flyout to use the main workspace's scale. by @gonfunko in #8607
  • fix: Correctly calculate the bounds of hat blocks. by @gonfunko in #8616
  • fix: Take the flyout into account when positioning the workspace after a toolbox change. by @gonfunko in #8617
  • fix: Fix exception when disposing of a workspace with a variable block obscuring a shadow block. by @gonfunko in #8619
  • fix: improve typings and export additional types by @gonfunko in #8631
  • fix: Create CSS vars for SVG patterns. by @johnnesky in #8671
  • fix: Fix unsafe cast in Input.setVisible(). by @gonfunko in #8695
  • fix: Don't create intermediate variables when renaming a procedure argument. by @gonfunko in #8723
  • fix: Fix bug that prevented keyboard navigation in flyouts. by @gonfunko in #8687
  • fix: Fix bug that caused blocks dragged from non-primary flyouts to be misplaced. by @gonfunko in #8753
  • fix: Disallow and ignore x and y attributes for blocks in toolbox definitions. by @gonfunko in #8785
  • fix: Allow the marker's current node to be null. by @gonfunko in #8802
  • fix: fix bug that modalInputs option is not working in toolbox area by @zhiyan in #8817
  • fix: check potential variables for flyout variable fields by @maribethb in #8873
  • fix: update dependencies so adv compilation works by @maribethb in #8890
  • fix: Don't visit invisible inputs with the cursor. by @gonfunko in #8892
  • fix: Fix keyboard-driven menu scrolling. by @gonfunko in #8881
  • fix: Fix bug that allowed some invisible fields/inputs to be navigated to. by @gonfunko in #8899
  • fix: Fix bug that caused flyout items under the mouse to be selected without movement. by @gonfunko in #8900
  • fix: Recreate the dropdowndiv when clearing it. by @gonfunko in #8903
  • fix: Add some missing message strings. by @gonfunko in #8908
  • Fix: Remove the collapsed block warning when expanding a block by @RoboErikG in #8854
  • fix: LineCursor can loop forward, but not back by @microbit-grace in #8926
  • fix: Support RTL in WorkspaceSvg.scrollIntoBounds by @RoboErikG in #8936
  • fix: Fix bug in BlockSvg.prototype.setParent by @cpcallen in #8934
  • fix: remove black outline on focused items by @rachel-fenichel in #8951
  • fix: Fix conventional auto labeling by @BenHenning in #8956
  • fix: Address remaining invisible input positions by @microbit-robert in #8948
  • fix: Ensure flyout remains open after creating a variable with mouse by @BenHenning in #8982
  • fix: Synchronize gestures and focus by @BenHenning in #8981
  • fix: focus for autohideable flyouts by @maribethb in #8990
  • fix: Replace explicit calls to refreshToolboxSelection with a workspace listener by @RoboErikG in #8980
  • fix: Add private to variableChangeCallback by @RoboErikG in #8995
  • fix: use copyable interface for cut action, add tests by @maribethb in #8993
  • fix: Improve missing node resiliency by @BenHenning in #8997
  • fix: Don't fire events for changes to potential variables by @RoboErikG in #9025
  • fix: Improve robustness of IFocusableNode uses by @BenHenning in #9031
  • fix: don't visit connections with the cursor. by @gonfunko in #9030
  • fix: Fix regressions in Field. by @gonfunko in #9011
  • fix: Ensure selection stays when dragging blocks, comments, and bubbles by @BenHenning in #9034
  • fix: Ensure BlockSvg is uniquely focusable on the page by @BenHenning in #9045
  • fix: Ensure cursor syncs with more than just focused blocks by @BenHenning in #9032
  • fix: Reenable support for tabbing between fields. by @gonfunko in #9049
  • fix: fieldDropdown.getText works in node by @maribethb in #9048
  • fix: Fix bug when referencing HTMLElement in non-browser environments. by @gonfunko in #9050
  • fix: Remove un-typesafe cast. by @gonfunko in #9052
  • fix: Make clickable but non-editable fields navigable. by @gonfunko in #9054

Cleanup ♻️

  • refactor: field_checkbox dom.addClass params by @ishon19 in #8309
  • refactor: Add addClass and removeClass methods to blockSvg by @ishon19 in #8337
  • refactor: make VariableModel implement IVariableModel. by @gonfunko in #8381
  • refactor: update the variable interfaces. by @gonfunko in #8388
  • refactor: make VariableMap implement IVariableMap. by @gonfunko in #8395
  • refactor: Use IVariableModel instead of VariableModel. by @gonfunko in #8400
  • refactor: clean up VariableModel. by @gonfunko in #8416
  • refactor: deprecate and clean up variable-related methods. by @gonfunko in #8415
  • refactor: use getters for flyout width and height. by @gonfunko in #8564
  • refactor: remove redundant flyout positioning. by @gonfunko in #8573
  • refactor: Reenable workspace resizing after reflowing flyouts. by @gonfunko in #8683
  • refactor: Convert renderer typecheck methods to typeguards. by @gonfunko in #8656
  • refactor: make CommentView more amenable to subclassing. by @gonfunko in #8783
  • refactor: Make INavigable extend IFocusableNode. by @gonfunko in #9033
  • refactor: Remove INavigable in favor of IFocusableNode. by @gonfunko in #9037

Reverted changes ⎌

  • Revert "fix!: Remove the blocklyMenuItemHighlight CSS class and use the hover" by @gonfunko in #8800
  • Fix: Revert focus prs by @RoboErikG in #8933

New Contributors

Full Changelog: blockly-v11.2.2...blockly-v12.0.0

0