Skip to content

v1.8.0

Compare
Choose a tag to compare
@mourner mourner released this 18 Apr 10:50
· 567 commits to main since this release

v1.8.0 is a culmination of 1.5 years of development, a huge release focused on bug fixes, major reliability and accessibility improvements, cleaning up legacy code, and numerous improvements to documentation, development workflow and release process. A culmination of hundreds of contributions, and a preparation for bigger changes to come. 🍃

I'm making this release just as an air raid alert is sounding outside, in Kyiv, warning about an imminent Russian air strike. This release is dedicated to Ukrainian fight for freedom and democracy against the Russian invasion 🇺🇦 (see how you can support Ukraine here).

From now on, releases will become much more frequent. Thanks to our amazing community for all your help and patience. ❤️🙏 Special thanks to @johnd0e who revived Leaflet development after long stagnation and made the biggest contributions, @Falke-Design for doing the bulk of the work organizing development and preparing the release, @Malvoz for his numerous accessibility contributions, and @jonkoops for help with workflow automations. ❤️

⚠️ Breaking Changes

  • Improve reliability of contextmenu event simulation on mobile Safari by introducing a new TapHold handler, replacing legacy Tap (#7026 by @johnd0e)
  • Reorganize DivOverlay/Popup/Tooltip APIs (#7540 by @johnd0e)
  • Improve error / argument handling for event listeners (#7518 by @johnd0e)
  • Improve reliability of touch events simulation on non-touch devices (DomEvent.Pointer) (#7059, #7084, #7415 by @johnd0e)
  • Improve reliability of dblclick event simulation on touch devices (DomEvent.DoubleTap) (#7027 by @johnd0e)
  • Improve reliability of disableClickPropagation (#7439 by @johnd0e)
  • Improve Map hasLayer() and LayerGroup hasLayer() to require a layer as argument (#6999 by @johnd0e)
  • Fix Class.include to not overwrite options (#7756 by @johnd0e)
  • Fix Class.extend to not modify source props object (#6766 by @johnd0e)
  • Improve Browser.touch touch devices detection (#7029 by @johnd0e)
  • Get rid of legacy Android hacks (#7022 by @johnd0e)
  • Allow fonts to respect users' browser settings by making the font-size relative to the map container. (You can change the font size on leaflet-container to adjust it if needed.) (#7800 by @Chandu-4444)

❇️ API changes

✨ Improvements

  • Improve memory footprint by removing will-change CSS property on tile images (#7872 by @janjaap)
  • Improve reliability of icons path detection heuristics (#7092 by @johnd0e)
  • Improve performance of adding tiled sources by avoiding excessive updates in GridLayer.onAdd (#7570 by @johnd0e)
  • Improve handling of edge cases in panInside (#7469 by @daverayment)
  • Minify marker icon SVG (#7600 by @rala72)
  • Allow template keys with spaces in TileLayer URL (#7216 by @lubojr)
  • Improve behavior of Tooltip bound to ImageOverlay (#7306 by @IvanSanchez)
  • Remove the gap between Popup tip and content dialog (#7920 by @Malvoz)
  • Fire mousemove through Canvas to map if it has no layers (#7809 by @johnd0e)
  • Add print styles to prevent printers from removing background-images in controls (#7851 by @Malvoz)
  • Move attribution code from Layer to Control.Attribution (#7764 by @johnd0e)
  • Refactor vmlCreate() so that it does not expose closure to TypeError (#7279 by @darcyparker)
  • Improve reliability of Control.Layers by not relying on Browser android and touch properties (#7057 by @johnd0e)
  • Improve reliability of Tooltip by not relying on Browser touch checks (#7535 by @johnd0e)
  • Make Browser mutable for easier automated testing (#7335 by @bozdoz)
  • Replace div with span in Control.Layers container to fix an HTML validation error (#7914 by @tmiaa)
  • Add a Ukrainian flag to default attribution 🇺🇦 (by @mourner in #8109)

🙌 Accessibility

  • Increase default font sizes and decrease attribution transparency for improved legibility (#8057, by @mourner)
  • Improve accessibility of popup close button (#7908, by @Malvoz)
  • Auto pan to markers on focus by default for improved keyboard operability (#8042 by @IvanSanchez)
  • Add accessibility section to plugins guide (#7277 by @Malvoz)
  • Update Marker to default to role="button" & alt="marker" for an improved screen reader experience (#7895 by @tmiaa)
  • Set role="button" for appropriate semantics on the <a> layers control (#7850 by @Malvoz)
  • Generally enable outlines for keyboard users by not stripping outline on focus for keyboard events (#7259 by @jafin)
  • Enable outlines on leaflet-container for keyboard users (#7996 by @Malvoz)
  • Multiple enhancements to popup's close button (#7794 by @Falke-Design)
  • Use relative font-size units for resizable text (#7800 by @Chandu-4444)
  • Apply :hover styles to :focus as well (#7274 by @Malvoz)
  • Hide the decorative attribution separator from screen readers (#7969 by @Malvoz)
  • Make the disabled state of zoom controls available to screen readers (#7280 by @akshataj96)
  • Hide the +/- characters in zoom controls from screen readers to prevent erroneous announcements (#7795 by @Falke-Design)

🐞 Bug fixes

📝 Docs

🔧 Workflow

🧪 Tests

🔩 Plugins

Stand With Ukraine