@gtcx/accessibility 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/README.md +163 -0
- package/dist/index.d.mts +183 -0
- package/dist/index.d.ts +183 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +329 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +294 -0
- package/dist/tech-literacy.d.ts +99 -0
- package/dist/tech-literacy.d.ts.map +1 -0
- package/dist/tech-literacy.js +177 -0
- package/dist/tech-literacy.js.map +1 -0
- package/package.json +39 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tech Literacy Detection and Adaptation
|
|
3
|
+
*
|
|
4
|
+
* Automatically detects user's technical proficiency and adapts UI accordingly
|
|
5
|
+
*/
|
|
6
|
+
export type TechLiteracyLevel = 'beginner' | 'intermediate' | 'advanced';
|
|
7
|
+
interface InteractionPattern {
|
|
8
|
+
/** Time to complete action in ms */
|
|
9
|
+
actionTime: number;
|
|
10
|
+
/** Number of errors/corrections */
|
|
11
|
+
errorCount: number;
|
|
12
|
+
/** Used keyboard shortcuts */
|
|
13
|
+
usedShortcuts: boolean;
|
|
14
|
+
/** Scrolled to find features */
|
|
15
|
+
searchedFeatures: boolean;
|
|
16
|
+
/** Requested help */
|
|
17
|
+
requestedHelp: boolean;
|
|
18
|
+
/** Used voice input */
|
|
19
|
+
usedVoice: boolean;
|
|
20
|
+
/** Interaction timestamp */
|
|
21
|
+
timestamp: number;
|
|
22
|
+
}
|
|
23
|
+
interface LiteracyScore {
|
|
24
|
+
level: TechLiteracyLevel;
|
|
25
|
+
confidence: number;
|
|
26
|
+
signals: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Detect tech literacy level from interaction patterns
|
|
30
|
+
*/
|
|
31
|
+
export declare function detectTechLiteracy(interactions: InteractionPattern[]): Promise<LiteracyScore>;
|
|
32
|
+
/**
|
|
33
|
+
* Tech literacy detector with continuous learning
|
|
34
|
+
*/
|
|
35
|
+
export declare class TechLiteracyDetector {
|
|
36
|
+
private interactions;
|
|
37
|
+
private currentLevel;
|
|
38
|
+
private onLevelChange?;
|
|
39
|
+
constructor(options?: {
|
|
40
|
+
initialLevel?: TechLiteracyLevel;
|
|
41
|
+
onLevelChange?: (level: TechLiteracyLevel) => void;
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Record an interaction for analysis
|
|
45
|
+
*/
|
|
46
|
+
recordInteraction(pattern: Omit<InteractionPattern, 'timestamp'>): void;
|
|
47
|
+
/**
|
|
48
|
+
* Evaluate current literacy level
|
|
49
|
+
*/
|
|
50
|
+
evaluate(): Promise<LiteracyScore>;
|
|
51
|
+
/**
|
|
52
|
+
* Get current assessed level
|
|
53
|
+
*/
|
|
54
|
+
getLevel(): TechLiteracyLevel;
|
|
55
|
+
/**
|
|
56
|
+
* Manually set level (user preference)
|
|
57
|
+
*/
|
|
58
|
+
setLevel(level: TechLiteracyLevel): void;
|
|
59
|
+
}
|
|
60
|
+
export declare const LITERACY_UI_CONFIGS: {
|
|
61
|
+
readonly beginner: {
|
|
62
|
+
readonly buttonSize: "large";
|
|
63
|
+
readonly fontSize: "large";
|
|
64
|
+
readonly navigation: "simple";
|
|
65
|
+
readonly icons: "labeled";
|
|
66
|
+
readonly animations: "minimal";
|
|
67
|
+
readonly guidance: "proactive";
|
|
68
|
+
readonly inputMode: "touch";
|
|
69
|
+
readonly errorHandling: "guided";
|
|
70
|
+
readonly confirmations: "explicit";
|
|
71
|
+
readonly shortcuts: "hidden";
|
|
72
|
+
};
|
|
73
|
+
readonly intermediate: {
|
|
74
|
+
readonly buttonSize: "medium";
|
|
75
|
+
readonly fontSize: "medium";
|
|
76
|
+
readonly navigation: "standard";
|
|
77
|
+
readonly icons: "tooltips";
|
|
78
|
+
readonly animations: "standard";
|
|
79
|
+
readonly guidance: "contextual";
|
|
80
|
+
readonly inputMode: "mixed";
|
|
81
|
+
readonly errorHandling: "inline";
|
|
82
|
+
readonly confirmations: "smart";
|
|
83
|
+
readonly shortcuts: "discoverable";
|
|
84
|
+
};
|
|
85
|
+
readonly advanced: {
|
|
86
|
+
readonly buttonSize: "compact";
|
|
87
|
+
readonly fontSize: "small";
|
|
88
|
+
readonly navigation: "full";
|
|
89
|
+
readonly icons: "minimal";
|
|
90
|
+
readonly animations: "full";
|
|
91
|
+
readonly guidance: "on-demand";
|
|
92
|
+
readonly inputMode: "keyboard";
|
|
93
|
+
readonly errorHandling: "technical";
|
|
94
|
+
readonly confirmations: "minimal";
|
|
95
|
+
readonly shortcuts: "prominent";
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=tech-literacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tech-literacy.d.ts","sourceRoot":"","sources":["../src/tech-literacy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC;AAEzE,UAAU,kBAAkB;IAC1B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,gCAAgC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,uBAAuB;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,kBAAkB,EAAE,GACjC,OAAO,CAAC,aAAa,CAAC,CAqExB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAC,CAAqC;gBAE/C,OAAO,CAAC,EAAE;QACpB,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;KACpD;IAKD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI;IAiBvE;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC;IAWxC;;OAEG;IACH,QAAQ,IAAI,iBAAiB;IAI7B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;CAIzC;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCtB,CAAC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tech Literacy Detection and Adaptation
|
|
4
|
+
*
|
|
5
|
+
* Automatically detects user's technical proficiency and adapts UI accordingly
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.LITERACY_UI_CONFIGS = exports.TechLiteracyDetector = void 0;
|
|
9
|
+
exports.detectTechLiteracy = detectTechLiteracy;
|
|
10
|
+
/**
|
|
11
|
+
* Detect tech literacy level from interaction patterns
|
|
12
|
+
*/
|
|
13
|
+
async function detectTechLiteracy(interactions) {
|
|
14
|
+
if (interactions.length < 3) {
|
|
15
|
+
// Not enough data, default to beginner (safest)
|
|
16
|
+
return {
|
|
17
|
+
level: 'beginner',
|
|
18
|
+
confidence: 0.3,
|
|
19
|
+
signals: ['insufficient_data'],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const signals = [];
|
|
23
|
+
let score = 50; // Start neutral
|
|
24
|
+
// Analyze patterns
|
|
25
|
+
const avgActionTime = average(interactions.map(i => i.actionTime));
|
|
26
|
+
const totalErrors = sum(interactions.map(i => i.errorCount));
|
|
27
|
+
const shortcutUsage = interactions.filter(i => i.usedShortcuts).length;
|
|
28
|
+
const helpRequests = interactions.filter(i => i.requestedHelp).length;
|
|
29
|
+
const voiceUsage = interactions.filter(i => i.usedVoice).length;
|
|
30
|
+
// Fast completion suggests higher literacy
|
|
31
|
+
if (avgActionTime < 2000) {
|
|
32
|
+
score += 15;
|
|
33
|
+
signals.push('fast_completion');
|
|
34
|
+
}
|
|
35
|
+
else if (avgActionTime > 8000) {
|
|
36
|
+
score -= 15;
|
|
37
|
+
signals.push('slow_completion');
|
|
38
|
+
}
|
|
39
|
+
// Errors suggest lower literacy
|
|
40
|
+
if (totalErrors > interactions.length * 2) {
|
|
41
|
+
score -= 20;
|
|
42
|
+
signals.push('high_error_rate');
|
|
43
|
+
}
|
|
44
|
+
else if (totalErrors === 0) {
|
|
45
|
+
score += 10;
|
|
46
|
+
signals.push('no_errors');
|
|
47
|
+
}
|
|
48
|
+
// Keyboard shortcuts suggest advanced
|
|
49
|
+
if (shortcutUsage > interactions.length * 0.3) {
|
|
50
|
+
score += 25;
|
|
51
|
+
signals.push('keyboard_shortcuts');
|
|
52
|
+
}
|
|
53
|
+
// Help requests suggest beginner
|
|
54
|
+
if (helpRequests > interactions.length * 0.3) {
|
|
55
|
+
score -= 15;
|
|
56
|
+
signals.push('frequent_help_requests');
|
|
57
|
+
}
|
|
58
|
+
// Voice usage is neutral (accessibility or preference)
|
|
59
|
+
if (voiceUsage > 0) {
|
|
60
|
+
signals.push('voice_user');
|
|
61
|
+
}
|
|
62
|
+
// Determine level
|
|
63
|
+
let level;
|
|
64
|
+
if (score >= 70) {
|
|
65
|
+
level = 'advanced';
|
|
66
|
+
}
|
|
67
|
+
else if (score >= 40) {
|
|
68
|
+
level = 'intermediate';
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
level = 'beginner';
|
|
72
|
+
}
|
|
73
|
+
// Confidence based on data quality
|
|
74
|
+
const confidence = Math.min(0.95, 0.5 + (interactions.length * 0.05));
|
|
75
|
+
return { level, confidence, signals };
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Tech literacy detector with continuous learning
|
|
79
|
+
*/
|
|
80
|
+
class TechLiteracyDetector {
|
|
81
|
+
interactions = [];
|
|
82
|
+
currentLevel = 'beginner';
|
|
83
|
+
onLevelChange;
|
|
84
|
+
constructor(options) {
|
|
85
|
+
this.currentLevel = options?.initialLevel || 'beginner';
|
|
86
|
+
this.onLevelChange = options?.onLevelChange;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Record an interaction for analysis
|
|
90
|
+
*/
|
|
91
|
+
recordInteraction(pattern) {
|
|
92
|
+
this.interactions.push({
|
|
93
|
+
...pattern,
|
|
94
|
+
timestamp: Date.now(),
|
|
95
|
+
});
|
|
96
|
+
// Keep last 50 interactions
|
|
97
|
+
if (this.interactions.length > 50) {
|
|
98
|
+
this.interactions = this.interactions.slice(-50);
|
|
99
|
+
}
|
|
100
|
+
// Re-evaluate periodically
|
|
101
|
+
if (this.interactions.length % 5 === 0) {
|
|
102
|
+
this.evaluate();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Evaluate current literacy level
|
|
107
|
+
*/
|
|
108
|
+
async evaluate() {
|
|
109
|
+
const result = await detectTechLiteracy(this.interactions);
|
|
110
|
+
if (result.level !== this.currentLevel && result.confidence > 0.7) {
|
|
111
|
+
this.currentLevel = result.level;
|
|
112
|
+
this.onLevelChange?.(result.level);
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get current assessed level
|
|
118
|
+
*/
|
|
119
|
+
getLevel() {
|
|
120
|
+
return this.currentLevel;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Manually set level (user preference)
|
|
124
|
+
*/
|
|
125
|
+
setLevel(level) {
|
|
126
|
+
this.currentLevel = level;
|
|
127
|
+
this.onLevelChange?.(level);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.TechLiteracyDetector = TechLiteracyDetector;
|
|
131
|
+
// UI configuration per literacy level
|
|
132
|
+
exports.LITERACY_UI_CONFIGS = {
|
|
133
|
+
beginner: {
|
|
134
|
+
buttonSize: 'large', // min 48px touch target
|
|
135
|
+
fontSize: 'large', // 18px+
|
|
136
|
+
navigation: 'simple', // Linear, no nested menus
|
|
137
|
+
icons: 'labeled', // Always show text with icons
|
|
138
|
+
animations: 'minimal', // Reduce motion
|
|
139
|
+
guidance: 'proactive', // Show help automatically
|
|
140
|
+
inputMode: 'touch', // Optimize for touch
|
|
141
|
+
errorHandling: 'guided', // Step-by-step error recovery
|
|
142
|
+
confirmations: 'explicit', // Confirm all actions
|
|
143
|
+
shortcuts: 'hidden', // Don't show keyboard shortcuts
|
|
144
|
+
},
|
|
145
|
+
intermediate: {
|
|
146
|
+
buttonSize: 'medium',
|
|
147
|
+
fontSize: 'medium', // 16px
|
|
148
|
+
navigation: 'standard', // Some nesting allowed
|
|
149
|
+
icons: 'tooltips', // Show text on hover
|
|
150
|
+
animations: 'standard',
|
|
151
|
+
guidance: 'contextual', // Show help when hovering
|
|
152
|
+
inputMode: 'mixed', // Touch + keyboard
|
|
153
|
+
errorHandling: 'inline', // Inline error messages
|
|
154
|
+
confirmations: 'smart', // Confirm destructive only
|
|
155
|
+
shortcuts: 'discoverable', // Show shortcuts in tooltips
|
|
156
|
+
},
|
|
157
|
+
advanced: {
|
|
158
|
+
buttonSize: 'compact',
|
|
159
|
+
fontSize: 'small', // 14px
|
|
160
|
+
navigation: 'full', // All features accessible
|
|
161
|
+
icons: 'minimal', // Icons only, no labels
|
|
162
|
+
animations: 'full',
|
|
163
|
+
guidance: 'on-demand', // Help only when requested
|
|
164
|
+
inputMode: 'keyboard', // Keyboard-first
|
|
165
|
+
errorHandling: 'technical', // Technical error details
|
|
166
|
+
confirmations: 'minimal', // Skip most confirmations
|
|
167
|
+
shortcuts: 'prominent', // Show all shortcuts
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
// Utility functions
|
|
171
|
+
function average(arr) {
|
|
172
|
+
return arr.length ? arr.reduce((a, b) => a + b, 0) / arr.length : 0;
|
|
173
|
+
}
|
|
174
|
+
function sum(arr) {
|
|
175
|
+
return arr.reduce((a, b) => a + b, 0);
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=tech-literacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tech-literacy.js","sourceRoot":"","sources":["../src/tech-literacy.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gtcx/accessibility",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Inclusive design — tech literacy adaptation, WCAG contrast, a11y React hooks",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsup src/index.ts --format esm,cjs --dts",
|
|
18
|
+
"dev": "tsup src/index.ts --format esm,cjs --dts --watch",
|
|
19
|
+
"test": "vitest run",
|
|
20
|
+
"lint": "eslint src/",
|
|
21
|
+
"typecheck": "tsc --noEmit"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {},
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/react": "^18.0.0",
|
|
29
|
+
"tsup": "^8.0.0",
|
|
30
|
+
"typescript": "^5.0.0"
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"README.md"
|
|
35
|
+
],
|
|
36
|
+
"publishConfig": {
|
|
37
|
+
"access": "public"
|
|
38
|
+
}
|
|
39
|
+
}
|