{"_id":"@benmarch/a11y-toolkit","_rev":"4-cdc6f9b138644197b1cf20dcc916d4e8","name":"@benmarch/a11y-toolkit","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@benmarch/a11y-toolkit","version":"0.1.0","author":{"name":"Ben March"},"license":"ISC","_id":"@benmarch/a11y-toolkit@0.1.0","maintainers":[{"name":"benmarch","email":"bmarch89@gmail.com"}],"dist":{"shasum":"82c3c1dd7217e4e2179eb34cec117f6d9b6807dc","tarball":"https://registry.npmjs.org/@benmarch/a11y-toolkit/-/a11y-toolkit-0.1.0.tgz","fileCount":40,"integrity":"sha512-kKk/GhHwPFdR2HHlb4ADiP8ahCLVNBw2PYbzrUsSWcbKjUniVexyp6a99NhSfosgoU8ziWL0nhrh3kXJuF0mTw==","signatures":[{"sig":"MEUCICt+rdqvpSLUPgg3quY+AXlf07FsudkLxs+3VetxczGJAiEA5QLEtR1zfhSc2jL9a/SDDQQXGhZivAHMTcZugkmOhls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36036},"main":"./dist/main.js","types":"./dist/index.d.ts","gitHead":"bd5a94409b5e8e11ccf868f208b76f2010160cc1","scripts":{"docs":"typedoc src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"webpack"},"_npmUser":{"name":"benmarch","email":"bmarch89@gmail.com"},"_npmVersion":"10.2.3","description":"A collection of tools for providing more accessible user interfaces","directories":{},"_nodeVersion":"18.19.0","_hasShrinkwrap":false,"devDependencies":{"typedoc":"0.28.8","webpack":"5.100.2","ts-loader":"9.5.2","typescript":"5.8.3","webpack-cli":"6.0.1","webpack-node-externals":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a11y-toolkit_0.1.0_1754018121538_0.6662807686762056","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@benmarch/a11y-toolkit","version":"0.1.1","author":{"name":"Ben March"},"license":"ISC","_id":"@benmarch/a11y-toolkit@0.1.1","maintainers":[{"name":"benmarch","email":"bmarch89@gmail.com"}],"dist":{"shasum":"fcc594920ff156471b557e606faf8f39826ffb65","tarball":"https://registry.npmjs.org/@benmarch/a11y-toolkit/-/a11y-toolkit-0.1.1.tgz","fileCount":43,"integrity":"sha512-ehblZcR2MU9GDE7hra3IBChd7ZureApzQ1Yh7VlXu8G///hDkTKiJs77VMhlXOxl0/nh3lewKSlhxYIz2RWeTg==","signatures":[{"sig":"MEQCIGgTZLmUQSCiS/gVHlfHU6zhFC46cjBZdsY9abBhadFWAiBYVhxS/ibAgMaPRci0g4wHPz1p/JhlR9jVtcxv0qOptw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36631},"main":"./dist/main.js","types":"./dist/index.d.ts","gitHead":"7803d3f554f9eea1604a3d703b55a3cc9d6f79a2","scripts":{"dev":"webpack --mode=development --watch","docs":"typedoc src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"webpack --mode=production"},"_npmUser":{"name":"benmarch","email":"bmarch89@gmail.com"},"_npmVersion":"10.2.3","description":"A collection of tools for providing more accessible user interfaces","directories":{},"_nodeVersion":"18.19.0","dependencies":{"tabbable":"6.2.0","focus-trap":"7.6.5"},"_hasShrinkwrap":false,"devDependencies":{"typedoc":"0.28.8","webpack":"5.100.2","ts-loader":"9.5.2","typescript":"5.8.3","webpack-cli":"6.0.1","webpack-node-externals":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a11y-toolkit_0.1.1_1755204768800_0.9898200203377354","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@benmarch/a11y-toolkit","version":"0.1.2","author":{"name":"Ben March"},"license":"ISC","_id":"@benmarch/a11y-toolkit@0.1.2","maintainers":[{"name":"benmarch","email":"bmarch89@gmail.com"}],"dist":{"shasum":"6dd0e194ceb013e4dc0107d925a9ad5bf8ef13e8","tarball":"https://registry.npmjs.org/@benmarch/a11y-toolkit/-/a11y-toolkit-0.1.2.tgz","fileCount":43,"integrity":"sha512-42BLxyFcrHrzwVKZBlsdVJqNsHm/ni4PoBY3oCTpyrYCl7Wiygl105S3T7iWtepDaPCNqFU+dYOvCJuxvI1VkQ==","signatures":[{"sig":"MEQCIHblCarTe58Ee1GGm9DX7ScHqcrPr+QTDrJ9DfCux/4DAiBEjQd6JrD/Y1JExaokB0DEcvaGNcuCzl+/zkQPcnrbQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36631},"main":"./dist/main.js","types":"./dist/index.d.ts","gitHead":"f948d15cc3d5e749687202484962deb78814c2cd","scripts":{"dev":"webpack --mode=development --watch","docs":"typedoc src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"webpack --mode=production"},"_npmUser":{"name":"benmarch","email":"bmarch89@gmail.com"},"_npmVersion":"10.2.3","description":"A collection of tools for providing more accessible user interfaces","directories":{},"_nodeVersion":"18.19.0","dependencies":{"tabbable":"6.2.0","focus-trap":"7.6.5"},"_hasShrinkwrap":false,"devDependencies":{"typedoc":"0.28.8","webpack":"5.100.2","ts-loader":"9.5.2","typescript":"5.8.3","webpack-cli":"6.0.1","webpack-node-externals":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/a11y-toolkit_0.1.2_1755204935312_0.01669963336542457","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@benmarch/a11y-toolkit","version":"0.1.3","description":"A collection of tools for providing more accessible user interfaces","main":"./dist/main.js","types":"./dist/index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","docs":"typedoc src/index.ts","build":"webpack --mode=production","dev":"webpack --mode=development --watch","prepublishOnly":"npm run build"},"author":{"name":"Ben March"},"license":"ISC","devDependencies":{"ts-loader":"9.5.2","typedoc":"0.28.8","typescript":"5.8.3","webpack":"5.100.2","webpack-cli":"6.0.1","webpack-node-externals":"3.0.0"},"dependencies":{"focus-trap":"7.6.5","tabbable":"6.2.0"},"_id":"@benmarch/a11y-toolkit@0.1.3","gitHead":"523d3664e12c87eaa569d49f8fd9c67b6cc3c114","_nodeVersion":"18.19.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-2sWYQ9/F/wVRzAlJ8IfEgl/LSrv8w8XO9Q44Acd0w7kK3M0xoH68SVKCryobtFeXoLbtWsk9rGHNv97Fr3BZgg==","shasum":"f4fc73801841b593efd68104d7abd5f09f16ebf9","tarball":"https://registry.npmjs.org/@benmarch/a11y-toolkit/-/a11y-toolkit-0.1.3.tgz","fileCount":43,"unpackedSize":37360,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFqvkUdYszeTyIkiDrBGSiTtAspUixtUoQxpEiCBFsHbAiBmEf89b2MxhomuvmMKuMCczkqQjSak56bursL5jvNfuA=="}]},"_npmUser":{"name":"benmarch","email":"bmarch89@gmail.com"},"directories":{},"maintainers":[{"name":"benmarch","email":"bmarch89@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/a11y-toolkit_0.1.3_1755205219322_0.04397215119284836"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-01T03:15:21.450Z","modified":"2025-08-14T21:00:19.690Z","0.1.0":"2025-08-01T03:15:21.722Z","0.1.1":"2025-08-14T20:52:48.998Z","0.1.2":"2025-08-14T20:55:35.499Z","0.1.3":"2025-08-14T21:00:19.525Z"},"author":{"name":"Ben March"},"license":"ISC","description":"A collection of tools for providing more accessible user interfaces","maintainers":[{"name":"benmarch","email":"bmarch89@gmail.com"}],"readme":"# A11y Toolkit\n\nThis is a small collection of vanilla JS tools that can be used to make web apps more accessible.\n\nThese tools are very low-level building blocks that can be used to implement common accessibility (a11y)\npatterns for JavaScript based widgets such as menus, popovers, carousels, etc.\n\nBelow is an overview, but you can read the [full documentation](https://benmarch.github.io/a11y-toolkit).\n\n## Resources\n\nMany of the patterns that these tools implement can be found on the \n[WAI-ARIA](https://www.w3.org/WAI/standards-guidelines/aria/) and \n[MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility) websites.\n\nThese are great places to start when implementing accessible widgets, and the tools in this library\nwill make it easier to implement the more interactive patterns.\n\n## Vocabulary\n\nThis library attempts to stay internally consistent with terminology, although some of the\nterms might differ slightly from common terms to either broaden or tighten their scope.\n\n<dl>\n  <dt>a11y</dt>\n  <dd>\"Accessibility\" - the degree of usability by people with disabilities</dd>\n\n  <dt>Element-like or \"Elemental\"</dt>\n  <dd>Any DOM object or object that implements EventTarget</dd>\n\n  <dt>Focusable</dt>\n  <dd>Any element-like DOM object that has significance when focused.</dd>\n\n  <dt>Interactive</dt>\n  <dd>Any element-like DOM object that a user can directly interact with. All interactive elements are focusable, but not all focusable elements are interactive.</dd>\n</dl>\n\n## Primitives\n\nPrimitives are pure functions that inspect, select, or modified one or more element-like DOM objects.\n\n### Inspectors\n\nInspectors are functions that accept one or more element-like DOM objects and return information about them. \nFor example, `isFocusable` will return a boolean whether a provided Elemental is focusable.\n\n### Selectors\n\nSelectors are functions that return one or more element-like DOM objects (often of a specific type\nsuch as HTMLElement) given specific search criteria. For example, `getFirstFocusableChild` will return\nthe first focusable HTMLElement within a specific container.\n\n### Modifiers\n\nModifiers made changes to one or more provided element-like DOM objects. For example, \n`focusFirstFocusableChild` will locate the first focusable HTMLElement within a specific container\nand then move the browser's focus to it.\n\n## Managers\n\nManagers are stateful classes that provide higher-level functionality for implementing common\na11y patterns such as a roving tab index or focus trap. Managers do _not_ fully implement any\nwidget patterns, but are instead used in concert with one another to implement widgets.\n\nManagers can share lists of element-like DOM objects using an `ElementList` that is passed among them.\nThis way, the consumer can manage the list of elements included in the pattern, and any sub-managers\nwill share the same list in real time (i.e., it acts as shared memory). Managers do not add or remove\nelements from the shared `ElementList`, that is up to the consumer.\n\n## Contributing\n\nIf there is an issue with any existing functionality, or if you would like to request some functionality,\nplease open an issue with as much detail as possible. ","readmeFilename":"README.md"}