accessible-menu

A JavaScript library to help you generate WAI-ARIA accessible menus in the DOM.

ISC License

Downloads
3.8K
Stars
38
Committers
5
accessible-menu - 3.0.0

Published by NickDJM about 3 years ago

3.0.0 (2021-08-03)

⚠ BREAKING CHANGES

  • fields: renamed all class fields to start with _ to mark them as protected
  • menus: changed the name of all menu event handler methods and toggle expand/collapse
    methods to begin with _
  • menu: merging and changing the names of the DOM element generation methods will require
    any code referencing the old methods to be updated
  • disclosuremenu: Users expecting the default handling of the option keys will now need to set
    optionalKeySupport to true
  • validation: merge isHTMLELement, isEvent, isKeyboardEvent, isMenu, and isMenuToggle into
    isValidInstance and merge isBoolean, isString, and isNumber into isValidType
  • focus: custom menus extending BaseMenu and relying on the menubar's focus functionality
    will need to extend Menubar.
  • dist: Removing all polyfills and reference to IE in the compiler will break all menus
    when displayed in IE
  • menus: if any existing implementation relies on sub-menus and toggles to not inherit the root's properties, this will cause major functionality issues.
  • Changing both the file and class names for MenuItem and MenuToggle will break
    anything relying on those classes.

Features

  • disclosure: add getter/setter for optionalKeySupport (f6ef2d4)
  • disclosuremenu: add the ability to toggle optional keyboard support (18c0fa7), closes #104
  • dist: add full esm support and kill IE support (8610728)
  • hover: change isHoverable to hoverType to handle dynamic hovers (2cf40aa), closes #100
  • initialization: add a flag to allow/disallow auto initialization for subclass menus (0fc701f)
  • menu: add new method to focus a child of a given index (cea3352)
  • menu: add shoudlFocus getter to control moving focus in the DOM (68ca8a6)
  • menu: have focus follow hover when hover is set to dynamic (a2e7e1a), closes #100
  • subclass: add Treeview subclass (e25c93f), closes #105
  • toggle: allow expand and collapse methods to be silent (8282e93)
  • implement browser module support (0bab26c)

Bug Fixes

  • correct typo in error message during initialization (7190697)
  • menubar: only change the root menubar's tabIndex on init (d993c13)
  • menu: only change focusState on click of non-root menus (110e241)
  • menu: only setTimout on mouseleave if hoverDelay is > 0 (1158090)
  • menus: add textContent fallback to character functions (d6224cb)
  • treeview: fix up and down arrow navigation when going through multiple menu levels (2caf071)
  • treeview: handle escape key if the root menu can collapse (43d09bf)
  • treeview: only trigger character event if no modifier is pressed (51b43a8)
  • toggle: remove immediate initialization from _baseMenuToggle (d3fae61)
  • event: make sure key is not a number before using .match() (d8b0f02)
  • menu: add basic error prevention when setting the currentChild (ce1b431)
  • menu: add blurSiblings method to menu items to fix click issues (5b1f7f2)
  • menu: ensure proper event type is set for menus (a4f7505)
  • menu: manually trigger click action on space/enter (559afc8)
  • module: resolve circular dependencies (5278b1e), closes #95
  • treeview: correct toggle class name (e96ffaa)
  • validation: ensure error message only use constructor's name (80ccdcc)
  • validation: fail isCSSSelector is null is passed (15c34a3)
  • validation: make isEventSupported return false if either checks fail (ecd9f88)
  • validation: make isValidClassList fail if array is passed instead of object (c401b70)

Performance Improvements

  • validation: add custom validation for DisclosureMenus to handle _optionalSupport field (be4f370)
  • toggle: simplify adding and removing of classes (5d21677), closes #113
  • menu: clean up handeClick for all menus (6bdfdd0)
  • validation: reduce validation functions into instance or type validation (42bf94e)

Documentation

  • examples: link to new jsfiddles using 3.x (4df02fe), closes #124
  • fix path to treeview (92b0501)
  • properly mark fields as protected (7d43b50)
  • treeview: correct reference to treeview in toggle (aaa4249)
  • use docdash templates for api documentation (9433ddf), closes #123* add upgrade guide from v2 to v3 (c3ae67a), closes #107
  • menubar: update docs to reflect tabIndex fix (480406f)
  • README: add build status badge (00fabf3)
  • use jsdoc to generate api documentation (a524ef8)
  • classes: correct error in focus state for closing toggles (93cc9ca)
  • add information about dist directory and what is provided (0865987)
  • minor corrections to comments (9964af8)
  • remove reference to open/close classes for menu toggles (247dff2)
  • basics: update basic exmaples to reflect changes (3a01856)
  • classes: update all class documentation to reflect changes made (b5f06d4)
  • readme: update general information (ef079f1)

Build System

  • lint: update eslint and prettier options (c324a6a)
  • npm: update dev dependencies to latest (cebd3c4)
  • rollup: add cleanup plugin to remove comments from bundled code (8f15e77)
  • lint: pass ignore file to prettier during lint-staged (1cdfbd8)
  • npm: package entire src directory (02bca65)
  • use specific rollup file to allow multiple exports on index (82a3f48)
  • editor: add specific editor config (fd44608)
  • lint: use prettier as a stand-alone formatter (aedffb1)
  • npm: add lint-staged for faster commits (1874fb3)
  • npm: add new files to packaged files (135d7b2)
  • npm: cleanup package and add files (9ec6ca6)
  • npm: rename test build command (8bd9706)
  • npm: upgrade husky to 6.0 (ab7579a)
  • prettier: specifically set the prettier options that are cared about (4f7c5af)

Code Refactoring

  • fields: rename and declare class fields outside of constructors (d725043), closes #114
  • github: add action for running tests (9cc2de3)
  • menu: clean up DOM element generating methods (b242c9c), closes #127
  • menus: change methods to be protected where needed (780c76b)
  • remove unused test directory and dependencies (a5e2e4b)
  • focus: move focus methods for menubar into the menubar subclass (38230a8)
  • menu: make sure all parameters are valid before initialization (ae694c7)
  • menus: use root props for sub-menus and toggles (4aea368), closes #86
  • toggle: rearrange actions in open, preview, and close to make more sense (f26e120)
  • validation: make classlist validation more useful (f8edd77)
  • validation: rework validation to be more descriptive and helpful (7456490)
  • validation: use proper name for open/close class validation (6d5073c)
accessible-menu - 3.0.0-alpha.3

Published by NickDJM over 3 years ago

3.0.0-alpha.3 (2021-07-23)

⚠ BREAKING CHANGES

  • fields: renamed all class fields to start with _ to mark them as protected

Bug Fixes

  • correct typo in error message during initialization (7190697)

Performance Improvements

  • validation: add custom validation for DisclosureMenus to handle _optionalSupport field (be4f370)

Code Refactoring

  • fields: rename and declare class fields outside of constructors (d725043), closes #114

Build System

  • rollup: add cleanup plugin to remove comments from bundled code (8f15e77)
accessible-menu - 3.0.0-alpha.2

Published by NickDJM over 3 years ago

3.0.0-alpha.2 (2021-07-21)

Bug Fixes

  • menubar: only change the root menubar's tabIndex on init (d993c13)
  • menu: only change focusState on click of non-root menus (110e241)
  • menu: only setTimout on mouseleave if hoverDelay is > 0 (1158090)
  • menus: add textContent fallback to character functions (d6224cb)
  • treeview: fix up and down arrow navigation when going through multiple menu levels (2caf071)
  • treeview: handle escape key if the root menu can collapse (43d09bf)
  • treeview: only trigger character event if no modifier is pressed (51b43a8)

Reverts

  • click should still alter the focusState of menus (c56de2f)

Code Refactoring

  • focus: set parent/child menu focus when setting menu's own focus (ae3b663)

Build System

  • github: add action for running tests (9cc2de3)
  • remove unused test directory and dependencies (a5e2e4b)

Documentation

  • add upgrade guide from v2 to v3 (c3ae67a), closes #107
  • menubar: update docs to reflect tabIndex fix (480406f)
  • README: add build status badge (00fabf3)
  • use jsdoc to generate api documentation (a524ef8)
accessible-menu - 3.0.0-alpha.1

Published by NickDJM over 3 years ago

3.0.0-alpha.1 (2021-06-23)

Bug Fixes

  • toggle: remove immediate initialization from _baseMenuToggle (d3fae61)

Performance Improvements

  • toggle: simplify adding and removing of classes (5d21677), closes #113
accessible-menu - 3.0.0-alpha.0

Published by NickDJM over 3 years ago

3.0.0-alpha.0 (2021-06-18)

⚠ BREAKING CHANGES

  • disclosuremenu: Users expecting the default handling of the option keys will now need to set
    optionalKeySupport to true
  • validation: merge isHTMLELement, isEvent, isKeyboardEvent, isMenu, and isMenuToggle into
    isValidInstance and merge isBoolean, isString, and isNumber into isValidType
  • focus: custom menus extending BaseMenu and relying on the menubar's focus functionality
    will need to extend Menubar.
  • dist: Removing all polyfills and reference to IE in the compiler will break all menus
    when displayed in IE
  • menus: if any existing implementation relies on sub-menus and toggles to not inherit the root's properties, this will cause major functionality issues.
  • Changing both the file and class names for MenuItem and MenuToggle will break
    anything relying on those classes.

Features

  • disclosure: add getter/setter for optionalKeySupport (f6ef2d4)
  • disclosuremenu: add the ability to toggle optional keyboard support (18c0fa7), closes #104
  • dist: add full esm support and kill IE support (8610728)
  • hover: change isHoverable to hoverType to handle dynamic hovers (2cf40aa), closes #100
  • initialization: add a flag to allow/disallow auto initialization for subclass menus (0fc701f)
  • menu: add new method to focus a child of a given index (cea3352)
  • menu: add shoudlFocus getter to control moving focus in the DOM (68ca8a6)
  • menu: have focus follow hover when hover is set to dynamic (a2e7e1a), closes #100
  • subclass: add Treeview subclass (e25c93f), closes #105
  • toggle: allow expand and collapse methods to be silent (8282e93)
  • implement browser module support (0bab26c)

Bug Fixes

  • event: make sure key is not a number before using .match() (d8b0f02)
  • menu: add basic error prevention when setting the currentChild (ce1b431)
  • menu: add blurSiblings method to menu items to fix click issues (5b1f7f2)
  • menu: ensure proper event type is set for menus (a4f7505)
  • menu: manually trigger click action on space/enter (559afc8)
  • module: resolve circular dependencies (5278b1e), closes #95
  • treeview: correct toggle class name (e96ffaa)
  • validation: ensure error message only use constructor's name (80ccdcc)
  • validation: fail isCSSSelector is null is passed (15c34a3)
  • validation: make isEventSupported return false if either checks fail (ecd9f88)
  • validation: make isValidClassList fail if array is passed instead of object (c401b70)

Performance Improvements

  • menu: clean up handeClick for all menus (6bdfdd0)
  • validation: reduce validation functions into instance or type validation (42bf94e)

Build System

  • lint: pass ignore file to prettier during lint-staged (1cdfbd8)
  • npm: package entire src directory (02bca65)
  • use specific rollup file to allow multiple exports on index (82a3f48)
  • editor: add specific editor config (fd44608)
  • lint: use prettier as a stand-alone formatter (aedffb1)
  • npm: add lint-staged for faster commits (1874fb3)
  • npm: add new files to packaged files (135d7b2)
  • npm: cleanup package and add files (9ec6ca6)
  • npm: rename test build command (8bd9706)
  • npm: upgrade husky to 6.0 (ab7579a)
  • prettier: specifically set the prettier options that are cared about (4f7c5af)

Documentation

  • classes: correct error in focus state for closing toggles (93cc9ca)
  • add information about dist directory and what is provided (0865987)
  • minor corrections to comments (9964af8)
  • remove reference to open/close classes for menu toggles (247dff2)
  • basics: update basic exmaples to reflect changes (3a01856)
  • classes: update all class documentation to reflect changes made (b5f06d4)
  • readme: update general information (ef079f1)

Code Refactoring

  • focus: move focus methods for menubar into the menubar subclass (38230a8)
  • menu: make sure all parameters are valid before initialization (ae694c7)
  • menus: use root props for sub-menus and toggles (4aea368), closes #86
  • toggle: rearrange actions in open, preview, and close to make more sense (f26e120)
  • validation: make classlist validation more useful (f8edd77)
  • validation: rework validation to be more descriptive and helpful (7456490)
  • validation: use proper name for open/close class validation (6d5073c)
accessible-menu - 2.3.1

Published by NickDJM over 3 years ago

2.3.1 (2021-06-10)

Bug Fixes

  • dist: correct order of declarations (d030e81)
  • menu: correct focus methods (243ee95)
accessible-menu - 2.3.0

Published by NickDJM over 3 years ago

2.3.0 (2021-06-07)

Features

  • menu: allow Menubar and DisclosureMenu to be imported individually (b168dd3)

Bug Fixes

  • compile: properly run code through babel (e5bac70)
  • menu: rewrite click events to resolve unresponiveness issue (12598fc), closes #109

Build System

  • overhaul build and development config (be89706)

Documentation

  • readme: update browser support icons and info (b3cbdd5)
  • correct function comments (f4264b7)
accessible-menu - 2.2.0

Published by NickDJM over 3 years ago

2.2.0 (2021-03-24)

Features

  • menu: add expand/collapse events to MenuToggles (b736c1a), closes #90

Bug Fixes

  • event: check if menu isHoverable before running event code (638778d), closes #84
  • event: properly pass event object to keydown and keyup events (fc281bf)
  • menubar: wait for menu to render before focussing child (21f50ee), closes #99
  • polyfill: add CustomEvent constructor polyfill for IE (d08cb2d), closes #97

Documentation

  • mention new expand/collapse events in the toggle documentation (f65ce32)

Build System

  • npm: update dev dependencies to latest (accc5ba)
accessible-menu - 1.0.7

Published by NickDJM over 3 years ago

1.0.7 (2021-03-24)

Bug Fixes

  • menu: wait for menu to render before focussing child (c5dae5d), closes #99

Build System

  • update config for linting (7259769)
  • npm: security updates for dev dependencies (4153685)
accessible-menu - 2.1.1

Published by NickDJM almost 4 years ago

2.1.1 (2020-11-05)

Bug Fixes

  • accessibility: handle various scenarios causing inaccessible IDs (c55ff1d), closes #87

Build System

  • npm: update dependencies and security violations (d05e1c6)
  • polyfills: add polyfill for String.prototype.endsWith() (82b345a)
accessible-menu - 2.1.0

Published by NickDJM over 4 years ago

2.1.0 (2020-07-25)

Features

  • menu: allow for empty open and close classes (a58b1e3), closes #72
  • menu: allow for multiple open and close classes (b4bc19f), closes #73

Bug Fixes

  • events: make click handling a lot more strict (7f91256)
  • toggle: allow for multiple open/close classes in IE with loop (608450d), closes #72

Documentation

  • usage: update example to be plain html (302a87c), closes #75

Build System

  • deps-dev: bump standard-version from 7.1.0 to 8.0.1 (7b6a2c2), closes #82
accessible-menu - 2.0.0

Published by NickDJM over 4 years ago

2.0.0 (2020-05-21)

⚠ BREAKING CHANGES

  • menutoggle: Bootstrap users will need to adjust their custom styles to handle not having the
    parent's class altered when menus are toggled
  • menu: AccessibleMenu is no longer a constructor, so uses will have to use
    AccessibleMenu.Menubar
  • menu: Anything relying on the menu.js file will need to be updated to _baseMenu.js
  • menu: Using old getters/setter will result in an error

Features

  • events: use keyup events instead of keydown events (4b8a5ad)
  • menu: add ability to make submenu's open/close on hover (6b30546)
  • menu: add DisclosureMenu class (9ade527), closes #61
  • menu: add menuLinkSelector property to Menu class (6b4e1f2), closes #61
  • menu: add new methods for setting dom elements in the menu (f55951c)
  • menu: add support for a closed class (0668b56)
  • menu: remove focus changing when user is using a mouse (0b02fb0)
  • menu: split out menubar functionality into it's own class (3466db1), closes #61

Bug Fixes

  • events: use touchup and mouseup events instead of click (24f8eaf)
  • ie: add string.prototype.startsWith polyfill (181194b)
  • importing: update index to match new structure (5e7a09b)
  • menu: pass hoverDelay to all submenus (4eca2aa)
  • package: adjust files (4bd259a)
  • correct paths (ee62bc3)
  • menubar: ensure escape will always close open menus (c42d2e5)

Performance Improvements

  • events: add menu-level event tracking (338a2b0), closes #61
  • menu: set default menuItemSelector to li (98e7ec5)
  • toggle: clean up close function and create collapse (131d22d)
  • toggle: only add button role if toggle isn't a button (95f2cfb)
  • validation: condense more of the validation (d9064ac)
  • validation: move validation to its own file for code reuse (9df795d)

Build System

  • update dependencies and config (aa10023)

Documentation

  • update documentation for 2.0.0 (794b553)
  • update jsdocs to have proper default values declared (e7335a1)

Code Refactoring

  • events: move toggle events into main menu (04fcc98), closes #61
  • menu: change constructors, getters, and setters for menus (3800046), closes #61
  • menu: rename Menu to BaseMenu (6ad7ec6), closes #61
  • menutoggle: only alter controlled menu classes on open/close (8099df8)
accessible-menu - 1.1.0

Published by NickDJM over 4 years ago

1.1.0 (2020-03-09)

Features

  • add built-in ie11 support to cdn (0fbba5b), closes #58

Bug Fixes

  • menu: add handlers for enter/space in root level menus (4b26192), closes #56

Build System

Documentation

  • general: add jsfiddle example for the library (8304580)
  • general: update description (6427d56)
accessible-menu - 1.0.6

Published by NickDJM over 4 years ago

1.0.6 (2020-02-26)

Bug Fixes

  • accessibility: correct role declarations on menu items (66aca2f), closes #54
accessible-menu - 1.0.5

Published by NickDJM over 4 years ago

1.0.5 (2020-02-14)

Bug Fixes

  • menu: focus menuitem on tab instead of whole menu (e24c2eb), closes #52
accessible-menu - 1.0.4

Published by NickDJM almost 5 years ago

1.0.4 (2019-12-15)

Bug Fixes

  • menu: keep focus on root item after left/right arrows (f0d1499), closes #50
  • menu: prevent default event on arrow up/down on top level menus (d9410f3), closes #47

Build System

  • npm: disallow .files from being packaged (73e0579)
  • npm: ensure build is run and committed with release (a9f03ff)

Code Refactoring

  • main: change main.js to index.js to keep to internal standard (c4091ab)
accessible-menu - 1.0.3

Published by NickDJM almost 5 years ago

1.0.3 (2019-11-25)

Bug Fixes

  • menu: fix typo in build (8a9a72d)
accessible-menu - 1.0.2

Published by NickDJM almost 5 years ago

1.0.2 (2019-11-25)

Bug Fixes

  • menu: correct type in tab event (d0d9420)

Documentation

  • general: update version in cdn example (da78b06)
accessible-menu - 1.0.1

Published by NickDJM almost 5 years ago

1.0.1 (2019-11-24)

Documentation

  • setup: remove notes on initialization (7aa1f4d)
accessible-menu - 1.0.0

Published by NickDJM almost 5 years ago

1.0.0 (2019-11-24)

Bug Fixes

  • menu: add proper event handling for older browsers (ef62b61), closes #16
  • menu: close top-level dropdowns on click away (5c9ae7c), closes #42
  • menu: fix focus on exit (576b540)
  • menu: focus menu controller on exit (a89539c)
  • toggle: handle non-existant parent menu properly (82e0156)

Build System

  • npm: update dependencies (2b18bbb)

Documentation

  • contribution: keep all contributing docs in contributing.md (9c252c0)
  • general: add class and usage documentation (b007134), closes #38
  • readme: add basic instructions for IE/Edge support (fa0e3ee), closes #37
  • readme: add browser support icons (081ce1b)

Code Refactoring

  • menu: allow submenu selectors to be null (db1c4d8)
  • menu: overhaul keydown handling (ccf3ddc), closes #43 #44
  • toggle: move click event into handleClick (337a275)