1{
2	"lang": "ko",
3	"rules": {
4		"accesskeys": {
5			"description": "모든 accesskey 속성 값이 고유한지 확인합니다.",
6			"help": "accesskey 속성 값은 고유해야 합니다."
7		},
8		"area-alt": {
9			"description": "이미지 맵의 <area> 요소에 alt 속성이 있는지 확인합니다.",
10			"help": "<area> 요소의 내용을 기술하는 alt 속성이 필요합니다."
11		},
12		"aria-allowed-attr": {
13			"description": "요소의 역할(role)에 ARIA 속성이 허용되도록 합니다.",
14			"help": "요소는 허용 된 ARIA 속성만 사용해야 합니다."
15		},
16		"aria-allowed-role": {
17			"description": "역할(role) 속성이 요소에 적절한지 확인하세요.",
18			"help": "요소에 적절한 ARIA 역할(role)을 설정해야 합니다."
19		},
20		"aria-hidden-body": {
21			"description": "<body> 요소의 aria-hidden='true' 설정을 확인하세요.",
22			"help": "aria-hidden='true' 설정이 <body> 요소에 설정되어서는 안됩니다."
23		},
24		"aria-hidden-focus": {
25			"description": "aria-hidden 요소에 포커스 가능한 요소가 포함되지 않도록 보장합니다.",
26			"help": "ARIA 속성을 사용해 숨겨진 요소는 포커스 가능한 요소를 포함해서는 안됩니다."
27		},
28		"aria-input-field-name": {
29			"description": "모든 ARIA 입력 필드(input fields)에 접근 가능한 이름이 있는지 확인하세요.",
30			"help": "ARIA 입력 필드(input fields)에는 접근 가능한 이름 설정이 필요합니다."
31		},
32		"aria-required-attr": {
33			"description": "ARIA 역할(role)을 가진 요소가 모든 필수 ARIA 속성을 갖도록 설정합니다.",
34			"help": "역할(role)에 필요한 필수 ARIA 속성 설정이 필요합니다."
35		},
36		"aria-required-children": {
37			"description": "하위 역할(child roles)이 필요한 ARIA 역할을 가진 요소에 해당 요소가 포함되었는지 확인하세요.",
38			"help": "특정 ARIA 역할에는 특정 자손(chidren)이 포함되어야 합니다."
39		},
40		"aria-required-parent": {
41			"description": "부모 역할(parent roles)이 필요한 ARIA 역할을 가진 요소가 포함되었는지 확인하세요.",
42			"help": "특정 ARIA 역할은 특정 부모 역할을 가진 요소에 포함되어야 합니다."
43		},
44		"aria-roles": {
45			"description": "역할(role) 속성을 가진 모든 요소가 유효한 값을 사용하도록 합니다.",
46			"help": "사용된 ARIA 역할(role)은 유효한 값을 준수해야 합니다."
47		},
48		"aria-toggle-field-name": {
49			"description": "모든 ARIA 토글 필드(toggle field)에 접근 가능한 이름이 있는지 확인합니다.",
50			"help": "ARIA 토글 필드(toggle field)는 접근 가능한 이름이 설정되어야 합니다."
51		},
52		"aria-valid-attr-value": {
53			"description": "모든 ARIA 속성이 유효한 값을 갖도록 합니다.",
54			"help": "ARIA 속성은 유효한 값을 준수해야 합니다."
55		},
56		"aria-valid-attr": {
57			"description": "aria-로 시작하는 속성이 유효한 ARIA 속성인지 확인합니다.",
58			"help": "유효하지 않은 ARIA 속성 이름을 사용해서는 안됩니다."
59		},
60		"audio-caption": {
61			"description": "<audio> 요소에 캡션(자막)이 설정되어 있는지 확인하세요.",
62			"help": "<audio> 요소에는 캡션 <track> 요소가 포함되어야 합니다."
63		},
64		"autocomplete-valid": {
65			"description": "autocomplete 속성이 정확하고, Form 필드에 적합한지 확인하세요.",
66			"help": "autocomplete 속성은 반드시 정확하게 사용되어야 합니다."
67		},
68		"avoid-inline-spacing": {
69			"description": "style 속성을 통해 설정된 텍스트 간격(spacing)을 사용자 정의 스타일시트로 조정 할 수 있는지 확인합니다.",
70			"help": "인라인 텍스트 간격(spacing)은 사용자 정의 스타일시트로 조정 가능해야 합니다."
71		},
72		"blink": {
73			"description": "<blink> 요소는 사용하지 않습니다.",
74			"help": "<blink> 요소는 사용하면 안됩니다."
75		},
76		"button-name": {
77			"description": "버튼 요소에 식별 가능한 텍스트가 포함되어 있는지 확인합니다.",
78			"help": "버튼 요소는 식별 가능한 텍스트를 포함해야 합니다."
79		},
80		"bypass": {
81			"description": "사용자가 내비게이션을 건너띄고, 콘텐츠로 바로 이동할 수 있는 하나 이상의 메커니즘을 제공해야 합니다.",
82			"help": "페이지의 반복 블록(예: 내비게이션)을 건너띌 수 있는 수단이 필요합니다."
83		},
84		"color-contrast": {
85			"description": "전경색과 배경색 간의 대비가 WCAG2 AA 기준 값을 충족하도록 보장해야 합니다.",
86			"help": "요소의 색상 대비가 충분히 식별 가능해야 합니다."
87		},
88		"css-orientation-lock": {
89			"description": "콘텐츠가 특정 디스플레이 방향으로 고정되지 않고 콘텐츠가 모든 디스플레이 방향으로 작동 가능하도록 보장합니다.",
90			"help": "CSS 미디어쿼리는 디스플레이 방향을 잠그는 목적으로 사용해서는 안됩니다."
91		},
92		"definition-list": {
93			"description": "<dl> 요소가 올바르게 구성되어 있는지 확인합니다.",
94			"help": "<dl> 요소는 올바르게 정렬 된 <dt>, <dd> 그룹, <script> 또는 <template> 요소에만 직접 포함되어야 합니다."
95		},
96		"dlitem": {
97			"description": "<dt>, <dd> 요소가 <dl>요소에 포함 되도록 합니다.",
98			"help": "<dt>, <dd> 요소는 <dl> 요소 또는 <dl> 내부의 <div> 요소에 포함되어야 합니다."
99		},
100		"document-title": {
101			"description": "<title> 요소에 적절한 문서 제목이 설정되었는지 확인합니다.",
102			"help": "문서 제목인 <title> 요소의 값이 설정되어야 합니다."
103		},
104		"duplicate-id-active": {
105			"description": "활성화 된 요소에 설정된 id 속성 이름 값 중복 여부를 확인합니다.",
106			"help": "활성화 된 요소의 id 속성 이름 값은 반드시 고유해야 합니다."
107		},
108		"duplicate-id-aria": {
109			"description": "ARIA 및 레이블에 사용된 모든 id 속성 값이 고유한지 확인합니다.",
110			"help": "ARIA 및 레이블에 사용 된 ID는 고유해야 합니다."
111		},
112		"duplicate-id": {
113			"description": "모든 id 속성 값이 고유한지 확인합니다.",
114			"help": "id 속성 값은 고유해야 합니다."
115		},
116		"empty-heading": {
117			"description": "제목 역할의 요소에 식별 가능한 콘텐츠가 포함되어 있는지 확인합니다.",
118			"help": "제목 역할을 가진 요소는 반드시 적절한 콘텐츠를 포함해야 합니다."
119		},
120		"focus-order-semantics": {
121			"description": "포커스 순서가 설정된 요소가 적절한 역할을 갖도록 보장하는지 확인합니다.",
122			"help": "포커스 순서가 설정된 요소는 대화형(interactive) 콘텐츠에 적합한 역할이 필요합니다."
123		},
124		"form-field-multiple-labels": {
125			"description": "Form 필드에 여러 레이블 요소가 없는지 확인합니다.",
126			"help": "Form 필드에는 여러 레이블 요소가 없어야 합니다."
127		},
128		"frame-tested": {
129			"description": "<iframe> 및 <frame> 요소에 axe-core 스크립트가 포함되어 있는지 확인합니다.",
130			"help": "Frame은 axe-core로 테스트 해야 합니다."
131		},
132		"frame-title-unique": {
133			"description": "<iframe> 및 <frame> 요소에 고유한 title 속성이 포함되어 있는지 확인합니다.",
134			"help": "Frame에는 고유한 title 속성이 설정되어야 합니다."
135		},
136		"frame-title": {
137			"description": "<iframe> 및 <frame> 요소에 내용을 가진 title 속성이 포함되어 있는지 확인합니다.",
138			"help": "Frame에는 title 속성이 있어야 합니다."
139		},
140		"heading-order": {
141			"description": "제목의 순서가 의미적으로 올바른지 확인합니다.",
142			"help": "제목 수준(level)은 한 단계씩 증가해야 합니다."
143		},
144		"hidden-content": {
145			"description": "숨겨진 콘텐츠에 대해 사용자에게 알립니다.",
146			"help": "페이지의 숨겨진 콘텐츠를 분석 할 수 없습니다."
147		},
148		"html-has-lang": {
149			"description": "모든 문서의 <html> 요소에 lang 속성이 있는지 확인합니다.",
150			"help": "<html> 요소에는 lang 속성이 있어야 합니다."
151		},
152		"html-lang-valid": {
153			"description": "<html> 요소의 lang 속성에 유효한 값이 있는지 확인하세요.",
154			"help": "<html> 요소는 lang 속성에 유효한 값을 가져야 합니다."
155		},
156		"html-xml-lang-mismatch": {
157			"description": "유효한 lang, xml:lang 속성 값과 <html> 요소의 lang 속성이 일치하는지 확인하세요.",
158			"help": "lang, xml:lang 속성이 있는 <html> 요소는 동일한 기본 언어(lang) 속성 값을 가져야 합니다."
159		},
160		"image-alt": {
161			"description": "<img> 요소에 alt 속성 값으로 적절한 값이 설정되어 있거나, role='presentation' 설정이 있는지 확인하세요.",
162			"help": "이미지는 적절한 대체 텍스트가 제공되어야 합니다."
163		},
164		"image-redundant-alt": {
165			"description": "이미지 대체 텍스트로 반복되지 않는지 확인합니다.",
166			"help": "이미지의 대체 텍스트가 반복해서 제공되어서는 안됩니다."
167		},
168		"input-button-name": {
169			"description": "입력 버튼(input button)에 식별 가능한 텍스트가 있는지 확인하세요.",
170			"help": "입력 버튼에는 식별 가능한 텍스트가 있어야 합니다."
171		},
172		"input-image-alt": {
173			"description": "<input type=\"image\"> 요소에 대체 텍스트가 있는지 확인합니다.",
174			"help": "이미지 버튼에는 대체 텍스트가 있어야 합니다."
175		},
176		"label-content-name-mismatch": {
177			"description": "콘텐츠를 통해 레이블이 지정된 요소가 접근 가능한 이름의 일부로 보이는 텍스트를 가져야 합니다.",
178			"help": "요소는 접근 가능한 이름의 일부로 보이는 텍스트를 가져야 합니다."
179		},
180		"label-title-only": {
181			"description": "모든 Form 요소에 title 또는 aria-describedby 속성을 사용하여 레이블을 지정하지 않아야 합니다.",
182			"help": "Form 요소는 눈에 보이는 레이블이 있어야 합니다."
183		},
184		"label": {
185			"description": "모든 Form 요소에 레이블이 있는지 확인합니다.",
186			"help": "Form 요소에는 레이블이 있어야 합니다."
187		},
188		"landmark-banner-is-top-level": {
189			"description": "banner 랜드마크가 최상위 레벨에 있는지 확인합니다.",
190			"help": "banner 랜드마크는 다른 랜드마크에 포함되지 않아야 합니다."
191		},
192		"landmark-complementary-is-top-level": {
193			"description": "complementary 랜드마크 또는 aside는 최상위 레벨을 유지해야 합니다.",
194			"help": "aside는 다른 랜드마크에 포함되어서는 안됩니다."
195		},
196		"landmark-contentinfo-is-top-level": {
197			"description": "contentinfo 랜드마크가 최상위 레벨인지 확인합니다.",
198			"help": "contentinfo 랜드마크는 다른 랜드마크에 포함되지 않아야 합니다."
199		},
200		"landmark-main-is-top-level": {
201			"description": "main 랜드마크가 최상위 레벨인지 확인합니다.",
202			"help": "main 랜드마크는 다른 랜드마크에 포함되지 않아야 합니다."
203		},
204		"landmark-no-duplicate-banner": {
205			"description": "문서에 최대 하나의 banner 랜드마크가 있는지 확인합니다.",
206			"help": "문서에는 둘 이상의 banner 랜드마크가 없어야 합니다."
207		},
208		"landmark-no-duplicate-contentinfo": {
209			"description": "문서에 최대 하나의 contentinfo 랜드마크가 있는지 확인합니다.",
210			"help": "문서에는 둘 이상의 contentinfo 랜드마크가 없어야 합니다."
211		},
212		"landmark-one-main": {
213			"description": "문서에 하나의 main 랜드마크만 있고 페이지의 각 iframe에는 최대 하나의 main 랜드마크가 있는지 확인합니다.",
214			"help": "문서에는 둘 이상의 main 랜드마크가 없어야 합니다."
215		},
216		"landmark-unique": {
217			"description": "랜드마크에는 고유한 역할(role) 또는 role/label/title (즉, 접근 가능한 이름) 조합이 있어야 합니다.",
218			"help": "랜드마크가 고유한지 확인합니다."
219		},
220		"link-in-text-block": {
221			"description": "색상에 의존하지 않고 링크를 구별 할 수 있어야 합니다.",
222			"help": "링크는 색상에 의존하지 않는 방식으로 주변 텍스트와 구별 되어야 합니다."
223		},
224		"link-name": {
225			"description": "링크에 식별 가능한 텍스트가 있는지 확인합니다.",
226			"help": "링크에는 식별 가능한 텍스트가 있어야 합니다."
227		},
228		"list": {
229			"description": "목록이 올바르게 구성되어 있는지 확인합니다.",
230			"help": "<ul> 및 <ol> 요소는 <li>, <script> 또는 <template> 요소 만 직접 포함해야 합니다."
231		},
232		"listitem": {
233			"description": "<li> 요소가 의미적으로 <ul> 또는 <ol>에 포함 되어 있는지 확인합니다.",
234			"help": "<li> 요소는 <ul> 또는 <ol>에 포함 되어야 합니다."
235		},
236		"marquee": {
237			"description": "<marquee> 요소가 사용되지 않도록 합니다.",
238			"help": "<marquee> 요소는 더 이상 사용되지 않으며 사용해서는 안됩니다."
239		},
240		"meta-refresh": {
241			"description": "<meta http-equiv=\"refresh\"> 요소는 사용하지 않습니다.",
242			"help": "시간 새로 고침이 존재하지 않아야 합니다."
243		},
244		"meta-viewport-large": {
245			"description": "<meta name=\"viewport\"> 요소의 스케일 설정이 500%까지 확장 가능한지 확인합니다.",
246			"help": "사용자는 텍스트를 최대 500% 확대 또는 축소 할 수 있어야 합니다."
247		},
248		"meta-viewport": {
249			"description": "<meta name=\"viewport\"> 요소가 텍스트 크기 조절 및 확대/축소를 비활성화하지 않도록 합니다.",
250			"help": "줌 및 스케일링을 비활성화 해서는 안됩니다."
251		},
252		"object-alt": {
253			"description": "<object> 요소에 대체 텍스트(alt)가 있는지 확인합니다.",
254			"help": "<object> 요소에는 대체 텍스트가 있어야 합니다."
255		},
256		"p-as-heading": {
257			"description": "p 요소를 스타일링 하여 제목처럼 사용했는지 확인하세요.",
258			"help": "p 요소를 Bold, italic 또는 글자 크기를 조정해 제목처럼 보이게 사용해서는 안됩니다."
259		},
260		"page-has-heading-one": {
261			"description": "페이지 또는 해당 프레임 중 하나 이상의 제목 레벨이 1인 요소가 포함되어 있는지 확인합니다.",
262			"help": "페이지는 제목 레벨이 1인 요소를 포함해야 합니다."
263		},
264		"region": {
265			"description": "모든 페이지 콘텐츠가 랜드마크로 포함되어 있는지 확인합니다.",
266			"help": "모든 페이지 콘텐츠는 랜드마크로 포함 되어야 합니다."
267		},
268		"role-img-alt": {
269			"description": "[role='img'] 요소에 대체 텍스트가 있는지 확인합니다.",
270			"help": "[role='img'] 요소에는 대체 텍스트가 있어야 합니다."
271		},
272		"scope-attr-valid": {
273			"description": "테이블에서 scope 속성이 올바르게 사용되도록 합니다.",
274			"help": "scope 속성을 올바르게 사용해야 합니다."
275		},
276		"scrollable-region-focusable": {
277			"description": "스크롤 가능한 콘텐츠가 있는 요소는 키보드로 접근 할 수 있어야 합니다.",
278			"help": "스크롤 가능 영역에 키보드 접근 권한이 있는지 확인해야 합니다."
279		},
280		"server-side-image-map": {
281			"description": "서버 사이드 이미지 맵이 사용되지 않도록 합니다.",
282			"help": "서버 사이드 이미지 맵을 사용해서는 안됩니다."
283		},
284		"skip-link": {
285			"description": "모든 건너뛰기(skip) 링크에 포커스 가능한 대상이 있는지 확인하세요.",
286			"help": "스킵 링크 대상이 존재하고 포커스 가능해야 합니다."
287		},
288		"tabindex": {
289			"description": "tabindex 속성 값이 0보다 크지 않도록 합니다.",
290			"help": "요소는 0보다 큰 tabindex를 가져서는 안됩니다."
291		},
292		"table-duplicate-name": {
293			"description": "테이블의 summary 속성 값과 <caption> 요소의 콘텐츠 값이 동일하지 않아야 합니다.",
294			"help": "<caption> 요소는 summary 속성과 동일한 텍스트를 포함하지 않아야 합니다."
295		},
296		"table-fake-caption": {
297			"description": "캡션이 있는 테이블이 <caption> 요소를 사용하는지 확인하세요.",
298			"help": "데이터 또는 헤더 셀을 사용하여 데이터 테이블 캡션인 것처럼 제공해서는 안됩니다."
299		},
300		"td-has-header": {
301			"description": "데이터 셀이 3x3 보다 많은 테이블은 비어 있지 않은 각 데이터 셀에 하나 이상의 테이블 헤더가 있는지 확인하세요.",
302			"help": "3x3 보다 큰 테이블의 비어 있지 않은 모든 td 요소에는 연관된 테이블 헤더가 있어야 합니다."
303		},
304		"td-headers-attr": {
305			"description": "헤더를 사용하는 테이블의 각 셀이 해당 테이블의 다른 셀을 참조하는지 확인하세요.",
306			"help": "headers 속성을 사용하는 테이블 요소의 모든 셀은 동일한 테이블의 다른 셀만 참조해야 합니다."
307		},
308		"th-has-data-cells": {
309			"description": "데이터 테이블의 각 테이블 헤더가 데이터 셀을 참조하는지 확인하세요.",
310			"help": "모든 요소 및 role='columnheader/rowheader' 설정 된 요소는 설명하는 데이터 셀이 있어야 합니다."
311		},
312		"valid-lang": {
313			"description": "lang 속성이 유효한 값을 갖도록 합니다.",
314			"help": "lang 속성은 유효한 값을 가져야 합니다."
315		},
316		"video-caption": {
317			"description": "<video> 요소에 캡션(자막)이 있는지 확인합니다.",
318			"help": "<video> 요소에는 캡션(자막)이 있어야 합니다."
319		}
320	},
321	"checks": {
322		"abstractrole": {
323			"pass": "추상 역할은 직접 사용하지 않습니다.",
324			"fail": "추상 역할은 직접 사용할 수 없습니다."
325		},
326		"aria-allowed-attr": {
327			"description": "ARIA 속성이 요소의 역할에 허용 되도록 합니다.",
328			"help": "요소는 허용된 ARIA 속성만 사용해야 합니다."
329		},
330		"aria-allowed-role": {
331			"pass": "ARIA 역할(role)은 지정된 요소에 대해 허용되어 있습니다.",
332			"fail": "ARIA 역할(role)은 지정된 요소에 대해 허용되지 않았습니다.",
333			"incomplete": "ARIA 역할(role)은 이 요소에 허가되어 있지 않기 때문에, 요소가 표시되었을 때 ARIA 역할을 삭제할 필요가 있습니다."
334		},
335		"aria-hidden-body": {
336			"description": "<body> 요소에 aria-hidden='true' 속성 설정이 없는지 확인하세요.",
337			"help": "aria-hidden='true' 설정을 <body> 요소에 사용해서는 안됩니다."
338		},
339		"aria-errormessage": {
340			"pass": "지원되고 있는 aria-errormessage 기술을 사용하고 있습니다.",
341			"fail": "aria-errormessage 값 ${data.values}는 메시지를 공지하는 방법을 사용해야 합니다.(예를 들어, aria-live, aria-describedby,role=alert 등)"
342		},
343		"has-widget-role": {
344			"pass": "요소에 widget 역할이 ​​있습니다.",
345			"fail": "요소에 widget 역할이 ​​없습니다."
346		},
347		"invalidrole": {
348			"pass": "ARIA 역할이 유효합니다.",
349			"fail": "역할은 유효한 ARIA 역할 중 하나여야 합니다."
350		},
351		"no-implicit-explicit-label": {
352			"pass": "<label>과 접근 가능한 이름이 일치하지 않습니다.",
353			"incomplete": "<label>이 ARIA ${data} 필드 이름의 일부일 필요는 없는지 확인하세요."
354		},
355		"aria-required-attr": {
356			"description": "ARIA 역할을 가진 요소가 모든 필수 ARIA 속성을 갖도록 합니다.",
357			"help": "필수 ARIA 속성이 제공 되어야 합니다."
358		},
359		"aria-required-children": {
360			"pass": "필수적인 ARIA 역할이 존재합니다.",
361			"fail": "필수적인 ARIA 역할이 제공되지 않고 있습니다:  ${data.values}",
362			"incomplete": "ARIA의 자손 역할이 추가되어야 합니다:  ${data.values}"
363		},
364		"aria-required-parent": {
365			"pass": "필수적인 ARIA 역할이 존재합니다.",
366			"fail": "필수적인 ARIA 역할이 제공되지 않고 있습니다:  ${data.values}"
367		},
368		"aria-unsupported-attr": {
369			"pass": "사용된 ARIA 속성은 지원되고 있습니다.",
370			"fail": "사용된 ARIA 속성은 스크린 리더나 보조 기술에 널리 지원되지 않고 있습니다:  ${data.values}"
371		},
372		"unsupportedrole": {
373			"pass": "사용된 ARIA 역할이 지원됩니다.",
374			"fail": "사용된 ARIA 속성은 스크린 리더나 보조 기술에 널리 지원되지 않고 있습니다.:  ${data.values}"
375		},
376		"aria-valid-attr-value": {
377			"pass": "ARIA 속성이 유효합니다.",
378			"fail": "무효인 ARIA 속성입니다: ${data.values}",
379			"incomplete": "페이지에 ARIA 속성의 요소 ID가 존재하지 않습니다: ${data.values}"
380		},
381		"aria-valid-attr": {
382			"pass": "ARIA 속성명이 유효합니다.",
383			"fail": "무효인 ARIA 속성명 입니다:  ${data.values}"
384		},
385		"valid-scrollable-semantics": {
386			"pass": "요소는 포커스 순서에서 요소에 대한 유효한 의미를 갖습니다.",
387			"fail": "요소의 포커스 순서에서 요소에 대한 의미가 유효하지 않습니다."
388		},
389		"color-contrast": {
390			"pass": "${data.contrastRatio} 요소의 색상 대비가 충분합니다.",
391			"fail": "${data.contrastRatio} 요소의 색상 대비가 충분하지 않습니다. (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${data.fontWeight}). ${data.expectedContrastRatio} 예상 대비 비율",
392			"incomplete": {
393				"bgImage": "배경 이미지로 인해 요소의 배경색을 확인할 수 없습니다.",
394				"bgGradient": "배경 그라데이션으로 인해 요소의 배경색을 결정할 수 없습니다.",
395				"imgNode": "요소에 이미지 노드가 포함되어 있으므로 요소의 배경색을 확인할 수 없습니다.",
396				"bgOverlap": "요소의 배경색이 다른 요소와 겹치므로 확인할 수 없습니다.",
397				"fgAlpha": "알파 투명도로 인해 요소의 전경색을 확인할 수 없습니다.",
398				"elmPartiallyObscured": "요소의 배경색이 다른 요소에 의해 부분적으로 가려져서 확인할 수 없습니다.",
399				"elmPartiallyObscuring": "요소의 배경색이 다른 요소와 부분적으로 겹치므로 확인할 수 없습니다.",
400				"outsideViewport": "요소가 뷰포트 외부에 있으므로 요소의 배경색을 확인할 수 없습니다.",
401				"equalRatio": "요소는 배경과 1:1 대비 비율을 갖습니다.",
402				"shortTextContent": "요소 내용이 너무 짧아 실제 텍스트 내용인지 확인할 수 없습니다.",
403				"default": "명암 비를 결정할 수 없습니다."
404			}
405		},
406		"link-in-text-block": {
407			"pass": "링크는 색상이 아닌 다른 방식으로 주변 텍스트와 구별 될 수 있습니다.",
408			"fail": "링크는 색상이 아닌 다른 방식으로 주변 텍스트와 구별 되어야 합니다.",
409			"incomplete": {
410				"bgContrast": "요소의 명암비를 결정할 수 없습니다. 뚜렷한 hover / focus 스타일 확인",
411				"bgImage": "배경 이미지로 인해 요소의 대비 비율을 결정할 수 없습니다.",
412				"bgGradient": "배경 그라데이션으로 인해 요소의 대비 비율을 확인할 수 없습니다.",
413				"imgNode": "요소에 이미지 노드가 포함되어 있으므로 요소의 대비 비율을 확인할 수 없습니다.",
414				"bgOverlap": "요소 겹침으로 인해 요소의 대비 비율을 확인할 수 없습니다.",
415				"default": "명암비를 결정할 수 없습니다."
416			}
417		},
418		"autocomplete-appropriate": {
419			"pass": "autocomplete 값이 적절한 요소에 있습니다.",
420			"fail": "autocomplete 값은 이 유형의 입력에 적합하지 않습니다."
421		},
422		"autocomplete-valid": {
423			"pass": "autocomplete 속성이 올바르게 형식화 되었습니다.",
424			"fail": "autocomplete 속성의 형식이 잘못 되었습니다."
425		},
426		"accesskeys": {
427			"pass": "accesskey 속성 값은 고유합니다",
428			"fail": "문서에 동일한 accesskey를 가진 여러 요소가 있습니다."
429		},
430		"focusable-content": {
431			"pass": "요소에는 포커스 가능한 요소가 포함됩니다.",
432			"fail": "요소는 포커스 가능한 콘텐츠를 가져야 합니다."
433		},
434		"focusable-disabled": {
435			"pass": "요소 안에 포커스 가능한 요소가 포함되어 있지 않습니다.",
436			"fail": "포커스 가능 콘텐츠를 비 활성화하거나 DOM에서 제거해야 합니다."
437		},
438		"focusable-element": {
439			"pass": "요소는 포커스 가능합니다.",
440			"fail": "요소에 포커스를 맞출 수 있어야 합니다."
441		},
442		"focusable-no-name": {
443			"pass": "요소가 탭 순서가 아니거나 접근 가능한 텍스트가 있습니다.",
444			"fail": "요소가 탭 순서이며 접근 가능한 텍스트가 없습니다."
445		},
446		"focusable-not-tabbable": {
447			"pass": "요소 내에 포커스 가능한 요소가 포함되어 있지 않습니다.",
448			"fail": "포커스 가능 콘텐츠는 tabindex='-1' 이거나 DOM에서 제거 되어야 합니다."
449		},
450		"landmark-is-top-level": {
451			"pass": "${data.role} 랜드마크가 최상위 레벨에 있습니다.",
452			"fail": "${data.role} 랜드마크는 다른 랜드마크에 포함되어 있습니다."
453		},
454		"page-has-heading-one": {
455			"pass": "페이지에 하나 이상의 제목 레벨 1이 있습니다.",
456			"fail": "페이지에는 제목 레벨 1이 있어야 합니다."
457		},
458		"page-has-main": {
459			"pass": "문서에 하나 이상의 main 랜드마크가 있습니다.",
460			"fail": "문서에 main 랜드마크가 없습니다."
461		},
462		"page-no-duplicate-banner": {
463			"pass": "문서에 둘 이상의 banner 랜드마크가 없습니다.",
464			"fail": "문서에 둘 이상의 banner 랜드마크가 있습니다."
465		},
466		"page-no-duplicate-contentinfo": {
467			"pass": "문서에 하나 이상의 contentinfo 랜드마크가 없습니다.",
468			"fail": "문서에 하나 이상의 contentinfo 랜드마크가 있습니다."
469		},
470		"page-no-duplicate-main": {
471			"pass": "문서에 둘 이상의 main 랜드마크가 없습니다.",
472			"fail": "문서에 둘 이상의 main 랜드마크가 있습니다."
473		},
474		"tabindex": {
475			"pass": "요소에 0보다 큰 tabindex가 없습니다.",
476			"fail": "요소의 tabindex가 0보다 큽니다."
477		},
478		"alt-space-value": {
479			"pass": "요소에 유효한 대체 속성 값이 있습니다.",
480			"fail": "요소에는 공백 문자만 포함하는 alt 속성이 있으며 모든 스크린 리더에서 무시하지 않습니다."
481		},
482		"duplicate-img-label": {
483			"pass": "<img> 대체 텍스트에서 요소가 기존 텍스트를 복제하지 않습니다.",
484			"fail": "요소에 기존 텍스트를 복제하는 대체 텍스트가 있는 <img> 요소가 포함되어 있습니다."
485		},
486		"explicit-label": {
487			"pass": "Form 요소에 명확한 <label>이 존재하고 있습니다.",
488			"fail": "Form 요소에 명확한 <label>이 존재하지 않습니다."
489		},
490		"help-same-as-label": {
491			"pass": "도움말 텍스트(title 또는 aria-describedby)는 레이블 텍스트를 복제하지 않습니다.",
492			"fail": "도움말 텍스트(title 또는 aria-describedby)는 레이블 텍스트와 동일합니다."
493		},
494		"hidden-explicit-label": {
495			"pass": "Form 요소에 명시적인 <label>이 있습니다.",
496			"fail": "Form 요소에 숨겨진 <label>이 있습니다."
497		},
498		"implicit-label": {
499			"pass": "Form 요소에 암묵적인(포함된) <label>이 존재하고 있습니다.",
500			"fail": "Form 요소에 암묵적인(포함된) <label>이 존재하지 않습니다."
501		},
502		"label-content-name-mismatch": {
503			"pass": "요소는 접근 가능한 이름의 일부로 보이는 텍스트를 포함합니다.",
504			"fail": "요소 안의 텍스트는 접근 가능한 이름에 포함되지 않습니다."
505		},
506		"multiple-label": {
507			"pass": "Form 필드에 여러 레이블 요소가 없습니다.",
508			"incomplete": "보조 기술에서 다중 레이블 요소가 널리 지원되지 않습니다. 첫 번째 레이블에 필요한 모든 정보가 포함되어 있는지 확인하세요."
509		},
510		"title-only": {
511			"pass": "Form 요소는 레이블에 title 속성만 사용하지 않습니다.",
512			"fail": "Form 요소의 레이블을 생성하는데 사용되는 title 속성만 해당됩니다."
513		},
514		"landmark-is-unique": {
515			"pass": "랜드마크에는 고유한 role 또는 role/label/title (즉, 접근 가능한 이름) 조합이 있어야 합니다.",
516			"fail": "랜드마크는 고유한 aria-label, aria-labelledby 또는 title이 있어야 랜드마크를 구별 할 수 있습니다."
517		},
518		"has-lang": {
519			"pass": "<html> 요소에 lang 속성이 있습니다.",
520			"fail": "<html> 요소에 lang 속성이 없습니다."
521		},
522		"valid-lang": {
523			"pass": "lang 속성 값은 유효한 언어 목록에 포함되어 있습니다.",
524			"fail": "lang 속성 값이 유효한 언어 목록에 포함되어 있지 않습니다."
525		},
526		"xml-lang-mismatch": {
527			"pass": "lang 및 xml:lang 속성은 주 언어 속성 값이 동일합니다.",
528			"fail": "lang 및 xml:lang 속성은 주 언어 속성 값이 동일하지 않습니다."
529		},
530		"dlitem": {
531			"pass": "설명 목록 항목에 <dl> 상위 요소가 있습니다.",
532			"fail": "설명 목록 항목에 <dl> 상위 요소가 없습니다."
533		},
534		"listitem": {
535			"pass": "목록 항목에 <ul>, <ol> 또는 role=\"list\" 상위 요소가 있습니다.",
536			"fail": "목록 항목에 <ul>, <ol> 또는 role=\"list\" 상위 요소가 없습니다."
537		},
538		"only-dlitems": {
539			"pass": "List 요소에는 <dt> 또는 <dd> 요소 내에서 허용되는 직접적인 자식 요소들만 있습니다.",
540			"fail": "List 요소에는 <dt> 또는 <dd> 요소 내에서 허용되지 않는 직접적인 자식 요소들이 있습니다."
541		},
542		"only-listitems": {
543			"pass": "List 요소에는 <li> 요소 내에 허용되는 직접적인 자식 요소들만 있습니다.",
544			"fail": "List 요소에는 <li> 요소 내에 허용되지 않는 직접 자식 요소들이 있습니다."
545		},
546		"structured-dlitems": {
547			"pass": "비어 있지 않으면 요소에 <dt> 및 <dd> 요소가 모두 있습니다.",
548			"fail": "비어 있지 않은 경우 요소에는 하나 이상의 <dt> 요소가 없고 그 뒤에 하나 이상의 <dd> 요소가 없습니다."
549		},
550		"caption": {
551			"pass": "멀티미디어 요소에는 자막 트랙이 있습니다.",
552			"incomplete": "요소에 캡션을 사용할 수 있는지 확인하세요."
553		},
554		"frame-tested": {
555			"pass": "iframe은 axe-core로 테스트 되었습니다.",
556			"fail": "iframe은 axe-core로 테스트 할 수 없습니다.",
557			"incomplete": "iframe은 여전히 ​​axe-core로 테스트 해야 합니다."
558		},
559		"css-orientation-lock": {
560			"pass": "디스플레이가 작동하고 방향 잠금이 설정되어 있지 않습니다.",
561			"fail": "CSS 방향 잠금이 적용되어 디스플레이를 작동 할 수 없게 합니다.",
562			"incomplete": "CSS 방향 잠금을 확인할 수 없습니다."
563		},
564		"meta-viewport-large": {
565			"pass": "<meta> 태그가 모바일 장치에서 화면 확대가 가능합니다.",
566			"fail": "<meta> 태그는 모바일 장치에서 화면 확대/축소를 제한합니다."
567		},
568		"meta-viewport": {
569			"pass": "<meta> 태그는 모바일 장치에서 확대/축소를 비활성화하지 않습니다.",
570			"fail": "<meta> 태그의 ${data}는 모바일 장치에서 확대/축소를 사용하지 않습니다."
571		},
572		"header-present": {
573			"pass": "페이지에 헤더가 있습니다.",
574			"fail": "페이지에 헤더가 없습니다."
575		},
576		"heading-order": {
577			"pass": "제목 순서가 유효합니다.",
578			"fail": "제목 순서가 잘못되었습니다."
579		},
580		"internal-link-present": {
581			"pass": "유효한 건너뛰기 링크가 발견되었습니다.",
582			"fail": "유효한 건너뛰기 링크가 없습니다."
583		},
584		"landmark": {
585			"pass": "페이지에 랜드마크 영역이 있습니다.",
586			"fail": "페이지에 랜드마크 영역이 없습니다."
587		},
588		"meta-refresh": {
589			"pass": "<meta> 태그는 페이지를 즉시 새로 고치지 않습니다.",
590			"fail": "<meta> 태그는 페이지를 새로 고침합니다."
591		},
592		"p-as-heading": {
593			"pass": "<p> 요소는 제목처럼 스타일이 설정되지 않았습니다.",
594			"fail": "스타일이 지정된 p 요소 대신 제목 요소를 사용해야 합니다."
595		},
596		"region": {
597			"pass": "모든 페이지 내용은 랜드마크로 포함됩니다.",
598			"fail": "일부 페이지 내용은 랜드마크에 포함되지 않습니다."
599		},
600		"skip-link": {
601			"pass": "링크 건너뛰기 대상이 존재합니다.",
602			"incomplete": "활성화 시 링크 대상 건너뛰기가 표시 되어야 합니다.",
603			"fail": "건너띄기 링크 대상이 없습니다."
604		},
605		"unique-frame-title": {
606			"pass": "요소의 title 속성은 고유합니다.",
607			"fail": "요소의 title 속성이 고유하지 않습니다."
608		},
609		"duplicate-id-active": {
610			"pass": "문서에 같은 id 속성을 갖는 유효한 요소는 없습니다.",
611			"fail": "문서에 같은 id 속성을 갖는 유효한 요소가 있습니다: ${data}"
612		},
613		"duplicate-id-aria": {
614			"pass": "문서에 ARIA로 참조된 요소나 동일한 id 속성을 공유하는 레이블이 없습니다.",
615			"fail": "동일한 id 속성을 가진 ARIA를 참조하는 여러 요소가 문서에 있습니다: ${data}"
616		},
617		"duplicate-id": {
618			"pass": "문서에 동일한 id 속성을 공유하는 정적 요소가 없습니다.",
619			"fail": "문서에 동일한 id 속성을 가진 여러 정적 요소가 있습니다."
620		},
621		"aria-label": {
622			"pass": "aria-label 속성이 존재하며 비어 있지 않습니다.",
623			"fail": "aria-label 속성이 존재하지 않거나 비어 있습니다."
624		},
625		"aria-labelledby": {
626			"pass": "aria-labeledby 속성이 있으며 스크린 리더에 표시되는 요소를 참조합니다.",
627			"fail": "aria-labeledby 속성이 존재하지 않거나, 존재하지 않는 요소를 참조하거나, 비어 있는 요소를 참조합니다."
628		},
629		"avoid-inline-spacing": {
630			"pass": "텍스트 간격에 영향을 주는 '!important'를 가진 인라인 스타일이 지정되지 않았습니다.",
631			"fail": {
632				"singular": "인라인 스타일에서 '!important' 제거 s ${data.values}, 이 항목을 재정의하는 것은 대부분의 브라우저에서 지원되지 않습니다.",
633				"plural": "인라인 스타일에서 '!important' 제거  ${data.values}, 이 항목을 재정의하는 것은 대부분의 브라우저에서 지원되지 않습니다."
634			}
635		},
636		"button-has-visible-text": {
637			"pass": "요소에는 스크린 리더에 표시되는 내부 텍스트가 있습니다.",
638			"fail": "요소에는 스크린 리더에서 볼 수 있는 내부 텍스트가 없습니다."
639		},
640		"doc-has-title": {
641			"pass": "문서에 비어 있지 않은 <title> 요소가 있습니다.",
642			"fail": "문서에 비어 있지 않은 <title> 요소가 없습니다."
643		},
644		"exists": {
645			"pass": "요소는 존재하지 않습니다.",
646			"fail": "요소가 존재합니다."
647		},
648		"has-alt": {
649			"pass": "요소에 alt 속성이 존재합니다.",
650			"fail": "요소에 alt 속성이 존재하지 않습니다."
651		},
652		"has-visible-text": {
653			"pass": "요소에 스크린 리더가 인식 가능한 텍스트가 존재하고 있습니다.",
654			"fail": "요소에 스크린 리더가 인식 가능한 텍스트가 존재하지 않습니다."
655		},
656		"is-on-screen": {
657			"pass": "요소가 표시되어 있지 않습니다.",
658			"fail": "요소가 표시되어 있습니다."
659		},
660		"non-empty-alt": {
661			"pass": "요소에 비어있지 않은 alt 속성이 존재합니다.",
662			"fail": "요소에 alt 속성이 존재하지 않거나, alt 속성이 비어 있습니다."
663		},
664		"non-empty-if-present": {
665			"pass": {
666				"default": "요소 값 속성이 없습니다",
667				"has-label": "요소 비어 있지 않은 값 속성이 있습니다"
668			},
669			"fail": "요소에 value 속성이 존재하고, value 속성이 비어있습니다."
670		},
671		"non-empty-title": {
672			"pass": "요소에 title 속성이 존재하고 있습니다.",
673			"fail": "요소에 title 속성이 존재하지 않거나, title 속성이 비어 있습니다."
674		},
675		"non-empty-value": {
676			"pass": "요소에 비어 있지 않은 value 요소가 존재하고 있습니다.",
677			"fail": "요소에 value 속성이 존재하지 않거나, value 속성이 비어 있습니다."
678		},
679		"role-none": {
680			"pass": "요소의 기본 의미가 role=\"none\" 역할로 재정의 되었습니다.",
681			"fail": "요소의 기본 의미가 role=\"none\" 역할로 재정의 되지 않았습니다."
682		},
683		"role-presentation": {
684			"pass": "요소의 기본 의미가 role=\"presentation\" 역할로 재정의 되었습니다.",
685			"fail": "요소의 기본 의미가 role=\"presentation\" 역할로 재정의 되지 않았습니다."
686		},
687		"caption-faked": {
688			"pass": "테이블의 첫 번째 행은 캡션으로 사용되지 않습니다.",
689			"fail": "테이블의 첫 번째 자식은 테이블 셀 대신 캡션 이어야 합니다."
690		},
691		"html5-scope": {
692			"pass": "scope 속성은 테이블 헤더 요소 (<th>)에서만 사용됩니다.",
693			"fail": "HTML5에서 scope 속성은 테이블 헤더 요소(<th>)에서만 사용할 수 있습니다."
694		},
695		"same-caption-summary": {
696			"pass": "summary 속성 및 <caption> 콘텐츠는 중복되지 않았습니다.",
697			"fail": "summary 속성 및 <caption> 콘텐츠는 중복됩니다."
698		},
699		"scope-value": {
700			"pass": "scope 속성은 올바르게 사용되고 있습니다.",
701			"fail": "scope 속성의 값은 'row' 또는 'col'뿐입니다."
702		},
703		"td-has-header": {
704			"pass": "비어 있지 않은 모든 데이터 셀에는 테이블 헤더가 있습니다.",
705			"fail": "비어 있지 않은 일부 데이터 셀에는 테이블 헤더가 없습니다."
706		},
707		"td-headers-attr": {
708			"pass": "headers 속성은 독점적으로 테이블의 다른 셀을 참조하는데 사용됩니다.",
709			"fail": "headers 속성은 테이블의 다른 셀을 참조하는데 독점적으로 사용되지 않습니다."
710		},
711		"th-has-data-cells": {
712			"pass": "모든 테이블 헤더 셀은 데이터 셀을 나타냅니다.",
713			"fail": "모든 테이블 헤더 셀이 데이터 셀을 참조하는 것은 아닙니다.",
714			"incomplete": "테이블 데이터 셀이 없거나 비어 있습니다."
715		},
716		"hidden-content": {
717			"pass": "페이지의 모든 내용이 분석되었습니다.",
718			"fail": "이 페이지의 내용을 분석하는 중에 문제가 발생했습니다.",
719			"incomplete": "분석되지 않은 숨겨진 콘텐츠가 페이지에 있습니다. 콘텐츠를 분석하려면 해당 콘텐츠의 표시를 트리거 해야 합니다."
720		}
721	},
722	"failureSummaries": {
723		"any": {
724			"failureMessage": "다음 중 하나를 수정하세요:{{~it:value}}\n  {{=value.split('\\n').join('\\n  ')}}{{~}}"
725		},
726		"none": {
727			"failureMessage": "다음 중 하나를 수정하세요:{{~it:value}}\n  {{=value.split('\\n').join('\\n  ')}}{{~}}"
728		}
729	},
730	"incompleteFallbackMessage": {
731		"undefined": {
732			"failureMessage": "다음 중 하나를 수정하세요:{{~it:value}}\n  {{=value.split('\\n').join('\\n  ')}}{{~}}"
733		}
734	}
735}
736