q5 4.5.0 → 4.5.4
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 +3 -1
- package/deno.json +2 -1
- package/package.json +28 -5
- package/q5.d.ts +3 -1
- package/q5.js +178 -82
- package/q5.min.js +2 -1
- package/q5.min.js.map +1 -0
- package/.prettierignore +0 -2
- package/teach/accessibility.html +0 -503
package/teach/accessibility.html
DELETED
|
@@ -1,503 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
-
<title>q5 Accessibility</title>
|
|
8
|
-
<link rel="icon" href="/q5js_logo.avif">
|
|
9
|
-
<link rel="stylesheet" href="/home/index.css">
|
|
10
|
-
<meta name="description" content="Accessibility Report for q5.js">
|
|
11
|
-
<style>
|
|
12
|
-
:root {
|
|
13
|
-
--pass: #28a745;
|
|
14
|
-
--fail: #dc3545;
|
|
15
|
-
--na: #6c757d;
|
|
16
|
-
--partial: #ffc107;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
main {
|
|
20
|
-
max-width: 900px;
|
|
21
|
-
margin: 100px auto;
|
|
22
|
-
padding: 20px;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
h1 {
|
|
26
|
-
font-size: 2.5em;
|
|
27
|
-
margin-bottom: 20px;
|
|
28
|
-
color: var(--brand-primary);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
h2 {
|
|
32
|
-
margin-top: 40px;
|
|
33
|
-
margin-bottom: 20px;
|
|
34
|
-
padding-bottom: 10px;
|
|
35
|
-
border-bottom: 2px solid var(--brand-primary);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
h3 {
|
|
39
|
-
margin-top: 30px;
|
|
40
|
-
color: var(--primary);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
p,
|
|
44
|
-
li {
|
|
45
|
-
font-size: 1.1rem;
|
|
46
|
-
line-height: 1.6;
|
|
47
|
-
color: var(--primary);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
a {
|
|
51
|
-
color: var(--blue1);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.dark a {
|
|
55
|
-
color: var(--blue);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
ul {
|
|
59
|
-
margin-left: 20px;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
table {
|
|
63
|
-
width: 100%;
|
|
64
|
-
border-collapse: collapse;
|
|
65
|
-
margin-top: 20px;
|
|
66
|
-
font-size: 0.95rem;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
th,
|
|
70
|
-
td {
|
|
71
|
-
padding: 12px;
|
|
72
|
-
text-align: left;
|
|
73
|
-
border-bottom: 1px solid var(--primary);
|
|
74
|
-
vertical-align: top;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
th {
|
|
78
|
-
background-color: rgba(128, 128, 128, 0.1);
|
|
79
|
-
font-weight: bold;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
tr:hover {
|
|
83
|
-
background-color: rgba(128, 128, 128, 0.05);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.level-badge {
|
|
87
|
-
display: inline-block;
|
|
88
|
-
padding: 2px 6px;
|
|
89
|
-
border-radius: 4px;
|
|
90
|
-
font-size: 0.8em;
|
|
91
|
-
font-weight: bold;
|
|
92
|
-
background: rgba(128, 128, 128, 0.2);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/* Status Text Colors */
|
|
96
|
-
.status-pass {
|
|
97
|
-
color: var(--pass);
|
|
98
|
-
font-weight: bold;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.status-fail {
|
|
102
|
-
color: var(--fail);
|
|
103
|
-
font-weight: bold;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.status-na {
|
|
107
|
-
color: var(--na);
|
|
108
|
-
font-style: italic;
|
|
109
|
-
}
|
|
110
|
-
</style>
|
|
111
|
-
</head>
|
|
112
|
-
|
|
113
|
-
<body class="dark">
|
|
114
|
-
<main>
|
|
115
|
-
<h1>Accessibility Report</h1>
|
|
116
|
-
|
|
117
|
-
<p>The q5.js project is committed to ensuring digital accessibility for people with disabilities. We are continually
|
|
118
|
-
improving the user experience for everyone, and applying the relevant accessibility standards.</p>
|
|
119
|
-
|
|
120
|
-
<h2>Conformance Status</h2>
|
|
121
|
-
<p>The <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines (WCAG)</a>
|
|
122
|
-
defines requirements for designers and developers to improve accessibility for people with disabilities. It
|
|
123
|
-
defines three levels of conformance: Level A, Level AA, and Level AAA.</p>
|
|
124
|
-
<p>q5.js is conformant with WCAG 2.1 level AA, with the exception of dynamic HTML5 canvas content.</p>
|
|
125
|
-
|
|
126
|
-
<h2>Keyboard-Only Navigation</h2>
|
|
127
|
-
<p>q5js.org can be accessed entirely through keyboard-only navigation.</p>
|
|
128
|
-
<p>
|
|
129
|
-
<p>Note that the interactive code editors on the Learn pages trap the <code>Tab</code> key, which is used for
|
|
130
|
-
indentation. To exit the editor and move to the next focusable element, press <code>Esc</code>. To move to the
|
|
131
|
-
previous element, press <code>Shift + Tab</code>.</p>
|
|
132
|
-
</p>
|
|
133
|
-
|
|
134
|
-
<h2>Compatibility with Browsers and Assistive Technology</h2>
|
|
135
|
-
<p>Accessibility of q5 relies on a web browser to work with the particular combination of assistive
|
|
136
|
-
technologies or plugins installed on your computer</p>
|
|
137
|
-
<p>q5 is designed to be compatible with Modern web browsers (Google Chrome, Firefox, Safari, Edge) on
|
|
138
|
-
Windows,
|
|
139
|
-
macOS, and Linux.</p>
|
|
140
|
-
<h2>Limitations and Alternatives</h2>
|
|
141
|
-
<p>Despite our best efforts to ensure accessibility of q5.js, there may be some limitations. Below is a description
|
|
142
|
-
of known limitations and potential solutions. Please contact us if you observe an issue not listed below.</p>
|
|
143
|
-
|
|
144
|
-
<h3>Known Limitations for q5.js:</h3>
|
|
145
|
-
<ul>
|
|
146
|
-
<li><strong>Canvas-based content</strong>: q5.js renders graphics to an HTML5 Canvas. Canvas content is just
|
|
147
|
-
pixels and is not inherently accessible to screen readers.
|
|
148
|
-
<ul>
|
|
149
|
-
<li><strong>Alternative</strong>: Users creating sketches with q5.js are encouraged to provide text
|
|
150
|
-
alternatives or HTML-based UI controls where appropriate.</li>
|
|
151
|
-
</ul>
|
|
152
|
-
</li>
|
|
153
|
-
</ul>
|
|
154
|
-
|
|
155
|
-
<h2>Assessment Approach</h2>
|
|
156
|
-
<p>The q5.js team assessed the accessibility of q5.js by the following approaches:</p>
|
|
157
|
-
<ul>
|
|
158
|
-
<li>Self-evaluation</li>
|
|
159
|
-
</ul>
|
|
160
|
-
|
|
161
|
-
<h2>Review Feedback</h2>
|
|
162
|
-
<p>We welcome your feedback on the accessibility of q5.js. Please let us know if you encounter accessibility
|
|
163
|
-
barriers on q5.js:</p>
|
|
164
|
-
<ul>
|
|
165
|
-
<li><a href="https://github.com/q5js/q5.js/issues">GitHub Issues</a></li>
|
|
166
|
-
<li><a href="https://discord.gg/QuxQYwGWuB">Join our Discord</a></li>
|
|
167
|
-
</ul>
|
|
168
|
-
<p>This report was created on January 11, 2026.</p>
|
|
169
|
-
|
|
170
|
-
<h2>WCAG 2.1 Checklist</h2>
|
|
171
|
-
<p>The following table lists the Success Criteria from the Web Content Accessibility Guidelines (WCAG) 2.1. This
|
|
172
|
-
checklist is used to evaluate the conformity of the q5.js website and documentation.</p>
|
|
173
|
-
|
|
174
|
-
<h3>1. Perceivable</h3>
|
|
175
|
-
<p>Information and user interface components must be presentable to users in ways they can perceive.</p>
|
|
176
|
-
<table>
|
|
177
|
-
<thead>
|
|
178
|
-
<tr>
|
|
179
|
-
<th style="width: 35%;">Success Criterion</th>
|
|
180
|
-
<th style="width: 10%;">Level</th>
|
|
181
|
-
<th style="width: 55%;">Notes for q5.js</th>
|
|
182
|
-
</tr>
|
|
183
|
-
</thead>
|
|
184
|
-
<tbody>
|
|
185
|
-
<tr>
|
|
186
|
-
<td><strong>1.1.1 Non-text Content</strong><br>All non-text content has a text alternative.</td>
|
|
187
|
-
<td><span class="level-badge">A</span></td>
|
|
188
|
-
<td>ensure alt text on all logos and example images.</td>
|
|
189
|
-
</tr>
|
|
190
|
-
<tr>
|
|
191
|
-
<td><strong>1.2.1 Audio-only and Video-only (Prerecorded)</strong><br>Alternatives provided for time-based
|
|
192
|
-
media.</td>
|
|
193
|
-
<td><span class="level-badge">A</span></td>
|
|
194
|
-
<td>N/A (No audio/video content currently hosted).</td>
|
|
195
|
-
</tr>
|
|
196
|
-
<tr>
|
|
197
|
-
<td><strong>1.2.2 Captions (Prerecorded)</strong><br>Captions for all prerecorded audio content.</td>
|
|
198
|
-
<td><span class="level-badge">A</span></td>
|
|
199
|
-
<td>N/A</td>
|
|
200
|
-
</tr>
|
|
201
|
-
<tr>
|
|
202
|
-
<td><strong>1.2.3 Audio Description or Media Alternative</strong><br>Provided for synchronized media.</td>
|
|
203
|
-
<td><span class="level-badge">A</span></td>
|
|
204
|
-
<td>N/A</td>
|
|
205
|
-
</tr>
|
|
206
|
-
<tr>
|
|
207
|
-
<td><strong>1.2.4 Captions (Live)</strong><br>Captions for live audio content.</td>
|
|
208
|
-
<td><span class="level-badge">AA</span></td>
|
|
209
|
-
<td>N/A</td>
|
|
210
|
-
</tr>
|
|
211
|
-
<tr>
|
|
212
|
-
<td><strong>1.2.5 Audio Description (Prerecorded)</strong><br>Provided for all prerecorded video content.</td>
|
|
213
|
-
<td><span class="level-badge">AA</span></td>
|
|
214
|
-
<td>N/A</td>
|
|
215
|
-
</tr>
|
|
216
|
-
<tr>
|
|
217
|
-
<td><strong>1.3.1 Info and Relationships</strong><br>Info and structure can be programmatically determined.
|
|
218
|
-
</td>
|
|
219
|
-
<td><span class="level-badge">A</span></td>
|
|
220
|
-
<td>Use semantic HTML (header, nav, main, footer).</td>
|
|
221
|
-
</tr>
|
|
222
|
-
<tr>
|
|
223
|
-
<td><strong>1.3.2 Meaningful Sequence</strong><br>Correct reading sequence programmatically determined.</td>
|
|
224
|
-
<td><span class="level-badge">A</span></td>
|
|
225
|
-
<td>DOM order matches visual order.</td>
|
|
226
|
-
</tr>
|
|
227
|
-
<tr>
|
|
228
|
-
<td><strong>1.3.3 Sensory Characteristics</strong><br>Instructions don't rely solely on shape, size, etc.</td>
|
|
229
|
-
<td><span class="level-badge">A</span></td>
|
|
230
|
-
<td>Ensure instructions are explicit.</td>
|
|
231
|
-
</tr>
|
|
232
|
-
<tr>
|
|
233
|
-
<td><strong>1.3.4 Orientation</strong><br>Not restricted to a single display orientation.</td>
|
|
234
|
-
<td><span class="level-badge">AA</span></td>
|
|
235
|
-
<td>Responsive design supports both.</td>
|
|
236
|
-
</tr>
|
|
237
|
-
<tr>
|
|
238
|
-
<td><strong>1.3.5 Identify Input Purpose</strong><br>Purpose of input fields can be programmatically
|
|
239
|
-
determined.</td>
|
|
240
|
-
<td><span class="level-badge">AA</span></td>
|
|
241
|
-
<td>Use autocomplete attributes on forms if added.</td>
|
|
242
|
-
</tr>
|
|
243
|
-
<tr>
|
|
244
|
-
<td><strong>1.4.1 Use of Color</strong><br>Color is not the only means of conveying information.</td>
|
|
245
|
-
<td><span class="level-badge">A</span></td>
|
|
246
|
-
<td>Check links vs text, and syntax highlighting.</td>
|
|
247
|
-
</tr>
|
|
248
|
-
<tr>
|
|
249
|
-
<td><strong>1.4.2 Audio Control</strong><br>Mechanism to pause/stop auto-playing audio > 3s.</td>
|
|
250
|
-
<td><span class="level-badge">A</span></td>
|
|
251
|
-
<td>N/A</td>
|
|
252
|
-
</tr>
|
|
253
|
-
<tr>
|
|
254
|
-
<td><strong>1.4.3 Contrast (Minimum)</strong><br>Text has contrast ratio of at least 4.5:1.</td>
|
|
255
|
-
<td><span class="level-badge">AA</span></td>
|
|
256
|
-
<td>Verify theme colors in dark/light modes.</td>
|
|
257
|
-
</tr>
|
|
258
|
-
<tr>
|
|
259
|
-
<td><strong>1.4.4 Resize Text</strong><br>Text can be resized to 200% without loss of content.</td>
|
|
260
|
-
<td><span class="level-badge">AA</span></td>
|
|
261
|
-
<td>Ensure relative units (rem/em) or responsive layout.</td>
|
|
262
|
-
</tr>
|
|
263
|
-
<tr>
|
|
264
|
-
<td><strong>1.4.5 Images of Text</strong><br>Text is used to convey information rather than images of text.
|
|
265
|
-
</td>
|
|
266
|
-
<td><span class="level-badge">AA</span></td>
|
|
267
|
-
<td>Avoid baking text into images.</td>
|
|
268
|
-
</tr>
|
|
269
|
-
<tr>
|
|
270
|
-
<td><strong>1.4.10 Reflow</strong><br>Content reflows without 2D scrolling at 400% zoom.</td>
|
|
271
|
-
<td><span class="level-badge">AA</span></td>
|
|
272
|
-
<td>Responsive layout check.</td>
|
|
273
|
-
</tr>
|
|
274
|
-
<tr>
|
|
275
|
-
<td><strong>1.4.11 Non-text Contrast</strong><br>UI components/graphics have 3:1 contrast.</td>
|
|
276
|
-
<td><span class="level-badge">AA</span></td>
|
|
277
|
-
<td>Check button borders and icons.</td>
|
|
278
|
-
</tr>
|
|
279
|
-
<tr>
|
|
280
|
-
<td><strong>1.4.12 Text Spacing</strong><br>No loss of content when text spacing properties are changed.</td>
|
|
281
|
-
<td><span class="level-badge">AA</span></td>
|
|
282
|
-
<td>CSS line-height check.</td>
|
|
283
|
-
</tr>
|
|
284
|
-
<tr>
|
|
285
|
-
<td><strong>1.4.13 Content on Hover or Focus</strong><br>Dismissible, hoverable, and persistent.</td>
|
|
286
|
-
<td><span class="level-badge">AA</span></td>
|
|
287
|
-
<td>Check tooltips and menus.</td>
|
|
288
|
-
</tr>
|
|
289
|
-
</tbody>
|
|
290
|
-
</table>
|
|
291
|
-
|
|
292
|
-
<h3>2. Operable</h3>
|
|
293
|
-
<p>User interface components and navigation must be operable.</p>
|
|
294
|
-
<table>
|
|
295
|
-
<thead>
|
|
296
|
-
<tr>
|
|
297
|
-
<th style="width: 35%;">Success Criterion</th>
|
|
298
|
-
<th style="width: 10%;">Level</th>
|
|
299
|
-
<th style="width: 55%;">Notes for q5.js</th>
|
|
300
|
-
</tr>
|
|
301
|
-
</thead>
|
|
302
|
-
<tbody>
|
|
303
|
-
<tr>
|
|
304
|
-
<td><strong>2.1.1 Keyboard</strong><br>All functionality operable via keyboard.</td>
|
|
305
|
-
<td><span class="level-badge">A</span></td>
|
|
306
|
-
<td>Ensure nav and interactive sketches are keyboard reachable where possible.</td>
|
|
307
|
-
</tr>
|
|
308
|
-
<tr>
|
|
309
|
-
<td><strong>2.1.2 No Keyboard Trap</strong><br>Focus can be moved away from components.</td>
|
|
310
|
-
<td><span class="level-badge">A</span></td>
|
|
311
|
-
<td>Critical for embedded sketches.</td>
|
|
312
|
-
</tr>
|
|
313
|
-
<tr>
|
|
314
|
-
<td><strong>2.1.4 Character Key Shortcuts</strong><br>Single character shortcuts can be turned off/remapped.
|
|
315
|
-
</td>
|
|
316
|
-
<td><span class="level-badge">A</span></td>
|
|
317
|
-
<td>N/A (No custom shortcuts implemented).</td>
|
|
318
|
-
</tr>
|
|
319
|
-
<tr>
|
|
320
|
-
<td><strong>2.2.1 Timing Adjustable</strong><br>Users can turn off, adjust, or extend time limits.</td>
|
|
321
|
-
<td><span class="level-badge">A</span></td>
|
|
322
|
-
<td>N/A</td>
|
|
323
|
-
</tr>
|
|
324
|
-
<tr>
|
|
325
|
-
<td><strong>2.2.2 Pause, Stop, Hide</strong><br>Mechanism to pause moving/blinking content.</td>
|
|
326
|
-
<td><span class="level-badge">A</span></td>
|
|
327
|
-
<td>Animations on home page should respect user preference or have toggle.</td>
|
|
328
|
-
</tr>
|
|
329
|
-
<tr>
|
|
330
|
-
<td><strong>2.3.1 Three Flashes or Below Threshold</strong><br>No content flashes more than 3 times/sec.</td>
|
|
331
|
-
<td><span class="level-badge">A</span></td>
|
|
332
|
-
<td>Avoid flashing demos.</td>
|
|
333
|
-
</tr>
|
|
334
|
-
<tr>
|
|
335
|
-
<td><strong>2.4.1 Bypass Blocks</strong><br>Mechanism to bypass repeated blocks (Skip to Content).</td>
|
|
336
|
-
<td><span class="level-badge">A</span></td>
|
|
337
|
-
<td>Implement "Skip to Main Content" link.</td>
|
|
338
|
-
</tr>
|
|
339
|
-
<tr>
|
|
340
|
-
<td><strong>2.4.2 Page Titled</strong><br>Web pages have titles that describe topic/purpose.</td>
|
|
341
|
-
<td><span class="level-badge">A</span></td>
|
|
342
|
-
<td>Check <title> tags.</td>
|
|
343
|
-
</tr>
|
|
344
|
-
<tr>
|
|
345
|
-
<td><strong>2.4.3 Focus Order</strong><br>Focusable components receive focus in meaningful order.</td>
|
|
346
|
-
<td><span class="level-badge">A</span></td>
|
|
347
|
-
<td>Logical tab order.</td>
|
|
348
|
-
</tr>
|
|
349
|
-
<tr>
|
|
350
|
-
<td><strong>2.4.4 Link Purpose (In Context)</strong><br>Purpose of link determined from link text + context.
|
|
351
|
-
</td>
|
|
352
|
-
<td><span class="level-badge">A</span></td>
|
|
353
|
-
<td>Use descriptive link text (avoid "click here").</td>
|
|
354
|
-
</tr>
|
|
355
|
-
<tr>
|
|
356
|
-
<td><strong>2.4.5 Multiple Ways</strong><br>More than one way to locate a web page.</td>
|
|
357
|
-
<td><span class="level-badge">AA</span></td>
|
|
358
|
-
<td>Navigation menu + Sitemap/Search/Links.</td>
|
|
359
|
-
</tr>
|
|
360
|
-
<tr>
|
|
361
|
-
<td><strong>2.4.6 Headings and Labels</strong><br>Headings and labels describe topic or purpose.</td>
|
|
362
|
-
<td><span class="level-badge">AA</span></td>
|
|
363
|
-
<td>Clear section headings.</td>
|
|
364
|
-
</tr>
|
|
365
|
-
<tr>
|
|
366
|
-
<td><strong>2.4.7 Focus Visible</strong><br>Keyboard focus indicator is visible.</td>
|
|
367
|
-
<td><span class="level-badge">AA</span></td>
|
|
368
|
-
<td>Ensure CSS outline is present on focus.</td>
|
|
369
|
-
</tr>
|
|
370
|
-
<tr>
|
|
371
|
-
<td><strong>2.5.1 Pointer Gestures</strong><br>No multipoint or path-based gestures required.</td>
|
|
372
|
-
<td><span class="level-badge">A</span></td>
|
|
373
|
-
<td>Simple clicks/taps only for site UI.</td>
|
|
374
|
-
</tr>
|
|
375
|
-
<tr>
|
|
376
|
-
<td><strong>2.5.2 Pointer Cancellation</strong><br>Down-event doesn't execute function (use up-event).</td>
|
|
377
|
-
<td><span class="level-badge">A</span></td>
|
|
378
|
-
<td>Standard button behavior.</td>
|
|
379
|
-
</tr>
|
|
380
|
-
<tr>
|
|
381
|
-
<td><strong>2.5.3 Label in Name</strong><br>Accessible name contains visible label text.</td>
|
|
382
|
-
<td><span class="level-badge">A</span></td>
|
|
383
|
-
<td>Verify aria-label matches text.</td>
|
|
384
|
-
</tr>
|
|
385
|
-
<tr>
|
|
386
|
-
<td><strong>2.5.4 Motion Actuation</strong><br>Functionality not dependent on device motion.</td>
|
|
387
|
-
<td><span class="level-badge">A</span></td>
|
|
388
|
-
<td>N/A</td>
|
|
389
|
-
</tr>
|
|
390
|
-
</tbody>
|
|
391
|
-
</table>
|
|
392
|
-
|
|
393
|
-
<h3>3. Understandable</h3>
|
|
394
|
-
<p>Information and the operation of the user interface must be understandable.</p>
|
|
395
|
-
<table>
|
|
396
|
-
<thead>
|
|
397
|
-
<tr>
|
|
398
|
-
<th style="width: 35%;">Success Criterion</th>
|
|
399
|
-
<th style="width: 10%;">Level</th>
|
|
400
|
-
<th style="width: 55%;">Notes for q5.js</th>
|
|
401
|
-
</tr>
|
|
402
|
-
</thead>
|
|
403
|
-
<tbody>
|
|
404
|
-
<tr>
|
|
405
|
-
<td><strong>3.1.1 Language of Page</strong><br>Default language programmatically determined.</td>
|
|
406
|
-
<td><span class="level-badge">A</span></td>
|
|
407
|
-
<td>Set <html lang="en">.</td>
|
|
408
|
-
</tr>
|
|
409
|
-
<tr>
|
|
410
|
-
<td><strong>3.1.2 Language of Parts</strong><br>Language of passages programmatically determined.</td>
|
|
411
|
-
<td><span class="level-badge">AA</span></td>
|
|
412
|
-
<td>Mark up language changes if any.</td>
|
|
413
|
-
</tr>
|
|
414
|
-
<tr>
|
|
415
|
-
<td><strong>3.2.1 On Focus</strong><br>Focus does not initiate context change.</td>
|
|
416
|
-
<td><span class="level-badge">A</span></td>
|
|
417
|
-
<td>No auto-submit on focus.</td>
|
|
418
|
-
</tr>
|
|
419
|
-
<tr>
|
|
420
|
-
<td><strong>3.2.2 On Input</strong><br>Input does not initiate context change.</td>
|
|
421
|
-
<td><span class="level-badge">A</span></td>
|
|
422
|
-
<td>No auto-submit on selection change without warning.</td>
|
|
423
|
-
</tr>
|
|
424
|
-
<tr>
|
|
425
|
-
<td><strong>3.2.3 Consistent Navigation</strong><br>Navigation mechanisms repeated consistently.</td>
|
|
426
|
-
<td><span class="level-badge">AA</span></td>
|
|
427
|
-
<td>Keep Nav bar consistent.</td>
|
|
428
|
-
</tr>
|
|
429
|
-
<tr>
|
|
430
|
-
<td><strong>3.2.4 Consistent Identification</strong><br>Components with same functionality identified
|
|
431
|
-
consistently.</td>
|
|
432
|
-
<td><span class="level-badge">AA</span></td>
|
|
433
|
-
<td>Consistent iconography.</td>
|
|
434
|
-
</tr>
|
|
435
|
-
<tr>
|
|
436
|
-
<td><strong>3.3.1 Error Identification</strong><br>Input errors identified and described in text.</td>
|
|
437
|
-
<td><span class="level-badge">A</span></td>
|
|
438
|
-
<td>For search or forms.</td>
|
|
439
|
-
</tr>
|
|
440
|
-
<tr>
|
|
441
|
-
<td><strong>3.3.2 Labels or Instructions</strong><br>Labels or instructions provided when input required.</td>
|
|
442
|
-
<td><span class="level-badge">A</span></td>
|
|
443
|
-
<td>Form labels.</td>
|
|
444
|
-
</tr>
|
|
445
|
-
<tr>
|
|
446
|
-
<td><strong>3.3.3 Error Suggestion</strong><br>Suggestions for correction provided.</td>
|
|
447
|
-
<td><span class="level-badge">AA</span></td>
|
|
448
|
-
<td>N/A (Limited forms).</td>
|
|
449
|
-
</tr>
|
|
450
|
-
<tr>
|
|
451
|
-
<td><strong>3.3.4 Error Prevention (Legal, Financial, Data)</strong><br>Reversible, checked, or confirmed.
|
|
452
|
-
</td>
|
|
453
|
-
<td><span class="level-badge">AA</span></td>
|
|
454
|
-
<td>N/A</td>
|
|
455
|
-
</tr>
|
|
456
|
-
</tbody>
|
|
457
|
-
</table>
|
|
458
|
-
|
|
459
|
-
<h3>4. Robust</h3>
|
|
460
|
-
<p>Content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive
|
|
461
|
-
technologies.</p>
|
|
462
|
-
<table>
|
|
463
|
-
<thead>
|
|
464
|
-
<tr>
|
|
465
|
-
<th style="width: 35%;">Success Criterion</th>
|
|
466
|
-
<th style="width: 10%;">Level</th>
|
|
467
|
-
<th style="width: 55%;">Notes for q5.js</th>
|
|
468
|
-
</tr>
|
|
469
|
-
</thead>
|
|
470
|
-
<tbody>
|
|
471
|
-
<tr>
|
|
472
|
-
<td><strong>4.1.1 Parsing</strong><br>Elements utilize complete start and end tags, nested properly, unique
|
|
473
|
-
IDs.</td>
|
|
474
|
-
<td><span class="level-badge">A</span></td>
|
|
475
|
-
<td>Valid HTML checking.</td>
|
|
476
|
-
</tr>
|
|
477
|
-
<tr>
|
|
478
|
-
<td><strong>4.1.2 Name, Role, Value</strong><br>Name/Role/Value programmatically determined for UI components.
|
|
479
|
-
</td>
|
|
480
|
-
<td><span class="level-badge">A</span></td>
|
|
481
|
-
<td>Ensure custom controls use ARIA if standard HTML insufficient.</td>
|
|
482
|
-
</tr>
|
|
483
|
-
<tr>
|
|
484
|
-
<td><strong>4.1.3 Status Messages</strong><br>Status messages programmatically determined without focus.</td>
|
|
485
|
-
<td><span class="level-badge">AA</span></td>
|
|
486
|
-
<td>Use aria-live for dynamic updates.</td>
|
|
487
|
-
</tr>
|
|
488
|
-
</tbody>
|
|
489
|
-
</table>
|
|
490
|
-
|
|
491
|
-
</main>
|
|
492
|
-
|
|
493
|
-
<footer>
|
|
494
|
-
<div
|
|
495
|
-
style="text-align: center; padding: 20px; opacity: 0.7; border-top: 1px solid var(--primary); margin-top: 50px;">
|
|
496
|
-
<p>q5js.org was created by the q5 team. Copyright 2024-2025.</p>
|
|
497
|
-
</div>
|
|
498
|
-
</footer>
|
|
499
|
-
|
|
500
|
-
<script src="home/theme.js"></script>
|
|
501
|
-
</body>
|
|
502
|
-
|
|
503
|
-
</html>
|