swwa-mcp 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.
Files changed (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/assets/alt-text-ko.json +7 -0
  4. package/assets/axe-rule-map.json +196 -0
  5. package/assets/certification.json +47 -0
  6. package/assets/kwcag22-checklist.md +123 -0
  7. package/assets/kwcag22.json +1688 -0
  8. package/assets/link-text-ko.json +8 -0
  9. package/assets/mobile-app-2.0.md +38 -0
  10. package/assets/sources.json +68 -0
  11. package/assets/wcag22.json +780 -0
  12. package/bin/swwa-mcp.mjs +15 -0
  13. package/dist/color/contrast.js +175 -0
  14. package/dist/color/contrast.js.map +1 -0
  15. package/dist/data/axe-map.js +32 -0
  16. package/dist/data/axe-map.js.map +1 -0
  17. package/dist/data/certification.js +54 -0
  18. package/dist/data/certification.js.map +1 -0
  19. package/dist/data/kwcag22.js +91 -0
  20. package/dist/data/kwcag22.js.map +1 -0
  21. package/dist/data/loader.js +18 -0
  22. package/dist/data/loader.js.map +1 -0
  23. package/dist/data/sources.js +44 -0
  24. package/dist/data/sources.js.map +1 -0
  25. package/dist/data/wcag22.js +44 -0
  26. package/dist/data/wcag22.js.map +1 -0
  27. package/dist/data/wordlists.js +40 -0
  28. package/dist/data/wordlists.js.map +1 -0
  29. package/dist/engine/browser-detect.js +44 -0
  30. package/dist/engine/browser-detect.js.map +1 -0
  31. package/dist/engine/browser.js +114 -0
  32. package/dist/engine/browser.js.map +1 -0
  33. package/dist/engine/static-worker.js +18 -0
  34. package/dist/engine/static-worker.js.map +1 -0
  35. package/dist/engine/static.js +139 -0
  36. package/dist/engine/static.js.map +1 -0
  37. package/dist/engine/url-guard.js +37 -0
  38. package/dist/engine/url-guard.js.map +1 -0
  39. package/dist/index.js +23 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/messages.js +176 -0
  42. package/dist/messages.js.map +1 -0
  43. package/dist/normalize/axe.js +72 -0
  44. package/dist/normalize/axe.js.map +1 -0
  45. package/dist/normalize/checkpoints.js +47 -0
  46. package/dist/normalize/checkpoints.js.map +1 -0
  47. package/dist/normalize/finding.js +24 -0
  48. package/dist/normalize/finding.js.map +1 -0
  49. package/dist/normalize/locale.js +20 -0
  50. package/dist/normalize/locale.js.map +1 -0
  51. package/dist/prompts/audit-report.js +45 -0
  52. package/dist/prompts/audit-report.js.map +1 -0
  53. package/dist/prompts/review-markup.js +35 -0
  54. package/dist/prompts/review-markup.js.map +1 -0
  55. package/dist/report/cert.js +72 -0
  56. package/dist/report/cert.js.map +1 -0
  57. package/dist/report/format.js +36 -0
  58. package/dist/report/format.js.map +1 -0
  59. package/dist/report/summarize.js +61 -0
  60. package/dist/report/summarize.js.map +1 -0
  61. package/dist/report/types.js +2 -0
  62. package/dist/report/types.js.map +1 -0
  63. package/dist/resources/index.js +69 -0
  64. package/dist/resources/index.js.map +1 -0
  65. package/dist/rules/b/b-focus-order.js +33 -0
  66. package/dist/rules/b/b-focus-order.js.map +1 -0
  67. package/dist/rules/b/b-focus-visible.js +71 -0
  68. package/dist/rules/b/b-focus-visible.js.map +1 -0
  69. package/dist/rules/b/b-keyboard-reachable.js +82 -0
  70. package/dist/rules/b/b-keyboard-reachable.js.map +1 -0
  71. package/dist/rules/b/b-motion-runtime.js +50 -0
  72. package/dist/rules/b/b-motion-runtime.js.map +1 -0
  73. package/dist/rules/b/b-skip-link-works.js +58 -0
  74. package/dist/rules/b/b-skip-link-works.js.map +1 -0
  75. package/dist/rules/b/b-target-size-6mm.js +54 -0
  76. package/dist/rules/b/b-target-size-6mm.js.map +1 -0
  77. package/dist/rules/b/index.js +7 -0
  78. package/dist/rules/b/index.js.map +1 -0
  79. package/dist/rules/k/index.js +33 -0
  80. package/dist/rules/k/index.js.map +1 -0
  81. package/dist/rules/k/k-accesskey.js +20 -0
  82. package/dist/rules/k/k-accesskey.js.map +1 -0
  83. package/dist/rules/k/k-alt-meaningless.js +35 -0
  84. package/dist/rules/k/k-alt-meaningless.js.map +1 -0
  85. package/dist/rules/k/k-autocomplete-missing.js +36 -0
  86. package/dist/rules/k/k-autocomplete-missing.js.map +1 -0
  87. package/dist/rules/k/k-autoplay-media.js +30 -0
  88. package/dist/rules/k/k-autoplay-media.js.map +1 -0
  89. package/dist/rules/k/k-captcha-detect.js +24 -0
  90. package/dist/rules/k/k-captcha-detect.js.map +1 -0
  91. package/dist/rules/k/k-carousel-no-pause.js +33 -0
  92. package/dist/rules/k/k-carousel-no-pause.js.map +1 -0
  93. package/dist/rules/k/k-device-motion.js +22 -0
  94. package/dist/rules/k/k-device-motion.js.map +1 -0
  95. package/dist/rules/k/k-down-event-action.js +19 -0
  96. package/dist/rules/k/k-down-event-action.js.map +1 -0
  97. package/dist/rules/k/k-error-association.js +31 -0
  98. package/dist/rules/k/k-error-association.js.map +1 -0
  99. package/dist/rules/k/k-flash-animation.js +57 -0
  100. package/dist/rules/k/k-flash-animation.js.map +1 -0
  101. package/dist/rules/k/k-gesture-listener.js +30 -0
  102. package/dist/rules/k/k-gesture-listener.js.map +1 -0
  103. package/dist/rules/k/k-iframe-title.js +23 -0
  104. package/dist/rules/k/k-iframe-title.js.map +1 -0
  105. package/dist/rules/k/k-lang-ko-expected.js +29 -0
  106. package/dist/rules/k/k-lang-ko-expected.js.map +1 -0
  107. package/dist/rules/k/k-link-same-text-diff-href.js +41 -0
  108. package/dist/rules/k/k-link-same-text-diff-href.js.map +1 -0
  109. package/dist/rules/k/k-link-text-generic.js +29 -0
  110. package/dist/rules/k/k-link-text-generic.js.map +1 -0
  111. package/dist/rules/k/k-media-track.js +22 -0
  112. package/dist/rules/k/k-media-track.js.map +1 -0
  113. package/dist/rules/k/k-mouse-only-handler.js +27 -0
  114. package/dist/rules/k/k-mouse-only-handler.js.map +1 -0
  115. package/dist/rules/k/k-new-window-notice.js +27 -0
  116. package/dist/rules/k/k-new-window-notice.js.map +1 -0
  117. package/dist/rules/k/k-onload-popup.js +30 -0
  118. package/dist/rules/k/k-onload-popup.js.map +1 -0
  119. package/dist/rules/k/k-outline-none.js +55 -0
  120. package/dist/rules/k/k-outline-none.js.map +1 -0
  121. package/dist/rules/k/k-parse-errors.js +38 -0
  122. package/dist/rules/k/k-parse-errors.js.map +1 -0
  123. package/dist/rules/k/k-placeholder-only-label.js +32 -0
  124. package/dist/rules/k/k-placeholder-only-label.js.map +1 -0
  125. package/dist/rules/k/k-select-onchange.js +19 -0
  126. package/dist/rules/k/k-select-onchange.js.map +1 -0
  127. package/dist/rules/k/k-sensory-instruction.js +32 -0
  128. package/dist/rules/k/k-sensory-instruction.js.map +1 -0
  129. package/dist/rules/k/k-session-timeout-hint.js +29 -0
  130. package/dist/rules/k/k-session-timeout-hint.js.map +1 -0
  131. package/dist/rules/k/k-skip-link-first.js +23 -0
  132. package/dist/rules/k/k-skip-link-first.js.map +1 -0
  133. package/dist/rules/k/k-skip-target-exists.js +28 -0
  134. package/dist/rules/k/k-skip-target-exists.js.map +1 -0
  135. package/dist/rules/k/k-tabindex-positive.js +23 -0
  136. package/dist/rules/k/k-tabindex-positive.js.map +1 -0
  137. package/dist/rules/k/k-table-caption.js +26 -0
  138. package/dist/rules/k/k-table-caption.js.map +1 -0
  139. package/dist/rules/k/k-table-th-missing.js +28 -0
  140. package/dist/rules/k/k-table-th-missing.js.map +1 -0
  141. package/dist/rules/k/k-title-generic.js +35 -0
  142. package/dist/rules/k/k-title-generic.js.map +1 -0
  143. package/dist/rules/registry.js +62 -0
  144. package/dist/rules/registry.js.map +1 -0
  145. package/dist/rules/types.js +2 -0
  146. package/dist/rules/types.js.map +1 -0
  147. package/dist/rules/util/browser-dom.js +50 -0
  148. package/dist/rules/util/browser-dom.js.map +1 -0
  149. package/dist/rules/util/focusable.js +29 -0
  150. package/dist/rules/util/focusable.js.map +1 -0
  151. package/dist/rules/util/selector.js +19 -0
  152. package/dist/rules/util/selector.js.map +1 -0
  153. package/dist/rules/util/text.js +13 -0
  154. package/dist/rules/util/text.js.map +1 -0
  155. package/dist/schema-dialect.js +41 -0
  156. package/dist/schema-dialect.js.map +1 -0
  157. package/dist/server.js +36 -0
  158. package/dist/server.js.map +1 -0
  159. package/dist/tools/audit-url.js +109 -0
  160. package/dist/tools/audit-url.js.map +1 -0
  161. package/dist/tools/browser-status.js +29 -0
  162. package/dist/tools/browser-status.js.map +1 -0
  163. package/dist/tools/cert-readiness.js +76 -0
  164. package/dist/tools/cert-readiness.js.map +1 -0
  165. package/dist/tools/check-contrast.js +58 -0
  166. package/dist/tools/check-contrast.js.map +1 -0
  167. package/dist/tools/check-html.js +88 -0
  168. package/dist/tools/check-html.js.map +1 -0
  169. package/dist/tools/checklist.js +94 -0
  170. package/dist/tools/checklist.js.map +1 -0
  171. package/dist/tools/lookup.js +70 -0
  172. package/dist/tools/lookup.js.map +1 -0
  173. package/dist/tools/report-schema.js +49 -0
  174. package/dist/tools/report-schema.js.map +1 -0
  175. package/package.json +76 -0
@@ -0,0 +1,780 @@
1
+ {
2
+ "criteria": [
3
+ {
4
+ "sc": "1.1.1",
5
+ "name_en": "Non-text Content",
6
+ "name_ko": "텍스트 아닌 콘텐츠",
7
+ "level": "A",
8
+ "since": "2.0",
9
+ "kwcagIds": [
10
+ "5.1.1"
11
+ ]
12
+ },
13
+ {
14
+ "sc": "1.2.1",
15
+ "name_en": "Audio-only and Video-only (Prerecorded)",
16
+ "name_ko": "음성 전용·비디오 전용(사전 녹화)",
17
+ "level": "A",
18
+ "since": "2.0",
19
+ "kwcagIds": [
20
+ "5.2.1"
21
+ ]
22
+ },
23
+ {
24
+ "sc": "1.2.2",
25
+ "name_en": "Captions (Prerecorded)",
26
+ "name_ko": "자막(사전 녹화)",
27
+ "level": "A",
28
+ "since": "2.0",
29
+ "kwcagIds": [
30
+ "5.2.1"
31
+ ]
32
+ },
33
+ {
34
+ "sc": "1.2.3",
35
+ "name_en": "Audio Description or Media Alternative (Prerecorded)",
36
+ "name_ko": "화면 해설 또는 미디어 대체 수단(사전 녹화)",
37
+ "level": "A",
38
+ "since": "2.0",
39
+ "kwcagIds": [
40
+ "5.2.1"
41
+ ]
42
+ },
43
+ {
44
+ "sc": "1.2.4",
45
+ "name_en": "Captions (Live)",
46
+ "name_ko": "자막(실시간)",
47
+ "level": "AA",
48
+ "since": "2.0",
49
+ "kwcagIds": []
50
+ },
51
+ {
52
+ "sc": "1.2.5",
53
+ "name_en": "Audio Description (Prerecorded)",
54
+ "name_ko": "화면 해설(사전 녹화)",
55
+ "level": "AA",
56
+ "since": "2.0",
57
+ "kwcagIds": []
58
+ },
59
+ {
60
+ "sc": "1.3.1",
61
+ "name_en": "Info and Relationships",
62
+ "name_ko": "정보와 관계",
63
+ "level": "A",
64
+ "since": "2.0",
65
+ "kwcagIds": [
66
+ "5.3.1"
67
+ ]
68
+ },
69
+ {
70
+ "sc": "1.3.2",
71
+ "name_en": "Meaningful Sequence",
72
+ "name_ko": "의미 있는 순서",
73
+ "level": "A",
74
+ "since": "2.0",
75
+ "kwcagIds": [
76
+ "5.3.2"
77
+ ]
78
+ },
79
+ {
80
+ "sc": "1.3.3",
81
+ "name_en": "Sensory Characteristics",
82
+ "name_ko": "감각적 특성",
83
+ "level": "A",
84
+ "since": "2.0",
85
+ "kwcagIds": [
86
+ "5.3.3"
87
+ ]
88
+ },
89
+ {
90
+ "sc": "1.3.4",
91
+ "name_en": "Orientation",
92
+ "name_ko": "방향",
93
+ "level": "AA",
94
+ "since": "2.1",
95
+ "kwcagIds": []
96
+ },
97
+ {
98
+ "sc": "1.3.5",
99
+ "name_en": "Identify Input Purpose",
100
+ "name_ko": "입력 목적 식별",
101
+ "level": "AA",
102
+ "since": "2.1",
103
+ "kwcagIds": []
104
+ },
105
+ {
106
+ "sc": "1.4.1",
107
+ "name_en": "Use of Color",
108
+ "name_ko": "색의 사용",
109
+ "level": "A",
110
+ "since": "2.0",
111
+ "kwcagIds": [
112
+ "5.4.1"
113
+ ]
114
+ },
115
+ {
116
+ "sc": "1.4.2",
117
+ "name_en": "Audio Control",
118
+ "name_ko": "오디오 제어",
119
+ "level": "A",
120
+ "since": "2.0",
121
+ "kwcagIds": [
122
+ "5.4.2"
123
+ ]
124
+ },
125
+ {
126
+ "sc": "1.4.3",
127
+ "name_en": "Contrast (Minimum)",
128
+ "name_ko": "명도 대비(최소)",
129
+ "level": "AA",
130
+ "since": "2.0",
131
+ "kwcagIds": [
132
+ "5.4.3"
133
+ ]
134
+ },
135
+ {
136
+ "sc": "1.4.4",
137
+ "name_en": "Resize Text",
138
+ "name_ko": "텍스트 크기 조절",
139
+ "level": "AA",
140
+ "since": "2.0",
141
+ "kwcagIds": []
142
+ },
143
+ {
144
+ "sc": "1.4.5",
145
+ "name_en": "Images of Text",
146
+ "name_ko": "텍스트 이미지",
147
+ "level": "AA",
148
+ "since": "2.0",
149
+ "kwcagIds": []
150
+ },
151
+ {
152
+ "sc": "1.4.10",
153
+ "name_en": "Reflow",
154
+ "name_ko": "리플로우",
155
+ "level": "AA",
156
+ "since": "2.1",
157
+ "kwcagIds": []
158
+ },
159
+ {
160
+ "sc": "1.4.11",
161
+ "name_en": "Non-text Contrast",
162
+ "name_ko": "텍스트 아닌 요소의 대비",
163
+ "level": "AA",
164
+ "since": "2.1",
165
+ "kwcagIds": [
166
+ "5.4.4"
167
+ ]
168
+ },
169
+ {
170
+ "sc": "1.4.12",
171
+ "name_en": "Text Spacing",
172
+ "name_ko": "텍스트 간격",
173
+ "level": "AA",
174
+ "since": "2.1",
175
+ "kwcagIds": []
176
+ },
177
+ {
178
+ "sc": "1.4.13",
179
+ "name_en": "Content on Hover or Focus",
180
+ "name_ko": "호버 또는 포커스로 나타나는 콘텐츠",
181
+ "level": "AA",
182
+ "since": "2.1",
183
+ "kwcagIds": []
184
+ },
185
+ {
186
+ "sc": "2.1.1",
187
+ "name_en": "Keyboard",
188
+ "name_ko": "키보드",
189
+ "level": "A",
190
+ "since": "2.0",
191
+ "kwcagIds": [
192
+ "6.1.1"
193
+ ]
194
+ },
195
+ {
196
+ "sc": "2.1.2",
197
+ "name_en": "No Keyboard Trap",
198
+ "name_ko": "키보드 함정 없음",
199
+ "level": "A",
200
+ "since": "2.0",
201
+ "kwcagIds": [
202
+ "6.1.1"
203
+ ]
204
+ },
205
+ {
206
+ "sc": "2.1.4",
207
+ "name_en": "Character Key Shortcuts",
208
+ "name_ko": "문자 단축키",
209
+ "level": "A",
210
+ "since": "2.1",
211
+ "kwcagIds": [
212
+ "6.1.4"
213
+ ]
214
+ },
215
+ {
216
+ "sc": "2.2.1",
217
+ "name_en": "Timing Adjustable",
218
+ "name_ko": "시간 제한 조절",
219
+ "level": "A",
220
+ "since": "2.0",
221
+ "kwcagIds": [
222
+ "6.2.1"
223
+ ]
224
+ },
225
+ {
226
+ "sc": "2.2.2",
227
+ "name_en": "Pause, Stop, Hide",
228
+ "name_ko": "정지, 중지, 숨기기",
229
+ "level": "A",
230
+ "since": "2.0",
231
+ "kwcagIds": [
232
+ "6.2.2"
233
+ ]
234
+ },
235
+ {
236
+ "sc": "2.3.1",
237
+ "name_en": "Three Flashes or Below Threshold",
238
+ "name_ko": "3회 섬광 또는 역치 이하",
239
+ "level": "A",
240
+ "since": "2.0",
241
+ "kwcagIds": [
242
+ "6.3.1"
243
+ ]
244
+ },
245
+ {
246
+ "sc": "2.4.1",
247
+ "name_en": "Bypass Blocks",
248
+ "name_ko": "블록 건너뛰기",
249
+ "level": "A",
250
+ "since": "2.0",
251
+ "kwcagIds": [
252
+ "6.4.1"
253
+ ]
254
+ },
255
+ {
256
+ "sc": "2.4.2",
257
+ "name_en": "Page Titled",
258
+ "name_ko": "페이지 제목",
259
+ "level": "A",
260
+ "since": "2.0",
261
+ "kwcagIds": [
262
+ "6.4.2"
263
+ ]
264
+ },
265
+ {
266
+ "sc": "2.4.3",
267
+ "name_en": "Focus Order",
268
+ "name_ko": "초점 순서",
269
+ "level": "A",
270
+ "since": "2.0",
271
+ "kwcagIds": [
272
+ "6.1.2"
273
+ ]
274
+ },
275
+ {
276
+ "sc": "2.4.4",
277
+ "name_en": "Link Purpose (In Context)",
278
+ "name_ko": "링크 목적(맥락 안에서)",
279
+ "level": "A",
280
+ "since": "2.0",
281
+ "kwcagIds": [
282
+ "6.4.3"
283
+ ]
284
+ },
285
+ {
286
+ "sc": "2.4.5",
287
+ "name_en": "Multiple Ways",
288
+ "name_ko": "여러 방법",
289
+ "level": "AA",
290
+ "since": "2.0",
291
+ "kwcagIds": []
292
+ },
293
+ {
294
+ "sc": "2.4.6",
295
+ "name_en": "Headings and Labels",
296
+ "name_ko": "제목과 레이블",
297
+ "level": "AA",
298
+ "since": "2.0",
299
+ "kwcagIds": [
300
+ "6.4.2"
301
+ ]
302
+ },
303
+ {
304
+ "sc": "2.4.7",
305
+ "name_en": "Focus Visible",
306
+ "name_ko": "초점 표시",
307
+ "level": "AA",
308
+ "since": "2.0",
309
+ "kwcagIds": [
310
+ "6.1.2"
311
+ ]
312
+ },
313
+ {
314
+ "sc": "2.4.11",
315
+ "name_en": "Focus Not Obscured (Minimum)",
316
+ "name_ko": "초점 가림 없음(최소)",
317
+ "level": "AA",
318
+ "since": "2.2",
319
+ "kwcagIds": []
320
+ },
321
+ {
322
+ "sc": "2.5.1",
323
+ "name_en": "Pointer Gestures",
324
+ "name_ko": "포인터 제스처",
325
+ "level": "A",
326
+ "since": "2.1",
327
+ "kwcagIds": [
328
+ "6.5.1"
329
+ ]
330
+ },
331
+ {
332
+ "sc": "2.5.2",
333
+ "name_en": "Pointer Cancellation",
334
+ "name_ko": "포인터 취소",
335
+ "level": "A",
336
+ "since": "2.1",
337
+ "kwcagIds": [
338
+ "6.5.2"
339
+ ]
340
+ },
341
+ {
342
+ "sc": "2.5.3",
343
+ "name_en": "Label in Name",
344
+ "name_ko": "이름 안의 레이블",
345
+ "level": "A",
346
+ "since": "2.1",
347
+ "kwcagIds": [
348
+ "6.5.3"
349
+ ]
350
+ },
351
+ {
352
+ "sc": "2.5.4",
353
+ "name_en": "Motion Actuation",
354
+ "name_ko": "동작 기반 작동",
355
+ "level": "A",
356
+ "since": "2.1",
357
+ "kwcagIds": [
358
+ "6.5.4"
359
+ ]
360
+ },
361
+ {
362
+ "sc": "2.5.7",
363
+ "name_en": "Dragging Movements",
364
+ "name_ko": "끌기 동작",
365
+ "level": "AA",
366
+ "since": "2.2",
367
+ "kwcagIds": []
368
+ },
369
+ {
370
+ "sc": "2.5.8",
371
+ "name_en": "Target Size (Minimum)",
372
+ "name_ko": "타깃 크기(최소)",
373
+ "level": "AA",
374
+ "since": "2.2",
375
+ "kwcagIds": [
376
+ "6.1.3"
377
+ ]
378
+ },
379
+ {
380
+ "sc": "3.1.1",
381
+ "name_en": "Language of Page",
382
+ "name_ko": "페이지 언어",
383
+ "level": "A",
384
+ "since": "2.0",
385
+ "kwcagIds": [
386
+ "7.1.1"
387
+ ]
388
+ },
389
+ {
390
+ "sc": "3.1.2",
391
+ "name_en": "Language of Parts",
392
+ "name_ko": "부분의 언어",
393
+ "level": "AA",
394
+ "since": "2.0",
395
+ "kwcagIds": []
396
+ },
397
+ {
398
+ "sc": "3.2.1",
399
+ "name_en": "On Focus",
400
+ "name_ko": "초점을 받을 때",
401
+ "level": "A",
402
+ "since": "2.0",
403
+ "kwcagIds": [
404
+ "7.2.1"
405
+ ]
406
+ },
407
+ {
408
+ "sc": "3.2.2",
409
+ "name_en": "On Input",
410
+ "name_ko": "입력할 때",
411
+ "level": "A",
412
+ "since": "2.0",
413
+ "kwcagIds": [
414
+ "7.2.1"
415
+ ]
416
+ },
417
+ {
418
+ "sc": "3.2.3",
419
+ "name_en": "Consistent Navigation",
420
+ "name_ko": "일관된 내비게이션",
421
+ "level": "AA",
422
+ "since": "2.0",
423
+ "kwcagIds": []
424
+ },
425
+ {
426
+ "sc": "3.2.4",
427
+ "name_en": "Consistent Identification",
428
+ "name_ko": "일관된 식별",
429
+ "level": "AA",
430
+ "since": "2.0",
431
+ "kwcagIds": []
432
+ },
433
+ {
434
+ "sc": "3.2.6",
435
+ "name_en": "Consistent Help",
436
+ "name_ko": "일관된 도움말",
437
+ "level": "A",
438
+ "since": "2.2",
439
+ "kwcagIds": [
440
+ "7.2.2"
441
+ ]
442
+ },
443
+ {
444
+ "sc": "3.3.1",
445
+ "name_en": "Error Identification",
446
+ "name_ko": "오류 식별",
447
+ "level": "A",
448
+ "since": "2.0",
449
+ "kwcagIds": [
450
+ "7.3.1"
451
+ ]
452
+ },
453
+ {
454
+ "sc": "3.3.2",
455
+ "name_en": "Labels or Instructions",
456
+ "name_ko": "레이블 또는 지시사항",
457
+ "level": "A",
458
+ "since": "2.0",
459
+ "kwcagIds": [
460
+ "7.3.2"
461
+ ]
462
+ },
463
+ {
464
+ "sc": "3.3.3",
465
+ "name_en": "Error Suggestion",
466
+ "name_ko": "오류 제안",
467
+ "level": "AA",
468
+ "since": "2.0",
469
+ "kwcagIds": [
470
+ "7.3.1"
471
+ ]
472
+ },
473
+ {
474
+ "sc": "3.3.4",
475
+ "name_en": "Error Prevention (Legal, Financial, Data)",
476
+ "name_ko": "오류 방지(법적·금융·데이터)",
477
+ "level": "AA",
478
+ "since": "2.0",
479
+ "kwcagIds": []
480
+ },
481
+ {
482
+ "sc": "3.3.7",
483
+ "name_en": "Redundant Entry",
484
+ "name_ko": "중복 입력",
485
+ "level": "A",
486
+ "since": "2.2",
487
+ "kwcagIds": [
488
+ "7.3.4"
489
+ ]
490
+ },
491
+ {
492
+ "sc": "3.3.8",
493
+ "name_en": "Accessible Authentication (Minimum)",
494
+ "name_ko": "접근 가능한 인증(최소)",
495
+ "level": "AA",
496
+ "since": "2.2",
497
+ "kwcagIds": [
498
+ "7.3.3"
499
+ ]
500
+ },
501
+ {
502
+ "sc": "4.1.2",
503
+ "name_en": "Name, Role, Value",
504
+ "name_ko": "이름, 역할, 값",
505
+ "level": "A",
506
+ "since": "2.0",
507
+ "kwcagIds": [
508
+ "8.2.1"
509
+ ]
510
+ },
511
+ {
512
+ "sc": "4.1.3",
513
+ "name_en": "Status Messages",
514
+ "name_ko": "상태 메시지",
515
+ "level": "AA",
516
+ "since": "2.1",
517
+ "kwcagIds": []
518
+ },
519
+ {
520
+ "sc": "1.2.6",
521
+ "name_en": "Sign Language (Prerecorded)",
522
+ "name_ko": "수어(사전 녹화)",
523
+ "level": "AAA",
524
+ "since": "2.0",
525
+ "kwcagIds": []
526
+ },
527
+ {
528
+ "sc": "1.2.7",
529
+ "name_en": "Extended Audio Description (Prerecorded)",
530
+ "name_ko": "확장 화면 해설(사전 녹화)",
531
+ "level": "AAA",
532
+ "since": "2.0",
533
+ "kwcagIds": []
534
+ },
535
+ {
536
+ "sc": "1.2.8",
537
+ "name_en": "Media Alternative (Prerecorded)",
538
+ "name_ko": "미디어 대체 수단(사전 녹화)",
539
+ "level": "AAA",
540
+ "since": "2.0",
541
+ "kwcagIds": []
542
+ },
543
+ {
544
+ "sc": "1.2.9",
545
+ "name_en": "Audio-only (Live)",
546
+ "name_ko": "음성 전용(실시간)",
547
+ "level": "AAA",
548
+ "since": "2.0",
549
+ "kwcagIds": []
550
+ },
551
+ {
552
+ "sc": "1.3.6",
553
+ "name_en": "Identify Purpose",
554
+ "name_ko": "목적 식별",
555
+ "level": "AAA",
556
+ "since": "2.1",
557
+ "kwcagIds": []
558
+ },
559
+ {
560
+ "sc": "1.4.6",
561
+ "name_en": "Contrast (Enhanced)",
562
+ "name_ko": "명도 대비(강화)",
563
+ "level": "AAA",
564
+ "since": "2.0",
565
+ "kwcagIds": []
566
+ },
567
+ {
568
+ "sc": "1.4.7",
569
+ "name_en": "Low or No Background Audio",
570
+ "name_ko": "배경음 최소화",
571
+ "level": "AAA",
572
+ "since": "2.0",
573
+ "kwcagIds": []
574
+ },
575
+ {
576
+ "sc": "1.4.8",
577
+ "name_en": "Visual Presentation",
578
+ "name_ko": "시각적 표현",
579
+ "level": "AAA",
580
+ "since": "2.0",
581
+ "kwcagIds": []
582
+ },
583
+ {
584
+ "sc": "1.4.9",
585
+ "name_en": "Images of Text (No Exception)",
586
+ "name_ko": "텍스트 이미지(예외 없음)",
587
+ "level": "AAA",
588
+ "since": "2.0",
589
+ "kwcagIds": []
590
+ },
591
+ {
592
+ "sc": "2.1.3",
593
+ "name_en": "Keyboard (No Exception)",
594
+ "name_ko": "키보드(예외 없음)",
595
+ "level": "AAA",
596
+ "since": "2.0",
597
+ "kwcagIds": []
598
+ },
599
+ {
600
+ "sc": "2.2.3",
601
+ "name_en": "No Timing",
602
+ "name_ko": "시간제한 없음",
603
+ "level": "AAA",
604
+ "since": "2.0",
605
+ "kwcagIds": []
606
+ },
607
+ {
608
+ "sc": "2.2.4",
609
+ "name_en": "Interruptions",
610
+ "name_ko": "중단",
611
+ "level": "AAA",
612
+ "since": "2.0",
613
+ "kwcagIds": []
614
+ },
615
+ {
616
+ "sc": "2.2.5",
617
+ "name_en": "Re-authenticating",
618
+ "name_ko": "재인증",
619
+ "level": "AAA",
620
+ "since": "2.0",
621
+ "kwcagIds": []
622
+ },
623
+ {
624
+ "sc": "2.2.6",
625
+ "name_en": "Timeouts",
626
+ "name_ko": "시간 초과",
627
+ "level": "AAA",
628
+ "since": "2.1",
629
+ "kwcagIds": []
630
+ },
631
+ {
632
+ "sc": "2.3.2",
633
+ "name_en": "Three Flashes",
634
+ "name_ko": "3회 섬광",
635
+ "level": "AAA",
636
+ "since": "2.0",
637
+ "kwcagIds": []
638
+ },
639
+ {
640
+ "sc": "2.3.3",
641
+ "name_en": "Animation from Interactions",
642
+ "name_ko": "상호작용에 의한 애니메이션",
643
+ "level": "AAA",
644
+ "since": "2.1",
645
+ "kwcagIds": []
646
+ },
647
+ {
648
+ "sc": "2.4.8",
649
+ "name_en": "Location",
650
+ "name_ko": "위치",
651
+ "level": "AAA",
652
+ "since": "2.0",
653
+ "kwcagIds": []
654
+ },
655
+ {
656
+ "sc": "2.4.9",
657
+ "name_en": "Link Purpose (Link Only)",
658
+ "name_ko": "링크 목적(링크만으로)",
659
+ "level": "AAA",
660
+ "since": "2.0",
661
+ "kwcagIds": []
662
+ },
663
+ {
664
+ "sc": "2.4.10",
665
+ "name_en": "Section Headings",
666
+ "name_ko": "구획 제목",
667
+ "level": "AAA",
668
+ "since": "2.0",
669
+ "kwcagIds": []
670
+ },
671
+ {
672
+ "sc": "2.4.12",
673
+ "name_en": "Focus Not Obscured (Enhanced)",
674
+ "name_ko": "초점 가림 없음(강화)",
675
+ "level": "AAA",
676
+ "since": "2.2",
677
+ "kwcagIds": []
678
+ },
679
+ {
680
+ "sc": "2.4.13",
681
+ "name_en": "Focus Appearance",
682
+ "name_ko": "초점 외관",
683
+ "level": "AAA",
684
+ "since": "2.2",
685
+ "kwcagIds": []
686
+ },
687
+ {
688
+ "sc": "2.5.5",
689
+ "name_en": "Target Size (Enhanced)",
690
+ "name_ko": "타깃 크기(강화)",
691
+ "level": "AAA",
692
+ "since": "2.1",
693
+ "kwcagIds": []
694
+ },
695
+ {
696
+ "sc": "2.5.6",
697
+ "name_en": "Concurrent Input Mechanisms",
698
+ "name_ko": "동시 입력 방식",
699
+ "level": "AAA",
700
+ "since": "2.1",
701
+ "kwcagIds": []
702
+ },
703
+ {
704
+ "sc": "3.1.3",
705
+ "name_en": "Unusual Words",
706
+ "name_ko": "이례적인 단어",
707
+ "level": "AAA",
708
+ "since": "2.0",
709
+ "kwcagIds": []
710
+ },
711
+ {
712
+ "sc": "3.1.4",
713
+ "name_en": "Abbreviations",
714
+ "name_ko": "약어",
715
+ "level": "AAA",
716
+ "since": "2.0",
717
+ "kwcagIds": []
718
+ },
719
+ {
720
+ "sc": "3.1.5",
721
+ "name_en": "Reading Level",
722
+ "name_ko": "독해 수준",
723
+ "level": "AAA",
724
+ "since": "2.0",
725
+ "kwcagIds": []
726
+ },
727
+ {
728
+ "sc": "3.1.6",
729
+ "name_en": "Pronunciation",
730
+ "name_ko": "발음",
731
+ "level": "AAA",
732
+ "since": "2.0",
733
+ "kwcagIds": []
734
+ },
735
+ {
736
+ "sc": "3.2.5",
737
+ "name_en": "Change on Request",
738
+ "name_ko": "요청에 의한 변경",
739
+ "level": "AAA",
740
+ "since": "2.0",
741
+ "kwcagIds": []
742
+ },
743
+ {
744
+ "sc": "3.3.5",
745
+ "name_en": "Help",
746
+ "name_ko": "도움말",
747
+ "level": "AAA",
748
+ "since": "2.0",
749
+ "kwcagIds": []
750
+ },
751
+ {
752
+ "sc": "3.3.6",
753
+ "name_en": "Error Prevention (All)",
754
+ "name_ko": "오류 방지(전체)",
755
+ "level": "AAA",
756
+ "since": "2.0",
757
+ "kwcagIds": []
758
+ },
759
+ {
760
+ "sc": "3.3.9",
761
+ "name_en": "Accessible Authentication (Enhanced)",
762
+ "name_ko": "접근 가능한 인증(강화)",
763
+ "level": "AAA",
764
+ "since": "2.2",
765
+ "kwcagIds": []
766
+ },
767
+ {
768
+ "sc": "4.1.1",
769
+ "name_en": "Parsing",
770
+ "name_ko": "구문 분석",
771
+ "level": "A",
772
+ "since": "2.0",
773
+ "removedIn": "2.2",
774
+ "needsVerification": true,
775
+ "kwcagIds": [
776
+ "8.1.1"
777
+ ]
778
+ }
779
+ ]
780
+ }