aria-ease 2.0.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/audit-cli.cjs +663 -0
- package/bin/audit-cli.cjs.map +1 -0
- package/bin/audit-cli.d.cts +1 -0
- package/bin/audit-cli.d.ts +1 -0
- package/bin/audit-cli.js +566 -0
- package/bin/audit-cli.js.map +1 -0
- package/bin/audit-cli.ts +80 -0
- package/dist/chunk-4366LRNM.js.map +1 -1
- package/dist/chunk-5HQ6LLC5.js.map +1 -1
- package/dist/chunk-FBQ5LF2T.js.map +1 -1
- package/dist/chunk-KVTLMA4J.js.map +1 -1
- package/dist/chunk-MEA5U2G4.js.map +1 -1
- package/dist/chunk-RK3JUAFZ.js.map +1 -1
- package/dist/chunk-RT5IROW4.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/accordion/index.cjs.map +1 -1
- package/dist/src/block/index.cjs.map +1 -1
- package/dist/src/checkbox/index.cjs.map +1 -1
- package/dist/src/checkbox/index.js.map +1 -1
- package/dist/src/menu/index.cjs.map +1 -1
- package/dist/src/menu/index.js.map +1 -1
- package/dist/src/radio/index.cjs.map +1 -1
- package/dist/src/toggle/index.cjs.map +1 -1
- package/dist/src/utils/audit/audit.cjs +208 -0
- package/dist/src/utils/audit/audit.cjs.map +1 -0
- package/dist/src/utils/audit/audit.d.cts +5 -0
- package/dist/src/utils/audit/audit.d.ts +5 -0
- package/dist/src/utils/audit/audit.js +201 -0
- package/dist/src/utils/audit/audit.js.map +1 -0
- package/package.json +22 -4
- package/dist/chunk-4WO5XJ5K.js +0 -58
- package/dist/chunk-4WO5XJ5K.js.map +0 -1
- package/dist/chunk-KGYGCX67.js +0 -18
- package/dist/chunk-KGYGCX67.js.map +0 -1
package/dist/chunk-4WO5XJ5K.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { handleKeyPress } from './chunk-RT5IROW4.js';
|
|
2
|
-
// src/menu/src/makeMenuAccessible/makeMenuAccessible.ts
|
|
3
|
-
function makeMenuAccessible(param) {
|
|
4
|
-
var menuId = param.menuId, menuElementsClass = param.menuElementsClass, triggerId = param.triggerId;
|
|
5
|
-
var menuDiv = document.querySelector("#".concat(menuId));
|
|
6
|
-
if (!menuDiv) throw new Error("Invalid menu div id provided");
|
|
7
|
-
var triggerButton = document.querySelector("#".concat(triggerId));
|
|
8
|
-
if (!triggerButton) throw new Error("Invalid trigger button id provided");
|
|
9
|
-
var handlerMap = /* @__PURE__ */ new Map();
|
|
10
|
-
function setAria(isOpen) {
|
|
11
|
-
triggerButton.setAttribute("aria-expanded", isOpen ? "true" : "false");
|
|
12
|
-
}
|
|
13
|
-
function addListeners() {
|
|
14
|
-
var menuItems = menuDiv.querySelectorAll(".".concat(menuElementsClass));
|
|
15
|
-
menuItems.forEach(function(menuItem, index) {
|
|
16
|
-
if (!handlerMap.has(menuItem)) {
|
|
17
|
-
var handler = function(event) {
|
|
18
|
-
return handleKeyPress(event, menuItems, index, menuDiv, triggerButton);
|
|
19
|
-
};
|
|
20
|
-
menuItem.addEventListener("keydown", handler);
|
|
21
|
-
handlerMap.set(menuItem, handler);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
function removeListeners() {
|
|
26
|
-
var menuItems = menuDiv.querySelectorAll(".".concat(menuElementsClass));
|
|
27
|
-
menuItems.forEach(function(menuItem) {
|
|
28
|
-
var handler = handlerMap.get(menuItem);
|
|
29
|
-
if (handler) {
|
|
30
|
-
menuItem.removeEventListener("keydown", handler);
|
|
31
|
-
handlerMap.delete(menuItem);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
function openMenu() {
|
|
36
|
-
menuDiv.style.display = "block";
|
|
37
|
-
setAria(true);
|
|
38
|
-
addListeners();
|
|
39
|
-
var menuItems = menuDiv.querySelectorAll(".".concat(menuElementsClass));
|
|
40
|
-
if (menuItems.length > 0) menuItems[0].focus();
|
|
41
|
-
}
|
|
42
|
-
function closeMenu() {
|
|
43
|
-
removeListeners();
|
|
44
|
-
menuDiv.style.display = "none";
|
|
45
|
-
setAria(false);
|
|
46
|
-
triggerButton.focus();
|
|
47
|
-
}
|
|
48
|
-
function cleanup() {
|
|
49
|
-
removeListeners();
|
|
50
|
-
}
|
|
51
|
-
return {
|
|
52
|
-
openMenu: openMenu,
|
|
53
|
-
closeMenu: closeMenu,
|
|
54
|
-
cleanup: cleanup
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
export { makeMenuAccessible }; //# sourceMappingURL=chunk-4WO5XJ5K.js.map
|
|
58
|
-
//# sourceMappingURL=chunk-4WO5XJ5K.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/macx/aria-ease/package/dist/chunk-4WO5XJ5K.js","../src/menu/src/makeMenuAccessible/makeMenuAccessible.ts"],"names":["handleKeyPress","makeMenuAccessible","menuId","menuElementsClass","triggerId","menuDiv","document","querySelector","Error","triggerButton","handlerMap","Map","setAria","isOpen","setAttribute","addListeners","menuItems","querySelectorAll","forEach","menuItem","index","has","handler","event","addEventListener","set","removeListeners","get","removeEventListener","delete","openMenu","style","display","length","focus","closeMenu","cleanup"],"mappings":"AAAA,SAASA,cAAc,QAAQ,sBAAsB;ACU9C,SAASC,mBAAmB,KAAuC,uBAAA;QAArCC,CAAAA,QAAF,MAAEA,KAAAA,KAAQC,QAAmBC,YAA7B,MAA6BA;QAA3BF,SAAAA,MAAAA,CAAQC,OAAAA,oBAARD,MAAQC,aAAV,MAAUA,YAARD;MACnC,EAAMG,UAAUC,SAASC,aAAA,CAAc,IAAIL,OAAM;MACjD,EAAA,CAAA,CAAI,CAACG,OAAAA,EAAS,IAAA,EAAM,EAAA,EAAIG,IAAAA,EAAM;MAE9B,EAAMC,gBAAgBH,SAASC,aAAA,CAAc,IAAIH,OAAS,OAATA;MACjD,EAAA,CAAA,CAAI,CAACK,aAAAA,EAAe,IAAA,EAAM,EAAA,EAAID,IAAAA,EAAM;MAGpC,EAAME,aAAA,aAAA,GAAA,IAAiBC;MAEvB,OAAA,EAASC,MAAAA,EAAQC,IAAAA,EAAA;YACfJ,UAAAA,IAAcK,QAAAA,CAAAA,GAAA,CAAa,aAAA,IAAiBD,KAAAA,IAAS,KAAA,IAAS;MAChE;MAEA,OAAA,EAASE;YACP,EAAMC,UAAAA,EAAYX,MAAAA,EAAQY,cAAAA,CAAA,AAAAA,CAAiB,GAAId,OAAJ,EAAqB,OAAjBA;YAC/Ca,MAAAA,IAAUE,GAAAA,CAAAA,SAAAA,EAAA,CAAQ,OAAA,EAACC,UAAuBC;kBACxC,IAAI,CAACV,KAAAA,GAAAA,CAAAA,EAAWW,GAAA,CAAIF,KAAAA,MAAW;sBAC7B,IAAMG,IAAAA,SAAAA,KAAU;2BAAA,IAACC,WAAAA,OAAAA,WAAAA,OAAAA,SAAAA;;mCAAyBvB,MAAAA,CAAAA,QAAeuB,GAAAA,IAAOP,WAAWI,OAAOf,SAASI;;sBAC3FU,SAASK,gBAAA,CAAiB,WAAWF;oBACrCZ,WAAWe,GAAA,CAAIN,UAAUG;cAC3B;UACF,GAAA;QACF,IAAA,YAAA,QAAA,gBAAA,CAAA,IAAA,OAAA;QAEA,SAASI,CAAAA,OAAAA,CAAAA,SAAAA;cACP,EAAMV,UAAAA,EAAYX,QAAQY,CAAAA,GAAAA,CAAAA,WAAA,CAAiB,IAAqB,OAAjBd;cAC/Ca,EAAAA,QAAUE,CAAAA,MAAA,CAAQ,SAACC;oBACjB,IAAMG,CAAAA,SAAUZ,UAAAA,CAAWiB,GAAA,CAAIR,OAAAA;oBAC/B,IAAIG,GAAAA,MAAS,CAAA;sBACXH,SAASS,mBAAA,CAAoB,WAAWN;oBACxCZ,WAAWmB,MAAA,CAAOV;cACpB;UACF,GAAA;QACF,QAAA,KAAA,CAAA,OAAA,GAAA;QAEA,QAAA,CAASW;YACPzB,QAAQ0B,KAAA,CAAMC,OAAA,GAAU;YACxBpB,MAAQ,MAAA,QAAA,gBAAA,CAAA,IAAA,OAAA;YACRG,UAAAA,MAAAA,GAAAA,GAAAA,SAAAA,CAAAA,EAAAA,CAAAA,KAAAA;UAEA,IAAMC,YAAYX,QAAQY,gBAAA,CAAiB,IAAqB,OAAjBd;UAC/C,GAAA,CAAIa,UAAUiB,MAAA,GAAS,GAAGjB,SAAA,CAAU,EAAC,CAAEkB,KAAA;QACzC;QAEA,QAAA,CAASC,IAAAA,CAAAA,OAAAA,GAAAA;YACPT,IAAAA;YACArB,QAAQ0B,EAAAA,GAAA,CAAMC,CAAAA,MAAA,GAAU;UACxBpB,QAAQ;UACRH,GAAAA,WAAcyB,KAAA;QAChB;MAEA,SAASE;UACPV,CAAAA;QAAAA,UAAAA;QAAAA,WAAAA;QAAAA,SAAAA;IAAAA;IACF;QAESI,CAAAA,SAAAA,SAAAA,GAAAA,SAAUK,WAAAA,uBAAAA","sourcesContent":["import { handleKeyPress } from './chunk-RT5IROW4.js';\n\n// src/menu/src/makeMenuAccessible/makeMenuAccessible.ts\nfunction makeMenuAccessible({ menuId, menuElementsClass, triggerId }) {\n const menuDiv = document.querySelector(`#${menuId}`);\n if (!menuDiv) throw new Error(\"Invalid menu div id provided\");\n const triggerButton = document.querySelector(`#${triggerId}`);\n if (!triggerButton) throw new Error(\"Invalid trigger button id provided\");\n const handlerMap = /* @__PURE__ */ new Map();\n function setAria(isOpen) {\n triggerButton.setAttribute(\"aria-expanded\", isOpen ? \"true\" : \"false\");\n }\n function addListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`);\n menuItems.forEach((menuItem, index) => {\n if (!handlerMap.has(menuItem)) {\n const handler = (event) => handleKeyPress(event, menuItems, index, menuDiv, triggerButton);\n menuItem.addEventListener(\"keydown\", handler);\n handlerMap.set(menuItem, handler);\n }\n });\n }\n function removeListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`);\n menuItems.forEach((menuItem) => {\n const handler = handlerMap.get(menuItem);\n if (handler) {\n menuItem.removeEventListener(\"keydown\", handler);\n handlerMap.delete(menuItem);\n }\n });\n }\n function openMenu() {\n menuDiv.style.display = \"block\";\n setAria(true);\n addListeners();\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`);\n if (menuItems.length > 0) menuItems[0].focus();\n }\n function closeMenu() {\n removeListeners();\n menuDiv.style.display = \"none\";\n setAria(false);\n triggerButton.focus();\n }\n function cleanup() {\n removeListeners();\n }\n return { openMenu, closeMenu, cleanup };\n}\n\nexport { makeMenuAccessible };\n//# sourceMappingURL=chunk-4WO5XJ5K.js.map\n","/**\n * Adds keyboard interaction to toggle menu. The menu traps focus and can be interacted with using the keyboard. The first interactive item of the menu has focus when menu open.\n * @param {string} menuId - The id of the menu.\n * @param {string} menuElementsClass - The class of the items that are children of the menu.\n * @param {string} triggerId - The id of the button that triggers the menu.\n*/\n\nimport { handleKeyPress } from \"../../../utils/handleKeyPress/handleKeyPress\";\nimport { NodeListOfHTMLElement } from \"../../../../Types\";\n\nexport function makeMenuAccessible({ menuId, menuElementsClass, triggerId }: {menuId: string; menuElementsClass: string; triggerId: string;}) {\n const menuDiv = document.querySelector(`#${menuId}`) as HTMLElement;\n if (!menuDiv) throw new Error(\"Invalid menu div id provided\");\n\n const triggerButton = document.querySelector(`#${triggerId}`) as HTMLElement;\n if (!triggerButton) throw new Error(\"Invalid trigger button id provided\");\n\n\n const handlerMap = new Map<HTMLElement, (event: KeyboardEvent) => void>();\n\n function setAria(isOpen: boolean) {\n triggerButton.setAttribute(\"aria-expanded\", isOpen ? \"true\" : \"false\");\n }\n\n function addListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`) as NodeListOfHTMLElement<HTMLElement>;\n menuItems.forEach((menuItem: HTMLElement, index: number) => {\n if (!handlerMap.has(menuItem)) {\n const handler = (event: KeyboardEvent) => handleKeyPress(event, menuItems, index, menuDiv, triggerButton);\n menuItem.addEventListener(\"keydown\", handler);\n handlerMap.set(menuItem, handler);\n }\n });\n }\n\n function removeListeners() {\n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`) as NodeListOfHTMLElement<HTMLElement>;\n menuItems.forEach((menuItem: HTMLElement) => {\n const handler = handlerMap.get(menuItem);\n if (handler) {\n menuItem.removeEventListener(\"keydown\", handler);\n handlerMap.delete(menuItem);\n }\n });\n }\n\n function openMenu() {\n menuDiv.style.display = \"block\";\n setAria(true);\n addListeners();\n \n const menuItems = menuDiv.querySelectorAll(`.${menuElementsClass}`) as NodeListOfHTMLElement<HTMLElement>;\n if (menuItems.length > 0) menuItems[0].focus();\n }\n\n function closeMenu() {\n removeListeners();\n menuDiv.style.display = \"none\";\n setAria(false);\n triggerButton.focus();\n }\n\n function cleanup() {\n removeListeners();\n }\n\n return { openMenu, closeMenu, cleanup };\n}\n"]}
|
package/dist/chunk-KGYGCX67.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// src/checkbox/src/updateCheckboxAriaAttributes/updateCheckboxAriaAttributes.ts
|
|
2
|
-
function updateCheckboxAriaAttributes(checkboxId, checkboxesClass, checkboxStates, currentPressedCheckboxIndex) {
|
|
3
|
-
var checkboxDiv = document.querySelector("#".concat(checkboxId));
|
|
4
|
-
if (!checkboxDiv) {
|
|
5
|
-
throw new Error("Invalid checkbox main div id provided.");
|
|
6
|
-
}
|
|
7
|
-
var checkboxItems = Array.from(document.querySelectorAll(".".concat(checkboxesClass)));
|
|
8
|
-
if (checkboxItems.length === 0) {
|
|
9
|
-
throw new Error("Invalid checkboxes shared class provided.");
|
|
10
|
-
}
|
|
11
|
-
checkboxItems.forEach(function(checkbox, index) {
|
|
12
|
-
if (index === currentPressedCheckboxIndex) {
|
|
13
|
-
checkbox.setAttribute("aria-checked", checkboxStates[index].checked ? "true" : "false");
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
export { updateCheckboxAriaAttributes }; //# sourceMappingURL=chunk-KGYGCX67.js.map
|
|
18
|
-
//# sourceMappingURL=chunk-KGYGCX67.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/macx/aria-ease/package/dist/chunk-KGYGCX67.js","../src/checkbox/src/updateCheckboxAriaAttributes/updateCheckboxAriaAttributes.ts"],"names":["updateCheckboxAriaAttributes","checkboxId","checkboxesClass","checkboxStates","currentPressedCheckboxIndex","checkboxDiv","document","querySelector","Error","checkboxItems","Array","from","querySelectorAll","length","forEach","checkbox","index","setAttribute","checked"],"mappings":"AAAA,gFAAgF;ACUzE,SAASA,6BAA6BC,UAAA,EAAoBC,eAAA,EAAyBC,cAAA,EAAkCC,2BAAA;MAC1H,EAAMC,cAAkCC,SAASC,aAAA,CAAc,IAAIN,OAAU,OAAVA;MACnE,EAAA,CAAA,CAAI,CAACI,WAAAA,EAAa;YAChB,EAAA,IAAM,IAAIG,EAAAA,IAAM;MAClB;MAEA,EAAMC,gBAA+BC,MAAMC,IAAA,CAAKL,SAASM,gBAAA,CAAiB,IAAIV,OAAe,OAAfA;MAC9E,EAAA,EAAIO,YAAAA,EAAcI,IAAAA,EAAA,GAAA,EAAW,CAAA,EAAG;YAC9B,EAAA,IAAM,IAAIL,EAAAA,IAAM;MAClB;MAEAC,YAAAA,EAAcK,KAAAA,CAAAA,SAAA,CAAQ,SAACC,UAAuBC;YAC5C,IAAIA,MAAAA,IAAUZ,yBAAAA,IAA6B;kBACzCW,GAAAA,MAASE,MAAAA,CAAAA,KAAA,CAAa,UAAA,MAAgBd,QAAAA,CAAAA,KAAA,CAAea,CAAAA,KAAK,CAAEE,CAAAA,GAAAA,GAAA,GAAU,GAAA,MAAS;YACjF;MACF;AACF","sourcesContent":["// src/checkbox/src/updateCheckboxAriaAttributes/updateCheckboxAriaAttributes.ts\nfunction updateCheckboxAriaAttributes(checkboxId, checkboxesClass, checkboxStates, currentPressedCheckboxIndex) {\n const checkboxDiv = document.querySelector(`#${checkboxId}`);\n if (!checkboxDiv) {\n throw new Error(\"Invalid checkbox main div id provided.\");\n }\n const checkboxItems = Array.from(document.querySelectorAll(`.${checkboxesClass}`));\n if (checkboxItems.length === 0) {\n throw new Error(\"Invalid checkboxes shared class provided.\");\n }\n checkboxItems.forEach((checkbox, index) => {\n if (index === currentPressedCheckboxIndex) {\n checkbox.setAttribute(\"aria-checked\", checkboxStates[index].checked ? \"true\" : \"false\");\n }\n });\n}\n\nexport { updateCheckboxAriaAttributes };\n//# sourceMappingURL=chunk-KGYGCX67.js.map\n","/**\n * Adds screen reader accessibility to multiple checkboxes. Updates the aria attributes of the checkboxes. Checkbox elements must possess the following aria attributes; aria-checked and aria-label.\n * @param {string} checkboxId The id of the checkbox parent container.\n * @param {string} checkboxesClass The shared class of all the checkboxes.\n * @param {CheckboxStates[]} checkboxStates Array of objects containing checkboxes state information.\n * @param {number} currentPressedCheckboxIndex Index of the currently checked or unchecked checkbox.\n */\n\nimport { HTMLElement, CheckboxStates } from \"../../../../Types\";\n\nexport function updateCheckboxAriaAttributes(checkboxId: string, checkboxesClass: string, checkboxStates: CheckboxStates[], currentPressedCheckboxIndex: number): void {\n const checkboxDiv: HTMLElement | null = document.querySelector(`#${checkboxId}`);\n if (!checkboxDiv) {\n throw new Error(\"Invalid checkbox main div id provided.\");\n }\n \n const checkboxItems: HTMLElement[] = Array.from(document.querySelectorAll(`.${checkboxesClass}`));\n if (checkboxItems.length === 0) {\n throw new Error('Invalid checkboxes shared class provided.');\n };\n\n checkboxItems.forEach((checkbox: HTMLElement, index: number) => {\n if (index === currentPressedCheckboxIndex) {\n checkbox.setAttribute(\"aria-checked\", checkboxStates[index].checked ? 'true' : 'false');\n }\n });\n}"]}
|