Upgrading from v2 to v3
There have been a few breaking changes between version 2 and version 3 of accessible menu, to upgrade you should keep the following in mind.
Distribution file changes
Version 3 of accessible-menu has changed the naming scheme for compiled files to make them more "url-friendly".
dist/accessibleMenu.jshas changed todist/accessible-menu.js, anddist/accessibleMenu.min.jshas changed todist/accessible-menu.min.js.
Make sure you update your imports/script urls accordingly.
Source file and class name changes
Version 3 of accessible-menu has completely overhauled the class system used to create the different menu classes.
The most important change with this is the creation of "base" menu item and toggle classes with each subclass of menu having it's own subclasses for menu times and toggles. This allows for easier one-off customization per-menu subclass without affecting all other menus.
menuItem.jshas been replaced with_baseMenuItem.jsand exports theBaseMenuItemclass.menuToggle.jshas been replaced with_baseMenuToggle.jsand exports theBaseMenuToggleclass.BaseMenunow uses theBaseMenuItemandBaseMenuToggleclasses.DisclosureMenunow uses theDisclosureMenuItemandDisclosureMenuToggleclasses.Menubarnow uses theMenubarItemandMenubarToggleclasses.
If you have written custom subclass that extend the MenuItem or MenuToggle classes, they should now extend the BaseMenuItem and BaseMenuToggle classes respectively.
Disclosure Menu option keyboard support
In version 2, Disclosure Menus always had the keyboard support that is labelled as "optional". This is no longer the case in version 3.
You will need to set the optionalKeySupport value to true to gain access to the optional keyboard support.
Class field/method changes
Version 3 of accessible-menu has cleaned up and renamed some class fields and methods:
Menu fields
BaseMenu.domElementshas been renamed toBaseMenu._domBaseMenu.domSelectorshas been renamed toBaseMenu._selectorsBaseMenu.menuElementshas been renamed toBaseMenu._elementsBaseMenu.submenuOpenClasshas been renamed toBaseMenu._openClassBaseMenu.submenuCloseClasshas been renamed toBaseMenu._closeClassBaseMenu.roothas been renamed toBaseMenu._rootBaseMenu.focussedChildhas been renamed toBaseMenu._currentChildBaseMenu.statehas been renamed toBaseMenu._focusStateBaseMenu.eventhas been renamed toBaseMenu._currentEventBaseMenu.hoverablehas been renamed toBaseMenu._hoverTypeBaseMenu.delayhas been renamed toBaseMenu._hoverDelay
Menu methods
BaseMenu.setDOMElementType()andBaseMenu.addDOMElementType()have been merged intoBaseMenu._setDOMEelementType()BaseMenu.clearDOMElementType()has been renamed toBaseMenu._resetDOMElementType()BaseMenu.setDOMElements()has been renamed toBaseMenu._setDOMElements()BaseMenu.findRootMenu()has been renamed toBaseMenu._findRootMenu()BaseMenu.createChildElements()has been renamed toBaseMenu._createChildElements()BaseMenu.handleFocus()has been renamed toBaseMenu._handleFocus()BaseMenu.handleClick()has been renamed toBaseMenu._handleClick()BaseMenu.handleHover()has been renamed toBaseMenu._handleHover()BaseMenu.handleKeydown()has been renamed toBaseMenu._handleKeydown()BaseMenu.handleKeyup()has been renamed toBaseMenu._handleKeyup()
Menu item fields
MenuItem.domElementshas been renamed toBaseMenuItem._domMenuItem.menuElementshas been renamed toBaseMenuItem._elementsMenuItem.isControllerhas been renamed toBaseMenuItem._submenu
Menu toggle fields
MenuToggle.domElementshas been renamed toBaseMenuToggle._domMenuToggle.menuElementshas been renamed toBaseMenuToggle._elementsMenuToggle.showhas been renamed toBaseMenuToggle._openMenuToggle.expandEventhas been renamed toBaseMenuToggle._expandEventMenuToggle.collapseEventhas been renamed toBaseMenuToggle._collapseEventMenuToggle.openClasshas been removedMenuToggle.closeClasshas been removed
Menu toggle methods
MenuToggle.expand()has been renamed toBaseMenuToggle._expand()MenuToggle.collapse()has been renamed toBaseMenuToggle._collapse()