@longsightgroup/qti3-a11y 0.1.2 → 0.2.1
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/dist/index.js +31 -6
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +33 -6
package/dist/index.js
CHANGED
|
@@ -76,7 +76,7 @@ export const manualAssistiveTechnologyScripts = [
|
|
|
76
76
|
expectedResults: [
|
|
77
77
|
"JAWS announces a stable role and name for every operable control.",
|
|
78
78
|
"Validation and feedback are reachable after scoring.",
|
|
79
|
-
"Graphic, point, drawing
|
|
79
|
+
"Graphic, point, and drawing fixtures expose keyboard-operable controls; PCI fixtures expose a focusable host for a keyboard-operable runtime.",
|
|
80
80
|
"The item can be completed without hidden instructions or product-specific UI.",
|
|
81
81
|
],
|
|
82
82
|
},
|
|
@@ -187,7 +187,7 @@ function contractForInteraction(interactionType) {
|
|
|
187
187
|
requiredStates: ["aria-pressed", "aria-invalid", "aria-describedby"],
|
|
188
188
|
};
|
|
189
189
|
}
|
|
190
|
-
if (interactionType === "selectPoint"
|
|
190
|
+
if (interactionType === "selectPoint") {
|
|
191
191
|
return {
|
|
192
192
|
...base,
|
|
193
193
|
primaryRole: "button",
|
|
@@ -204,6 +204,24 @@ function contractForInteraction(interactionType) {
|
|
|
204
204
|
],
|
|
205
205
|
};
|
|
206
206
|
}
|
|
207
|
+
if (interactionType === "positionObject") {
|
|
208
|
+
return {
|
|
209
|
+
...base,
|
|
210
|
+
primaryRole: "button",
|
|
211
|
+
focusStrategy: "Focus lands on the placement stage and movable object controls.",
|
|
212
|
+
keyboardModel: [
|
|
213
|
+
"Unanswered objects start unplaced outside the stage.",
|
|
214
|
+
"Arrow keys place or move the selected object by one unit.",
|
|
215
|
+
"Shift plus arrow keys move by ten units.",
|
|
216
|
+
"Enter or Space commits the selected coordinate.",
|
|
217
|
+
],
|
|
218
|
+
requiredStates: [
|
|
219
|
+
"unplaced state or selected coordinate in accessible name",
|
|
220
|
+
"aria-invalid",
|
|
221
|
+
"aria-describedby",
|
|
222
|
+
],
|
|
223
|
+
};
|
|
224
|
+
}
|
|
207
225
|
if (interactionType === "slider") {
|
|
208
226
|
return {
|
|
209
227
|
...base,
|
|
@@ -258,12 +276,19 @@ function contractForInteraction(interactionType) {
|
|
|
258
276
|
return {
|
|
259
277
|
...base,
|
|
260
278
|
primaryRole: "group",
|
|
261
|
-
focusStrategy: "Focus enters the portable custom host
|
|
279
|
+
focusStrategy: "Focus enters the portable custom host; the host-provided PCI runtime owns focus routing for internal response controls.",
|
|
262
280
|
keyboardModel: [
|
|
263
|
-
"The
|
|
264
|
-
"The
|
|
281
|
+
"The qti3-ts player exposes a focusable portable custom host and mount event.",
|
|
282
|
+
"The host-provided PCI runtime must expose keyboard-operable response controls.",
|
|
283
|
+
"The PCI runtime must expose accessible names, roles, values, and selected or invalid states for its rendered controls.",
|
|
284
|
+
"Response, validity, and suspend/resume state changes are reported through the portable custom interaction event contract.",
|
|
285
|
+
],
|
|
286
|
+
requiredStates: [
|
|
287
|
+
"host metadata",
|
|
288
|
+
"host accessible name",
|
|
289
|
+
"runtime accessible name, role, and state",
|
|
290
|
+
"runtime validation bridge",
|
|
265
291
|
],
|
|
266
|
-
requiredStates: ["host metadata", "aria-invalid", "aria-describedby"],
|
|
267
292
|
};
|
|
268
293
|
}
|
|
269
294
|
return {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,2BAA2B,CAAC;AAkCxF,MAAM,CAAC,MAAM,aAAa,GAA8B,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACzF,sBAAsB,CAAC,OAAO,CAAC,eAAqC,CAAC,CACtE,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA8B,aAAa,CAAC,GAAG,CAClF,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACb,eAAe,EAAE,QAAQ,CAAC,eAAe;IACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;IACjC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;IAC3C,aAAa,EAAE,QAAQ,CAAC,aAAa;IACrC,KAAK,EAAE;QACL,SAAS,EAAE,iBAAiB,CAAC,QAAQ,CAAC;QACtC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC;KACjC;CACF,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAsC;IACjF;QACE,mBAAmB,EAAE,WAAW;QAChC,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,oBAAoB;QAC7B,SAAS,EAAE,kBAAkB,EAAE;QAC/B,KAAK,EAAE;YACL,yCAAyC;YACzC,uDAAuD;YACvD,wDAAwD;SACzD;QACD,SAAS,EAAE;YACT,sFAAsF;YACtF,mGAAmG;YACnG,qDAAqD;YACrD,+DAA+D;SAChE;QACD,eAAe,EAAE;YACf,8DAA8D;YAC9D,iFAAiF;YACjF,iFAAiF;YACjF,2DAA2D;SAC5D;KACF;IACD;QACE,mBAAmB,EAAE,MAAM;QAC3B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,kBAAkB,EAAE;QAC/B,KAAK,EAAE;YACL,8FAA8F;YAC9F,8DAA8D;YAC9D,wDAAwD;SACzD;QACD,SAAS,EAAE;YACT,uEAAuE;YACvE,mGAAmG;YACnG,6EAA6E;YAC7E,yFAAyF;SAC1F;QACD,eAAe,EAAE;YACf,uEAAuE;YACvE,0EAA0E;YAC1E,iFAAiF;YACjF,6CAA6C;SAC9C;KACF;IACD;QACE,mBAAmB,EAAE,MAAM;QAC3B,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,kBAAkB,EAAE;QAC/B,KAAK,EAAE;YACL,8FAA8F;YAC9F,+CAA+C;YAC/C,wDAAwD;SACzD;QACD,SAAS,EAAE;YACT,iEAAiE;YACjE,wFAAwF;YACxF,oDAAoD;YACpD,2FAA2F;SAC5F;QACD,eAAe,EAAE;YACf,mEAAmE;YACnE,sDAAsD;YACtD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@longsightgroup/qti3-a11y",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Accessibility contracts and proof metadata for qti3 QTI 3 item interactions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"a11y",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"registry": "https://registry.npmjs.org"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@longsightgroup/qti3-core": "0.1
|
|
48
|
+
"@longsightgroup/qti3-core": "0.2.1"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {}
|
|
51
51
|
}
|
package/src/index.ts
CHANGED
|
@@ -115,7 +115,7 @@ export const manualAssistiveTechnologyScripts: ManualAssistiveTechnologyScript[]
|
|
|
115
115
|
expectedResults: [
|
|
116
116
|
"JAWS announces a stable role and name for every operable control.",
|
|
117
117
|
"Validation and feedback are reachable after scoring.",
|
|
118
|
-
"Graphic, point, drawing
|
|
118
|
+
"Graphic, point, and drawing fixtures expose keyboard-operable controls; PCI fixtures expose a focusable host for a keyboard-operable runtime.",
|
|
119
119
|
"The item can be completed without hidden instructions or product-specific UI.",
|
|
120
120
|
],
|
|
121
121
|
},
|
|
@@ -238,7 +238,7 @@ function contractForInteraction(interactionType: QtiInteractionType): Interactio
|
|
|
238
238
|
};
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
-
if (interactionType === "selectPoint"
|
|
241
|
+
if (interactionType === "selectPoint") {
|
|
242
242
|
return {
|
|
243
243
|
...base,
|
|
244
244
|
primaryRole: "button",
|
|
@@ -256,6 +256,25 @@ function contractForInteraction(interactionType: QtiInteractionType): Interactio
|
|
|
256
256
|
};
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
+
if (interactionType === "positionObject") {
|
|
260
|
+
return {
|
|
261
|
+
...base,
|
|
262
|
+
primaryRole: "button",
|
|
263
|
+
focusStrategy: "Focus lands on the placement stage and movable object controls.",
|
|
264
|
+
keyboardModel: [
|
|
265
|
+
"Unanswered objects start unplaced outside the stage.",
|
|
266
|
+
"Arrow keys place or move the selected object by one unit.",
|
|
267
|
+
"Shift plus arrow keys move by ten units.",
|
|
268
|
+
"Enter or Space commits the selected coordinate.",
|
|
269
|
+
],
|
|
270
|
+
requiredStates: [
|
|
271
|
+
"unplaced state or selected coordinate in accessible name",
|
|
272
|
+
"aria-invalid",
|
|
273
|
+
"aria-describedby",
|
|
274
|
+
],
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
|
|
259
278
|
if (interactionType === "slider") {
|
|
260
279
|
return {
|
|
261
280
|
...base,
|
|
@@ -315,12 +334,20 @@ function contractForInteraction(interactionType: QtiInteractionType): Interactio
|
|
|
315
334
|
return {
|
|
316
335
|
...base,
|
|
317
336
|
primaryRole: "group",
|
|
318
|
-
focusStrategy:
|
|
337
|
+
focusStrategy:
|
|
338
|
+
"Focus enters the portable custom host; the host-provided PCI runtime owns focus routing for internal response controls.",
|
|
319
339
|
keyboardModel: [
|
|
320
|
-
"The
|
|
321
|
-
"The
|
|
340
|
+
"The qti3-ts player exposes a focusable portable custom host and mount event.",
|
|
341
|
+
"The host-provided PCI runtime must expose keyboard-operable response controls.",
|
|
342
|
+
"The PCI runtime must expose accessible names, roles, values, and selected or invalid states for its rendered controls.",
|
|
343
|
+
"Response, validity, and suspend/resume state changes are reported through the portable custom interaction event contract.",
|
|
344
|
+
],
|
|
345
|
+
requiredStates: [
|
|
346
|
+
"host metadata",
|
|
347
|
+
"host accessible name",
|
|
348
|
+
"runtime accessible name, role, and state",
|
|
349
|
+
"runtime validation bridge",
|
|
322
350
|
],
|
|
323
|
-
requiredStates: ["host metadata", "aria-invalid", "aria-describedby"],
|
|
324
351
|
};
|
|
325
352
|
}
|
|
326
353
|
|