accessify-widget 0.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/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/accessify.min.js +2 -0
- package/dist/accessify.min.js.map +1 -0
- package/dist/accessify.mjs +6 -0
- package/dist/accessify.mjs.map +1 -0
- package/dist/alt-text-CLxbmwG6.js +567 -0
- package/dist/alt-text-CLxbmwG6.js.map +1 -0
- package/dist/animation-stop-DXebPS8D.js +88 -0
- package/dist/animation-stop-DXebPS8D.js.map +1 -0
- package/dist/auto-scan-pg-09o7A.js +885 -0
- package/dist/auto-scan-pg-09o7A.js.map +1 -0
- package/dist/big-cursor-B2UKu9dQ.js +88 -0
- package/dist/big-cursor-B2UKu9dQ.js.map +1 -0
- package/dist/color-blind-0LFng55r.js +108 -0
- package/dist/color-blind-0LFng55r.js.map +1 -0
- package/dist/contrast-DCkE0NXZ.js +64 -0
- package/dist/contrast-DCkE0NXZ.js.map +1 -0
- package/dist/dyslexia-font-wONgIy2T.js +77 -0
- package/dist/dyslexia-font-wONgIy2T.js.map +1 -0
- package/dist/focus-highlight-CjERyyUF.js +93 -0
- package/dist/focus-highlight-CjERyyUF.js.map +1 -0
- package/dist/hide-images-DJwmsV2C.js +39 -0
- package/dist/hide-images-DJwmsV2C.js.map +1 -0
- package/dist/index-CUQfpnwR.js +6520 -0
- package/dist/index-CUQfpnwR.js.map +1 -0
- package/dist/keyboard-nav-BdPyLaZt.js +312 -0
- package/dist/keyboard-nav-BdPyLaZt.js.map +1 -0
- package/dist/line-height-BT98qgEF.js +54 -0
- package/dist/line-height-BT98qgEF.js.map +1 -0
- package/dist/link-highlight-DBGm067Y.js +87 -0
- package/dist/link-highlight-DBGm067Y.js.map +1 -0
- package/dist/loader.min.js +1 -0
- package/dist/page-structure-2X8mOSpC.js +166 -0
- package/dist/page-structure-2X8mOSpC.js.map +1 -0
- package/dist/reading-guide-VT8NciIL.js +122 -0
- package/dist/reading-guide-VT8NciIL.js.map +1 -0
- package/dist/reading-mask-BABChuCz.js +76 -0
- package/dist/reading-mask-BABChuCz.js.map +1 -0
- package/dist/saturation-D8ZXpWAN.js +59 -0
- package/dist/saturation-D8ZXpWAN.js.map +1 -0
- package/dist/spacing-DENai3JU.js +106 -0
- package/dist/spacing-DENai3JU.js.map +1 -0
- package/dist/text-align-BDRPqPvl.js +51 -0
- package/dist/text-align-BDRPqPvl.js.map +1 -0
- package/dist/text-simplify-CELklw5A.js +223 -0
- package/dist/text-simplify-CELklw5A.js.map +1 -0
- package/dist/text-size-B-uv436p.js +69 -0
- package/dist/text-size-B-uv436p.js.map +1 -0
- package/dist/tts-02b9iV0h.js +505 -0
- package/dist/tts-02b9iV0h.js.map +1 -0
- package/dist/widget.js +2 -0
- package/dist/widget.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
function createAnimationStopModule() {
|
|
2
|
+
let enabled = false;
|
|
3
|
+
const STYLE_ID = "accessify-animation-stop";
|
|
4
|
+
const STORAGE_KEY = "accessify-animation-stop";
|
|
5
|
+
let pausedVideos = [];
|
|
6
|
+
function getStyles() {
|
|
7
|
+
return `
|
|
8
|
+
/* accessify animation stop - WCAG 2.3.1 compliance */
|
|
9
|
+
*, *::before, *::after {
|
|
10
|
+
animation-duration: 0.01s !important;
|
|
11
|
+
animation-delay: 0s !important;
|
|
12
|
+
animation-iteration-count: 1 !important;
|
|
13
|
+
animation-play-state: paused !important;
|
|
14
|
+
transition-duration: 0.01s !important;
|
|
15
|
+
transition-delay: 0s !important;
|
|
16
|
+
scroll-behavior: auto !important;
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
function pauseAutoplayVideos() {
|
|
21
|
+
const videos = document.querySelectorAll("video[autoplay], video");
|
|
22
|
+
pausedVideos = [];
|
|
23
|
+
videos.forEach((video) => {
|
|
24
|
+
if (!video.paused) {
|
|
25
|
+
video.pause();
|
|
26
|
+
pausedVideos.push(video);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function resumePausedVideos() {
|
|
31
|
+
pausedVideos.forEach((video) => {
|
|
32
|
+
try {
|
|
33
|
+
video.play();
|
|
34
|
+
} catch {
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
pausedVideos = [];
|
|
38
|
+
}
|
|
39
|
+
function injectStyles() {
|
|
40
|
+
let styleEl = document.getElementById(STYLE_ID);
|
|
41
|
+
if (!styleEl) {
|
|
42
|
+
styleEl = document.createElement("style");
|
|
43
|
+
styleEl.id = STYLE_ID;
|
|
44
|
+
document.head.appendChild(styleEl);
|
|
45
|
+
}
|
|
46
|
+
styleEl.textContent = getStyles();
|
|
47
|
+
}
|
|
48
|
+
function removeStyles() {
|
|
49
|
+
const styleEl = document.getElementById(STYLE_ID);
|
|
50
|
+
styleEl?.remove();
|
|
51
|
+
}
|
|
52
|
+
function activate() {
|
|
53
|
+
enabled = true;
|
|
54
|
+
injectStyles();
|
|
55
|
+
pauseAutoplayVideos();
|
|
56
|
+
localStorage.setItem(STORAGE_KEY, "true");
|
|
57
|
+
}
|
|
58
|
+
function deactivate() {
|
|
59
|
+
enabled = false;
|
|
60
|
+
removeStyles();
|
|
61
|
+
resumePausedVideos();
|
|
62
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
id: "animation-stop",
|
|
66
|
+
name: () => "Stop Animations",
|
|
67
|
+
description: "Pause all animations, transitions, and auto-playing videos (WCAG 2.3.1)",
|
|
68
|
+
icon: "animation-stop",
|
|
69
|
+
category: "visual",
|
|
70
|
+
activate,
|
|
71
|
+
deactivate,
|
|
72
|
+
getState: () => ({
|
|
73
|
+
id: "animation-stop",
|
|
74
|
+
enabled
|
|
75
|
+
}),
|
|
76
|
+
setState: (state) => {
|
|
77
|
+
if (state.enabled) {
|
|
78
|
+
activate();
|
|
79
|
+
} else {
|
|
80
|
+
deactivate();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export {
|
|
86
|
+
createAnimationStopModule as default
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=animation-stop-DXebPS8D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animation-stop-DXebPS8D.js","sources":["../src/features/animation-stop.ts"],"sourcesContent":["import type { FeatureModule, FeatureState } from '../types';\n\nexport default function createAnimationStopModule(): FeatureModule {\n let enabled = false;\n const STYLE_ID = 'accessify-animation-stop';\n const STORAGE_KEY = 'accessify-animation-stop';\n let pausedVideos: HTMLVideoElement[] = [];\n\n function getStyles(): string {\n return `\n /* accessify animation stop - WCAG 2.3.1 compliance */\n *, *::before, *::after {\n animation-duration: 0.01s !important;\n animation-delay: 0s !important;\n animation-iteration-count: 1 !important;\n animation-play-state: paused !important;\n transition-duration: 0.01s !important;\n transition-delay: 0s !important;\n scroll-behavior: auto !important;\n }\n `;\n }\n\n function pauseAutoplayVideos() {\n const videos = document.querySelectorAll<HTMLVideoElement>('video[autoplay], video');\n pausedVideos = [];\n videos.forEach((video) => {\n if (!video.paused) {\n video.pause();\n pausedVideos.push(video);\n }\n });\n }\n\n function resumePausedVideos() {\n pausedVideos.forEach((video) => {\n try {\n video.play();\n } catch {\n // Video may have been removed from DOM\n }\n });\n pausedVideos = [];\n }\n\n function injectStyles() {\n let styleEl = document.getElementById(STYLE_ID);\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.id = STYLE_ID;\n document.head.appendChild(styleEl);\n }\n styleEl.textContent = getStyles();\n }\n\n function removeStyles() {\n const styleEl = document.getElementById(STYLE_ID);\n styleEl?.remove();\n }\n\n function activate() {\n enabled = true;\n injectStyles();\n pauseAutoplayVideos();\n localStorage.setItem(STORAGE_KEY, 'true');\n }\n\n function deactivate() {\n enabled = false;\n removeStyles();\n resumePausedVideos();\n localStorage.removeItem(STORAGE_KEY);\n }\n\n return {\n id: 'animation-stop',\n name: () => 'Stop Animations',\n description: 'Pause all animations, transitions, and auto-playing videos (WCAG 2.3.1)',\n icon: 'animation-stop',\n category: 'visual',\n activate,\n deactivate,\n getState: (): FeatureState => ({\n id: 'animation-stop',\n enabled,\n }),\n setState: (state: { enabled: boolean }) => {\n if (state.enabled) {\n activate();\n } else {\n deactivate();\n }\n },\n };\n}\n"],"names":[],"mappings":"AAEA,SAAwB,4BAA2C;AACjE,MAAI,UAAU;AACd,QAAM,WAAW;AACjB,QAAM,cAAc;AACpB,MAAI,eAAmC,CAAA;AAEvC,WAAS,YAAoB;AAC3B,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYT;AAEA,WAAS,sBAAsB;AAC7B,UAAM,SAAS,SAAS,iBAAmC,wBAAwB;AACnF,mBAAe,CAAA;AACf,WAAO,QAAQ,CAAC,UAAU;AACxB,UAAI,CAAC,MAAM,QAAQ;AACjB,cAAM,MAAA;AACN,qBAAa,KAAK,KAAK;AAAA,MACzB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,WAAS,qBAAqB;AAC5B,iBAAa,QAAQ,CAAC,UAAU;AAC9B,UAAI;AACF,cAAM,KAAA;AAAA,MACR,QAAQ;AAAA,MAER;AAAA,IACF,CAAC;AACD,mBAAe,CAAA;AAAA,EACjB;AAEA,WAAS,eAAe;AACtB,QAAI,UAAU,SAAS,eAAe,QAAQ;AAC9C,QAAI,CAAC,SAAS;AACZ,gBAAU,SAAS,cAAc,OAAO;AACxC,cAAQ,KAAK;AACb,eAAS,KAAK,YAAY,OAAO;AAAA,IACnC;AACA,YAAQ,cAAc,UAAA;AAAA,EACxB;AAEA,WAAS,eAAe;AACtB,UAAM,UAAU,SAAS,eAAe,QAAQ;AAChD,aAAS,OAAA;AAAA,EACX;AAEA,WAAS,WAAW;AAClB,cAAU;AACV,iBAAA;AACA,wBAAA;AACA,iBAAa,QAAQ,aAAa,MAAM;AAAA,EAC1C;AAEA,WAAS,aAAa;AACpB,cAAU;AACV,iBAAA;AACA,uBAAA;AACA,iBAAa,WAAW,WAAW;AAAA,EACrC;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM,MAAM;AAAA,IACZ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,UAAU,OAAqB;AAAA,MAC7B,IAAI;AAAA,MACJ;AAAA,IAAA;AAAA,IAEF,UAAU,CAAC,UAAgC;AACzC,UAAI,MAAM,SAAS;AACjB,iBAAA;AAAA,MACF,OAAO;AACL,mBAAA;AAAA,MACF;AAAA,IACF;AAAA,EAAA;AAEJ;"}
|