source: frontend/node_modules/axe-core/locales/ru.json

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 89.4 KB
Line 
1{
2 "lang": "ru",
3 "rules": {
4 "accesskeys": {
5 "description": "Убедитесь, что значение атрибута accesskey является уникальным",
6 "help": "Значение атрибута accesskey должно быть уникальным"
7 },
8 "area-alt": {
9 "description": "Убедитесь, что элементы <area> карт изображений имеют альтернативный текст",
10 "help": "Активные элементы <area> должны иметь альтернативный текст"
11 },
12 "aria-allowed-attr": {
13 "description": "Убедитесь, что роль элемента поддерживает его ARIA атрибуты",
14 "help": "Элементы должны использовать только поддерживаемые ARIA атрибуты"
15 },
16 "aria-allowed-role": {
17 "description": "Убедитесь, что атрибут role имеет допустимое значение для элемента",
18 "help": "ARIA роль должна быть подходящей для элемента"
19 },
20 "aria-braille-equivalent": {
21 "description": "Убедитесь, что aria-braillelabel и aria-brailleroledescription имеют эквивалентный текст не для шрифта Брайля",
22 "help": "Атрибуты aria-braille должны иметь эквивалентный текст не для шрифта Брайля"
23 },
24 "aria-command-name": {
25 "description": "Убедитесь, что каждая ARIA кнопка, ссылка и пункт меню имеет доступное имя",
26 "help": "ARIA команды должны иметь доступное имя"
27 },
28 "aria-conditional-attr": {
29 "description": "Убедитесь, что ARIA атрибуты используются в соответствии со спецификацией роли элемента",
30 "help": "ARIA атрибуты должны использоваться в соответствии с ролью элемента"
31 },
32 "aria-deprecated-role": {
33 "description": "Убедитесь, что элементы не используют устаревшие роли",
34 "help": "Устаревшие ARIA роли не должны использоваться"
35 },
36 "aria-dialog-name": {
37 "description": "Убедитесь, что каждая ARIA диалоговая форма и alertdialog узел имеют доступное имя",
38 "help": "ARIA диалоговые формы и alertdialog узлы должны иметь доступное имя"
39 },
40 "aria-hidden-body": {
41 "description": "Убедитесь, что aria-hidden=\"true\" отсутствует на теле документа.",
42 "help": "aria-hidden=\"true\" не должно присутствовать на теле документа"
43 },
44 "aria-hidden-focus": {
45 "description": "Убедитесь, что aria-hidden элементы не могут быть сфокусированы и не содержат фокусируемых элементов",
46 "help": "ARIA скрытые элементы не должны быть фокусируемыми или содержать фокусируемые элементы"
47 },
48 "aria-input-field-name": {
49 "description": "Убедитесь, что каждое ARIA поле ввода имеет доступное имя",
50 "help": "ARIA поля ввода должны иметь доступное имя"
51 },
52 "aria-meter-name": {
53 "description": "Убедитесь, что каждый ARIA meter узел имеет доступное имя",
54 "help": "ARIA meter узлы должны иметь доступное имя"
55 },
56 "aria-progressbar-name": {
57 "description": "Убедитесь, что каждый ARIA progressbar узел имеет доступное имя",
58 "help": "ARIA progressbar узлы должны иметь доступное имя"
59 },
60 "aria-prohibited-attr": {
61 "description": "Убедитесь, что ARIA атрибуты не запрещены для роли элемента",
62 "help": "Элементы должны использовать только разрешенные ARIA атрибуты"
63 },
64 "aria-required-attr": {
65 "description": "Убедитесь, что элементы с ARIA ролями имеют все необходимые ARIA атрибуты",
66 "help": "Необходимые ARIA атрибуты должны быть предоставлены"
67 },
68 "aria-required-children": {
69 "description": "Убедитесь, что элементы с ARIA ролями, требующими дочерние роли, содержат их",
70 "help": "Некоторые ARIA роли должны содержать определенные дочерние роли"
71 },
72 "aria-required-parent": {
73 "description": "Убедитесь, что элементы с ARIA ролями, требующими родительские роли, содержатся ими",
74 "help": "Некоторые ARIA роли должны содержаться в определенных родительских ролях"
75 },
76 "aria-roledescription": {
77 "description": "Убедитесь, что aria-roledescription используется только на элементах с явной или неявной ролью",
78 "help": "aria-roledescription должен использоваться на элементах с семантической ролью"
79 },
80 "aria-roles": {
81 "description": "Убедитесь, что все элементы с атрибутом role используют допустимое значение",
82 "help": "ARIA роли должны соответствовать допустимым значениям"
83 },
84 "aria-text": {
85 "description": "Убедитесь, что роль=\"text\" используется на элементах без фокусируемых потомков",
86 "help": "\"роль=text\" не должна иметь фокусируемых потомков"
87 },
88 "aria-toggle-field-name": {
89 "description": "Убедитесь, что каждое ARIA toggle поле имеет доступное имя",
90 "help": "ARIA toggle поля должны иметь доступное имя"
91 },
92 "aria-tooltip-name": {
93 "description": "Убедитесь, что каждый ARIA tooltip узел имеет доступное имя",
94 "help": "ARIA tooltip узлы должны иметь доступное имя"
95 },
96 "aria-treeitem-name": {
97 "description": "Убедитесь, что каждый ARIA treeitem узел имеет доступное имя",
98 "help": "ARIA treeitem узлы должны иметь доступное имя"
99 },
100 "aria-valid-attr-value": {
101 "description": "Убедитесь, что все ARIA атрибуты имеют допустимые значения",
102 "help": "ARIA атрибуты должны соответствовать допустимым значениям"
103 },
104 "aria-valid-attr": {
105 "description": "Убедитесь, что атрибуты, начинающиеся с aria-, являются допустимыми ARIA атрибутами",
106 "help": "ARIA атрибуты должны соответствовать допустимым именам"
107 },
108 "audio-caption": {
109 "description": "Убедитесь, что элементы <audio> имеют субтитры",
110 "help": "Элементы <audio> должны иметь трек субтитров"
111 },
112 "autocomplete-valid": {
113 "description": "Убедитесь, что атрибут autocomplete правильный и подходит для поля формы",
114 "help": "Атрибут autocomplete должен использоваться правильно"
115 },
116 "avoid-inline-spacing": {
117 "description": "Убедитесь, что расстояние между текстом, установленное через атрибуты стиля, можно настроить с помощью пользовательских таблиц стилей",
118 "help": "Встроенное текстовое пространство должно быть регулируемым с помощью пользовательских таблиц стилей"
119 },
120 "blink": {
121 "description": "Убедитесь, что элементы <blink> не используются",
122 "help": "Элементы <blink> устарели и не должны использоваться"
123 },
124 "button-name": {
125 "description": "Убедитесь, что кнопки имеют различимый текст",
126 "help": "Кнопки должны иметь различимый текст"
127 },
128 "bypass": {
129 "description": "Убедитесь, что на каждой странице есть хотя бы один механизм, позволяющий пользователю обходить навигацию и переходить непосредственно к содержимому",
130 "help": "На странице должен быть способ обойти повторяющиеся блоки"
131 },
132 "color-contrast-enhanced": {
133 "description": "Убедитесь, что контраст между цветами переднего и заднего плана соответствует пороговым значениям улучшенной контрастности WCAG 2 AAA",
134 "help": "Элементы должны соответствовать пороговым значениям улучшенной контрастности цвета"
135 },
136 "color-contrast": {
137 "description": "Убедитесь, что контраст между цветами переднего и заднего плана соответствует минимальным пороговым значениям контрастности WCAG 2 AA",
138 "help": "Элементы должны соответствовать минимальным пороговым значениям контрастности цвета"
139 },
140 "css-orientation-lock": {
141 "description": "Убедитесь, что содержимое не привязано к определенной ориентации дисплея, и оно доступно во всех ориентациях дисплея",
142 "help": "Медиа-запросы CSS не должны блокировать ориентацию дисплея"
143 },
144 "definition-list": {
145 "description": "Убедитесь, что элементы <dl> структурированы правильно",
146 "help": "Элементы <dl> должны содержать только группы <dt> и <dd>, <script>, <template> или <div> элементы"
147 },
148 "dlitem": {
149 "description": "Убедитесь, что элементы <dt> и <dd> находятся внутри <dl>",
150 "help": "Элементы <dt> и <dd> должны быть размещены внутри <dl>"
151 },
152 "document-title": {
153 "description": "Убедитесь, что каждый HTML-документ содержит непустой элемент <title>",
154 "help": "Документы должны иметь элемент <title> для навигации"
155 },
156 "duplicate-id-active": {
157 "description": "Убедитесь, что каждое значение атрибута id активных элементов уникально",
158 "help": "Идентификаторы активных элементов должны быть уникальными"
159 },
160 "duplicate-id-aria": {
161 "description": "Убедитесь, что каждое значение атрибута id, используемого в ARIA и метках, уникально",
162 "help": "Идентификаторы, используемые в ARIA и метках, должны быть уникальными"
163 },
164 "duplicate-id": {
165 "description": "Убедитесь, что каждое значение атрибута id уникально",
166 "help": "Значение атрибута id должно быть уникальным"
167 },
168 "empty-heading": {
169 "description": "Убедитесь, что заголовки содержат различимый текст",
170 "help": "Заголовки не должны быть пустыми"
171 },
172 "empty-table-header": {
173 "description": "Убедитесь, что заголовки таблиц содержат различимый текст",
174 "help": "Текст заголовка таблицы не должен быть пустым"
175 },
176 "focus-order-semantics": {
177 "description": "Убедитесь, что элементы в порядке фокуса имеют роль, соответствующую интерактивному содержимому",
178 "help": "Элементы в порядке фокуса должны иметь соответствующую роль"
179 },
180 "form-field-multiple-labels": {
181 "description": "Убедитесь, что поле формы не имеет нескольких элементов label",
182 "help": "Поле формы не должно иметь несколько элементов label"
183 },
184 "frame-focusable-content": {
185 "description": "Убедитесь, что элементы <frame> и <iframe> с фокусируемым содержимым не имеют tabindex=-1",
186 "help": "Фреймы с фокусируемым содержимым не должны иметь tabindex=-1"
187 },
188 "frame-tested": {
189 "description": "Убедитесь, что элементы <iframe> и <frame> содержат скрипт axe-core",
190 "help": "Фреймы должны быть протестированы с помощью axe-core"
191 },
192 "frame-title-unique": {
193 "description": "Убедитесь, что элементы <iframe> и <frame> содержат уникальный атрибут title",
194 "help": "Фреймы должны иметь уникальный атрибут title"
195 },
196 "frame-title": {
197 "description": "Убедитесь, что элементы <iframe> и <frame> имеют доступное имя",
198 "help": "Фреймы должны иметь доступное имя"
199 },
200 "heading-order": {
201 "description": "Убедитесь, что порядок заголовков соответствует семантической структуре",
202 "help": "Уровни заголовков должны увеличиваться на единицу"
203 },
204 "hidden-content": {
205 "description": "Информирует пользователей о скрытом содержимом.",
206 "help": "Скрытое содержимое на странице должно быть проанализировано"
207 },
208 "html-has-lang": {
209 "description": "Убедитесь, что каждый HTML-документ имеет атрибут lang",
210 "help": "Элемент <html> должен иметь атрибут lang"
211 },
212 "html-lang-valid": {
213 "description": "Убедитесь, что атрибут lang элемента <html> имеет допустимое значение",
214 "help": "Элемент <html> должен иметь допустимое значение для атрибута lang"
215 },
216 "html-xml-lang-mismatch": {
217 "description": "Убедитесь, что HTML элементы с атрибутами lang и xml:lang согласуются в базовом языке страницы",
218 "help": "HTML элементы с атрибутами lang и xml:lang должны согласоваться в базовом языке"
219 },
220 "identical-links-same-purpose": {
221 "description": "Убедитесь, что ссылки с одинаковым доступным именем выполняют схожую цель",
222 "help": "Ссылки с одинаковым именем должны выполнять схожую цель"
223 },
224 "image-alt": {
225 "description": "Убедитесь, что элементы <img> имеют альтернативный текст или роль \"none\" или \"presentation\"",
226 "help": "Изображения должны иметь альтернативный текст"
227 },
228 "image-redundant-alt": {
229 "description": "Убедитесь, что альтернативный текст изображения не повторяется в тексте",
230 "help": "Альтернативный текст изображения не должен повторяться в тексте"
231 },
232 "input-button-name": {
233 "description": "Убедитесь, что кнопки ввода имеют различимый текст",
234 "help": "Кнопки ввода должны иметь различимый текст"
235 },
236 "input-image-alt": {
237 "description": "Убедитесь, что элементы <input type=\"image\"> имеют альтернативный текст",
238 "help": "Кнопки изображения должны иметь альтернативный текст"
239 },
240 "label-content-name-mismatch": {
241 "description": "Убедитесь, что элементы, маркированные через их содержимое, содержат видимый текст как часть доступного имени",
242 "help": "Элементы должны содержать видимый текст как часть доступного имени"
243 },
244 "label-title-only": {
245 "description": "Убедитесь, что каждый элемент формы имеет видимую метку и не маркируется исключительно скрытыми метками, или атрибутами title или aria-describedby",
246 "help": "Элементы формы должны иметь видимую метку"
247 },
248 "label": {
249 "description": "Убедитесь, что каждый элемент формы имеет метку",
250 "help": "Элементы формы должны иметь метки"
251 },
252 "landmark-banner-is-top-level": {
253 "description": "Убедитесь, что область баннера находится на верхнем уровне",
254 "help": "Область баннера не должна быть вложена в другую область"
255 },
256 "landmark-complementary-is-top-level": {
257 "description": "Убедитесь, что дополнительная область или aside находятся на верхнем уровне",
258 "help": "Aside не должен быть вложен в другую область"
259 },
260 "landmark-contentinfo-is-top-level": {
261 "description": "Убедитесь, что область contentinfo находится на верхнем уровне",
262 "help": "Область contentinfo не должна быть вложена в другую область"
263 },
264 "landmark-main-is-top-level": {
265 "description": "Убедитесь, что область main находится на верхнем уровне",
266 "help": "Область main не должна быть вложена в другую область"
267 },
268 "landmark-no-duplicate-banner": {
269 "description": "Убедитесь, что документ содержит не более одного баннера",
270 "help": "Документ не должен содержать более одного баннера"
271 },
272 "landmark-no-duplicate-contentinfo": {
273 "description": "Убедитесь, что документ содержит не более одной области contentinfo",
274 "help": "Документ не должен содержать более одной области contentinfo"
275 },
276 "landmark-no-duplicate-main": {
277 "description": "Убедитесь, что документ содержит не более одной области main",
278 "help": "Документ не должен содержать более одной области main"
279 },
280 "landmark-one-main": {
281 "description": "Убедитесь, что документ содержит одну основную область",
282 "help": "Документ должен содержать одну основную область"
283 },
284 "landmark-unique": {
285 "description": "Убедитесь, что области уникальны",
286 "help": "Области должны иметь уникальную роль или комбинацию роли/метки/названия (т.е. доступное имя)"
287 },
288 "link-in-text-block": {
289 "description": "Убедитесь, что ссылки выделяются на фоне окружающего текста, не полагаясь только на цвет",
290 "help": "Ссылки должны быть различимы без использования цвета"
291 },
292 "link-name": {
293 "description": "Убедитесь, что ссылки содержат различимый текст",
294 "help": "Ссылки должны содержать различимый текст"
295 },
296 "list": {
297 "description": "Убедитесь, что списки структурированы правильно",
298 "help": "Элементы <ul> и <ol> должны содержать только элементы <li>, <script> или <template>"
299 },
300 "listitem": {
301 "description": "Убедитесь, что элементы <li> используются семантически правильно",
302 "help": "Элементы <li> должны быть вложены в <ul> или <ol>"
303 },
304 "marquee": {
305 "description": "Убедитесь, что элементы <marquee> не используются",
306 "help": "Элементы <marquee> устарели и не должны использоваться"
307 },
308 "meta-refresh-no-exceptions": {
309 "description": "Убедитесь, что <meta http-equiv=\"refresh\"> не используется для отложенного обновления",
310 "help": "Отложенное обновление не должно использоваться"
311 },
312 "meta-refresh": {
313 "description": "Убедитесь, что <meta http-equiv=\"refresh\"> не используется для отложенного обновления",
314 "help": "Отложенное обновление менее 20 часов не должно использоваться"
315 },
316 "meta-viewport-large": {
317 "description": "Убедитесь, что <meta name=\"viewport\"> позволяет значительное масштабирование",
318 "help": "Пользователи должны иметь возможность увеличивать и масштабировать текст до 500%"
319 },
320 "meta-viewport": {
321 "description": "Убедитесь, что <meta name=\"viewport\"> не отключает масштабирование и увеличение текста",
322 "help": "Масштабирование и увеличение текста не должны быть отключены"
323 },
324 "nested-interactive": {
325 "description": "Убедитесь, что интерактивные элементы не вложены, так как они могут не озвучиваться экранными считывателями или вызывать проблемы с фокусом для вспомогательных технологий",
326 "help": "Интерактивные элементы не должны быть вложены"
327 },
328 "no-autoplay-audio": {
329 "description": "Убедитесь, что элементы <video> или <audio> не воспроизводят аудио автоматически более 3 секунд без механизма для его остановки или отключения",
330 "help": "Элементы <video> или <audio> не должны воспроизводиться автоматически"
331 },
332 "object-alt": {
333 "description": "Убедитесь, что элементы <object> имеют альтернативный текст",
334 "help": "Элементы <object> должны иметь альтернативный текст"
335 },
336 "p-as-heading": {
337 "description": "Убедитесь, что текст, оформленный как жирный, курсивный или с измененным размером шрифта, не используется для оформления элементов <p> в качестве заголовков",
338 "help": "Оформленные элементы <p> не должны использоваться как заголовки"
339 },
340 "page-has-heading-one": {
341 "description": "Убедитесь, что страница или хотя бы один из ее фреймов содержит заголовок первого уровня",
342 "help": "Страница должна содержать заголовок первого уровня"
343 },
344 "presentation-role-conflict": {
345 "description": "Элементы, отмеченные как презентационные, не должны иметь глобальные ARIA атрибуты или tabindex, чтобы все экранные считыватели игнорировали их",
346 "help": "Убедитесь, что элементы, отмеченные как презентационные, последовательно игнорируются"
347 },
348 "region": {
349 "description": "Убедитесь, что все содержимое страницы заключено в ориентиры",
350 "help": "Все содержимое страницы должно быть заключено в ориентиры"
351 },
352 "role-img-alt": {
353 "description": "Убедитесь, что элементы с ролью [role=\"img\"] имеют альтернативный текст",
354 "help": "Элементы с ролью [role=\"img\"] должны иметь альтернативный текст"
355 },
356 "scope-attr-valid": {
357 "description": "Убедитесь, что атрибут scope используется правильно в таблицах",
358 "help": "Атрибут scope должен использоваться правильно"
359 },
360 "scrollable-region-focusable": {
361 "description": "Убедитесь, что элементы с прокручиваемым содержимым доступны с клавиатуры",
362 "help": "Прокручиваемая область должна быть доступна с клавиатуры"
363 },
364 "select-name": {
365 "description": "Убедитесь, что элемент select имеет доступное имя",
366 "help": "Элемент select должен иметь доступное имя"
367 },
368 "server-side-image-map": {
369 "description": "Убедитесь, что серверные карты изображений не используются",
370 "help": "Серверные карты изображений не должны использоваться"
371 },
372 "skip-link": {
373 "description": "Убедитесь, что все ссылки для пропуска имеют фокусируемую цель",
374 "help": "Цель ссылки для пропуска должна существовать и быть фокусируемой"
375 },
376 "summary-name": {
377 "description": "Убедитесь, что элементы summary содержат различимый текст",
378 "help": "Элементы summary должны содержать различимый текст"
379 },
380 "svg-img-alt": {
381 "description": "Убедитесь, что элементы <svg> с ролью img, graphics-document или graphics-symbol имеют доступный текст",
382 "help": "Элементы <svg> с ролью img должны иметь альтернативный текст"
383 },
384 "tabindex": {
385 "description": "Убедитесь, что значения атрибута tabindex не превышают 0",
386 "help": "Элементы не должны иметь tabindex больше нуля"
387 },
388 "table-duplicate-name": {
389 "description": "Убедитесь, что элемент <caption> не содержит тот же текст, что и атрибут summary",
390 "help": "Таблицы не должны иметь одинаковый summary и caption"
391 },
392 "table-fake-caption": {
393 "description": "Убедитесь, что таблицы с заголовком используют элемент <caption>",
394 "help": "Данные или заголовочные ячейки не должны использоваться для заголовка таблицы"
395 },
396 "target-size": {
397 "description": "Убедитесь, что целевые элементы для касания имеют достаточный размер и пространство",
398 "help": "Все целевые элементы для касания должны быть не менее 24px или иметь достаточное пространство"
399 },
400 "td-has-header": {
401 "description": "Убедитесь, что каждая непустая ячейка данных в таблице больше 3 на 3 имеет один или несколько заголовков таблицы",
402 "help": "Непустые элементы <td> в больших таблицах должны иметь связанные заголовки таблицы"
403 },
404 "td-headers-attr": {
405 "description": "Убедитесь, что каждая ячейка в таблице, использующая атрибут headers, ссылается только на другие элементы <th> в этой таблице",
406 "help": "Атрибуты headers ячеек таблицы должны ссылаться на другие элементы <th> в той же таблице"
407 },
408 "th-has-data-cells": {
409 "description": "Убедитесь, что элементы <th> и элементы с ролью columnheader/rowheader имеют ячейки данных, которые они описывают",
410 "help": "Заголовки таблицы в таблице данных должны ссылаться на ячейки данных"
411 },
412 "valid-lang": {
413 "description": "Убедитесь, что атрибуты lang имеют допустимые значения",
414 "help": "Атрибут lang должен иметь допустимое значение"
415 },
416 "video-caption": {
417 "description": "Убедитесь, что элементы <video> имеют субтитры",
418 "help": "Элементы <video> должны иметь субтитры"
419 }
420 },
421 "checks": {
422 "abstractrole": {
423 "pass": "Абстрактные роли не используются",
424 "fail": {
425 "singular": "Абстрактная роль не может быть использована напрямую: ${data.values}",
426 "plural": "Абстрактные роли не могут быть использованы напрямую: ${data.values}"
427 }
428 },
429 "aria-allowed-attr": {
430 "pass": "ARIA атрибуты используются правильно для заданной роли",
431 "fail": {
432 "singular": "ARIA атрибут не допускается: ${data.values}",
433 "plural": "ARIA атрибуты не допускаются: ${data.values}"
434 },
435 "incomplete": "Проверьте, не возникает ли проблема, если атрибут ARIA будет проигнорирован на этом элементе: ${data.values}"
436 },
437 "aria-allowed-role": {
438 "pass": "ARIA роль допустима для данного элемента",
439 "fail": {
440 "singular": "ARIA роль ${data.values} не допускается для данного элемента",
441 "plural": "ARIA роли ${data.values} не допускаются для данного элемента"
442 },
443 "incomplete": {
444 "singular": "ARIA роль ${data.values} должна быть удалена, когда элемент становится видимым, так как она не допускается для элемента",
445 "plural": "ARIA роли ${data.values} должны быть удалены, когда элемент становится видимым, так как они не допускаются для элемента"
446 }
447 },
448 "aria-busy": {
449 "pass": "Элемент имеет атрибут aria-busy",
450 "fail": "Элемент использует aria-busy=\"true\", пока отображается индикатор загрузки"
451 },
452 "aria-conditional-attr": {
453 "pass": "ARIA атрибут допустим",
454 "fail": {
455 "checkbox": "Удалите aria-checked или установите его значение в \"${data.checkState}\", чтобы оно соответствовало фактическому состоянию флажка",
456 "rowSingular": "Этот атрибут поддерживается для строк treegrid, но не для ${data.ownerRole}: ${data.invalidAttrs}",
457 "rowPlural": "Эти атрибуты поддерживаются для строк treegrid, но не для ${data.ownerRole}: ${data.invalidAttrs}"
458 }
459 },
460 "aria-errormessage": {
461 "pass": "aria-errormessage существует и ссылается на элементы, видимые для экранных считывателей, которые используют поддерживаемую технику aria-errormessage",
462 "fail": {
463 "singular": "Значение aria-errormessage `${data.values}` должно использовать технику для объявления сообщения (например, aria-live, aria-describedby, role=alert и т.д.)",
464 "plural": "Значения aria-errormessage `${data.values}` должны использовать технику для объявления сообщения (например, aria-live, aria-describedby, role=alert и т.д.)",
465 "hidden": "Значение aria-errormessage `${data.values}` не может ссылаться на скрытый элемент"
466 },
467 "incomplete": {
468 "singular": "Убедитесь, что значение aria-errormessage `${data.values}` ссылается на существующий элемент",
469 "plural": "Убедитесь, что значения aria-errormessage `${data.values}` ссылаются на существующие элементы",
470 "idrefs": "Невозможно определить, существует ли элемент aria-errormessage на странице: ${data.values}"
471 }
472 },
473 "aria-hidden-body": {
474 "pass": "Атрибут aria-hidden отсутствует на теле документа",
475 "fail": "aria-hidden=true не должно присутствовать на теле документа"
476 },
477 "aria-level": {
478 "pass": "Значения aria-level допустимы",
479 "incomplete": "Значения aria-level больше 6 не поддерживаются всеми комбинациями экранных считывателей и браузеров"
480 },
481 "aria-prohibited-attr": {
482 "pass": "ARIA атрибут допустим",
483 "fail": {
484 "hasRolePlural": "Атрибуты ${data.prohibited} не могут использоваться с ролью \"${data.role}\".",
485 "hasRoleSingular": "Атрибут ${data.prohibited} не может использоваться с ролью \"${data.role}\".",
486 "noRolePlural": "Атрибуты ${data.prohibited} не могут использоваться на ${data.nodeName} без допустимого атрибута role.",
487 "noRoleSingular": "Атрибут ${data.prohibited} не может использоваться на ${data.nodeName} без допустимого атрибута role."
488 },
489 "incomplete": {
490 "hasRoleSingular": "Атрибут ${data.prohibited} не поддерживается с ролью \"${data.role}\".",
491 "hasRolePlural": "Атрибуты ${data.prohibited} не поддерживаются с ролью \"${data.role}\".",
492 "noRoleSingular": "Атрибут ${data.prohibited} не поддерживается на ${data.nodeName} без допустимого атрибута role.",
493 "noRolePlural": "Атрибуты ${data.prohibited} не поддерживаются на ${data.nodeName} без допустимого атрибута role."
494 }
495 },
496 "aria-required-attr": {
497 "pass": "Все необходимые ARIA атрибуты присутствуют",
498 "fail": {
499 "singular": "Необходимый ARIA атрибут отсутствует: ${data.values}",
500 "plural": "Необходимые ARIA атрибуты отсутствуют: ${data.values}"
501 }
502 },
503 "aria-required-children": {
504 "pass": {
505 "default": "Необходимые ARIA дочерние элементы присутствуют",
506 "aria-busy": "Элемент имеет атрибут aria-busy, поэтому разрешено пропускать необходимые дочерние элементы"
507 },
508 "fail": {
509 "singular": "Необходимая ARIA дочерняя роль отсутствует: ${data.values}",
510 "plural": "Необходимые ARIA дочерние роли отсутствуют: ${data.values}",
511 "unallowed": "Элемент имеет недопустимые дочерние элементы: ${data.values}"
512 },
513 "incomplete": {
514 "singular": "Ожидается добавление ARIA дочерней роли: ${data.values}",
515 "plural": "Ожидается добавление ARIA дочерних ролей: ${data.values}"
516 }
517 },
518 "aria-required-parent": {
519 "pass": "Необходимая ARIA родительская роль присутствует",
520 "fail": {
521 "singular": "Необходимая ARIA родительская роль отсутствует: ${data.values}",
522 "plural": "Необходимые ARIA родительские роли отсутствуют: ${data.values}"
523 }
524 },
525 "aria-roledescription": {
526 "pass": "aria-roledescription используется на поддерживаемой семантической роли",
527 "incomplete": "Проверьте, объявляется ли aria-roledescription поддерживаемыми экранными считывателями",
528 "fail": "Назначьте элементу роль, поддерживающую aria-roledescription"
529 },
530 "aria-unsupported-attr": {
531 "pass": "ARIA атрибут поддерживается",
532 "fail": "ARIA атрибут не поддерживается в большинстве экранных считывателей и вспомогательных технологий: ${data.values}"
533 },
534 "aria-valid-attr-value": {
535 "pass": "Значения ARIA атрибутов допустимы",
536 "fail": {
537 "singular": "Недопустимое значение ARIA атрибута: ${data.values}",
538 "plural": "Недопустимые значения ARIA атрибутов: ${data.values}"
539 },
540 "incomplete": {
541 "noId": "Элемент ID атрибута ARIA не существует на странице: ${data.needsReview}",
542 "noIdShadow": "Элемент ID атрибута ARIA не существует на странице или является потомком другого дерева теневых DOM: ${data.needsReview}",
543 "ariaCurrent": "Значение атрибута ARIA недопустимо и будет трактоваться как \"aria-current=true\": ${data.needsReview}",
544 "idrefs": "Невозможно определить, существует ли элемент ID атрибута ARIA на странице: ${data.needsReview}",
545 "empty": "Значение атрибута ARIA игнорируется, если оно пустое: ${data.needsReview}",
546 "controlsWithinPopup": "Невозможно определить, существует ли ссылка на ID атрибута aria-controls на странице при использовании aria-haspopup: ${data.needsReview}"
547 }
548 },
549 "aria-valid-attr": {
550 "pass": "Имя ARIA атрибута допустимо",
551 "fail": {
552 "singular": "Недопустимое имя ARIA атрибута: ${data.values}",
553 "plural": "Недопустимые имена ARIA атрибутов: ${data.values}"
554 }
555 },
556 "braille-label-equivalent": {
557 "pass": "aria-braillelabel используется на элементе с доступным текстом",
558 "fail": "aria-braillelabel используется на элементе без доступного текста",
559 "incomplete": "Не удалось вычислить доступный текст"
560 },
561 "braille-roledescription-equivalent": {
562 "pass": "aria-brailleroledescription используется на элементе с aria-roledescription",
563 "fail": {
564 "noRoleDescription": "aria-brailleroledescription используется на элементе без aria-roledescription",
565 "emptyRoleDescription": "aria-brailleroledescription используется на элементе с пустым aria-roledescription"
566 }
567 },
568 "deprecatedrole": {
569 "pass": "ARIA роль не устарела",
570 "fail": "Используемая роль устарела: ${data}"
571 },
572 "fallbackrole": {
573 "pass": "Используется только одно значение роли",
574 "fail": "Используйте только одно значение роли, так как резервные роли не поддерживаются в старых браузерах",
575 "incomplete": "Используйте только роль 'presentation' или 'none', так как они являются синонимами."
576 },
577 "has-global-aria-attribute": {
578 "pass": {
579 "singular": "Элемент имеет глобальный ARIA атрибут: ${data.values}",
580 "plural": "Элемент имеет глобальные ARIA атрибуты: ${data.values}"
581 },
582 "fail": "Элемент не имеет глобального ARIA атрибута"
583 },
584 "has-widget-role": {
585 "pass": "Элемент имеет роль виджета.",
586 "fail": "Элемент не имеет роли виджета."
587 },
588 "invalidrole": {
589 "pass": "ARIA роль допустима",
590 "fail": {
591 "singular": "Роль должна быть одной из допустимых ARIA ролей: ${data.values}",
592 "plural": "Роли должны быть одной из допустимых ARIA ролей: ${data.values}"
593 }
594 },
595 "is-element-focusable": {
596 "pass": "Элемент может быть сфокусирован.",
597 "fail": "Элемент не может быть сфокусирован."
598 },
599 "no-implicit-explicit-label": {
600 "pass": "Нет несоответствия между <label> и доступным именем",
601 "incomplete": "Проверьте, нужно ли, чтобы <label> был частью имени поля ARIA ${data}"
602 },
603 "unsupportedrole": {
604 "pass": "ARIA роль поддерживается",
605 "fail": "Используемая роль не поддерживается большинством экранных считывателей и вспомогательных технологий: ${data}"
606 },
607 "valid-scrollable-semantics": {
608 "pass": "Элемент имеет допустимую семантику для элемента в порядке фокусировки.",
609 "fail": "Элемент имеет недопустимую семантику для элемента в порядке фокусировки."
610 },
611 "color-contrast-enhanced": {
612 "pass": "Элемент имеет достаточный цветовой контраст ${data.contrastRatio}",
613 "fail": {
614 "default": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} (цвет переднего плана: ${data.fgColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}",
615 "fgOnShadowColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом переднего плана и тенью (цвет переднего плана: ${data.fgColor}, цвет текстовой тени: ${data.shadowColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}",
616 "shadowOnBgColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом тени и фоном (цвет текстовой тени: ${data.shadowColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}"
617 },
618 "incomplete": {
619 "default": "Невозможно определить коэффициент контрастности",
620 "bgImage": "Невозможно определить цвет фона элемента из-за изображения на фоне",
621 "bgGradient": "Невозможно определить цвет фона элемента из-за градиента на фоне",
622 "imgNode": "Невозможно определить цвет фона элемента, так как он содержит изображение",
623 "bgOverlap": "Невозможно определить цвет фона элемента, так как он перекрыт другим элементом",
624 "fgAlpha": "Невозможно определить цвет переднего плана элемента из-за прозрачности альфа-канала",
625 "elmPartiallyObscured": "Невозможно определить цвет фона элемента, так как он частично перекрыт другим элементом",
626 "elmPartiallyObscuring": "Невозможно определить цвет фона элемента, так как он частично перекрывает другие элементы",
627 "outsideViewport": "Невозможно определить цвет фона элемента, так как он находится за пределами видимой области",
628 "equalRatio": "Элемент имеет коэффициент контрастности 1:1 с фоном",
629 "shortTextContent": "Содержимое элемента слишком короткое, чтобы определить, является ли оно текстом",
630 "nonBmp": "Содержимое элемента содержит только не текстовые символы",
631 "pseudoContent": "Невозможно определить цвет фона элемента из-за псевдоэлемента"
632 }
633 },
634 "color-contrast": {
635 "pass": {
636 "default": "Элемент имеет достаточный цветовой контраст ${data.contrastRatio}",
637 "hidden": "Элемент скрыт"
638 },
639 "fail": {
640 "default": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} (цвет переднего плана: ${data.fgColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}",
641 "fgOnShadowColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом переднего плана и тенью (цвет переднего плана: ${data.fgColor}, цвет текстовой тени: ${data.shadowColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}",
642 "shadowOnBgColor": "Элемент имеет недостаточный цветовой контраст ${data.contrastRatio} между цветом тени и фоном (цвет текстовой тени: ${data.shadowColor}, цвет фона: ${data.bgColor}, размер шрифта: ${data.fontSize}, толщина шрифта: ${data.fontWeight}). Ожидаемый коэффициент контрастности ${data.expectedContrastRatio}"
643 },
644 "incomplete": {
645 "default": "Невозможно определить коэффициент контрастности",
646 "bgImage": "Невозможно определить цвет фона элемента из-за изображения на фоне",
647 "bgGradient": "Невозможно определить цвет фона элемента из-за градиента на фоне",
648 "imgNode": "Невозможно определить цвет фона элемента, так как он содержит изображение",
649 "bgOverlap": "Невозможно определить цвет фона элемента, так как он перекрыт другим элементом",
650 "complexTextShadows": "Невозможно определить контрастность элемента из-за сложных теней текста",
651 "fgAlpha": "Невозможно определить цвет переднего плана элемента из-за прозрачности альфа-канала",
652 "elmPartiallyObscured": "Невозможно определить цвет фона элемента, так как он частично перекрыт другим элементом",
653 "elmPartiallyObscuring": "Невозможно определить цвет фона элемента, так как он частично перекрывает другие элементы",
654 "outsideViewport": "Невозможно определить цвет фона элемента, так как он находится за пределами видимой области",
655 "equalRatio": "Элемент имеет коэффициент контрастности 1:1 с фоном",
656 "shortTextContent": "Содержимое элемента слишком короткое, чтобы определить, является ли оно текстом",
657 "nonBmp": "Содержимое элемента содержит только не текстовые символы",
658 "pseudoContent": "Невозможно определить цвет фона элемента из-за псевдоэлемента"
659 }
660 },
661 "link-in-text-block-style": {
662 "pass": "Ссылки могут быть выделены среди окружающего текста с помощью визуального стиля",
663 "incomplete": {
664 "default": "Проверьте, нужно ли оформлять ссылку, чтобы отличить её от окружающего текста",
665 "pseudoContent": "Проверьте, достаточно ли псевдо-стиля ссылки, чтобы отличить её от окружающего текста"
666 },
667 "fail": "Ссылка не имеет стиля (например, подчеркивания), чтобы отличить её от окружающего текста"
668 },
669 "link-in-text-block": {
670 "pass": "Ссылки можно отличить от окружающего текста каким-либо способом, кроме цвета",
671 "fail": {
672 "fgContrast": "У ссылки недостаточный цветовой контраст ${data.contrastRatio}:1 с окружающим текстом. (Минимальный контраст ${data.requiredContrastRatio}:1, текст ссылки: ${data.nodeColor}, окружающий текст: ${data.parentColor})",
673 "bgContrast": "Фон ссылки имеет недостаточный цветовой контраст ${data.contrastRatio} (Минимальный контраст ${data.requiredContrastRatio}:1, цвет фона ссылки: ${data.nodeBackgroundColor}, цвет фона окружающего текста: ${data.parentBackgroundColor})"
674 },
675 "incomplete": {
676 "default": "Невозможно определить контрастность переднего плана элемента",
677 "bgContrast": "Невозможно определить контрастность фона элемента",
678 "bgImage": "Невозможно определить контрастность элемента из-за изображения на фоне",
679 "bgGradient": "Невозможно определить контрастность элемента из-за градиента на фоне",
680 "imgNode": "Невозможно определить контрастность элемента, так как он содержит изображение",
681 "bgOverlap": "Невозможно определить контрастность элемента, так как он перекрыт другим элементом"
682 }
683 },
684 "autocomplete-appropriate": {
685 "pass": "Значение autocomplete подходит для данного элемента",
686 "fail": "Значение autocomplete не подходит для этого типа ввода"
687 },
688 "autocomplete-valid": {
689 "pass": "Атрибут autocomplete правильно отформатирован",
690 "fail": "Атрибут autocomplete неправильно отформатирован",
691 "incomplete": "Атрибут autocomplete имеет нестандартное значение. Проверьте, можно ли использовать вместо него какое-либо стандартное значение."
692 },
693 "accesskeys": {
694 "pass": "Значение атрибута accesskey уникально",
695 "fail": "Документ содержит несколько элементов с одинаковым значением accesskey"
696 },
697 "focusable-content": {
698 "pass": "Элемент содержит фокусируемые элементы",
699 "fail": "Элемент должен содержать фокусируемое содержимое"
700 },
701 "focusable-disabled": {
702 "pass": "Внутри элемента нет фокусируемых элементов",
703 "incomplete": "Проверьте, немедленно ли индикатор фокуса перемещается на фокусируемые элементы",
704 "fail": "Фокусируемое содержимое должно быть отключено или удалено из DOM"
705 },
706 "focusable-element": {
707 "pass": "Элемент является фокусируемым",
708 "fail": "Элемент должен быть фокусируемым"
709 },
710 "focusable-modal-open": {
711 "pass": "Нет фокусируемых элементов при открытии модального окна",
712 "incomplete": "Проверьте, что фокусируемые элементы не являются доступными в текущем состоянии"
713 },
714 "focusable-no-name": {
715 "pass": "Элемент не находится в таб-ордре или имеет доступный текст",
716 "fail": "Элемент находится в таб-ордре и не имеет доступного текста",
717 "incomplete": "Невозможно определить, есть ли у элемента доступное имя"
718 },
719 "focusable-not-tabbable": {
720 "pass": "Внутри элемента нет фокусируемых элементов",
721 "incomplete": "Проверьте, немедленно ли индикатор фокуса перемещается на фокусируемые элементы",
722 "fail": "Фокусируемое содержимое должно иметь tabindex=\"-1\" или быть удалено из DOM"
723 },
724 "frame-focusable-content": {
725 "pass": "Элемент не имеет фокусируемых потомков",
726 "fail": "Элемент имеет фокусируемых потомков",
727 "incomplete": "Невозможно определить, есть ли у элемента потомки"
728 },
729 "landmark-is-top-level": {
730 "pass": "${data.role} область находится на верхнем уровне.",
731 "fail": "${data.role} область содержится в другой области."
732 },
733 "no-focusable-content": {
734 "pass": "Элемент не имеет фокусируемых потомков",
735 "fail": {
736 "default": "Элемент имеет фокусируемых потомков",
737 "notHidden": "Использование отрицательного tabindex на элементе внутри интерактивного управления не предотвращает фокусировку элемента вспомогательными технологиями (даже с aria-hidden=\"true\")"
738 },
739 "incomplete": "Невозможно определить, есть ли у элемента потомки"
740 },
741 "page-has-heading-one": {
742 "pass": "На странице есть хотя бы один заголовок первого уровня",
743 "fail": "На странице должен быть заголовок первого уровня"
744 },
745 "page-has-main": {
746 "pass": "В документе есть хотя бы одна основная область",
747 "fail": "В документе нет основной области"
748 },
749 "page-no-duplicate-banner": {
750 "pass": "В документе нет более одного баннера",
751 "fail": "В документе более одного баннера"
752 },
753 "page-no-duplicate-contentinfo": {
754 "pass": "В документе нет более одной области contentinfo",
755 "fail": "В документе более одной области contentinfo"
756 },
757 "page-no-duplicate-main": {
758 "pass": "В документе нет более одной основной области",
759 "fail": "В документе более одной основной области"
760 },
761 "tabindex": {
762 "pass": "Элемент не имеет tabindex больше 0",
763 "fail": "Элемент имеет tabindex больше 0"
764 },
765 "alt-space-value": {
766 "pass": "Элемент имеет допустимое значение атрибута alt",
767 "fail": "Элемент имеет атрибут alt, содержащий только пробельный символ, который не игнорируется всеми экранными считывателями"
768 },
769 "duplicate-img-label": {
770 "pass": "Элемент не дублирует существующий текст в тексте атрибута alt <img>",
771 "fail": "Элемент содержит <img> с текстом атрибута alt, дублирующим существующий текст"
772 },
773 "explicit-label": {
774 "pass": "Элемент формы имеет явную <label>",
775 "fail": "Элемент формы не имеет явной <label>",
776 "incomplete": "Невозможно определить, имеет ли элемент формы явную <label>"
777 },
778 "help-same-as-label": {
779 "pass": "Текст помощи (title или aria-describedby) не дублирует текст метки",
780 "fail": "Текст помощи (title или aria-describedby) совпадает с текстом метки"
781 },
782 "hidden-explicit-label": {
783 "pass": "Элемент формы имеет видимую явную <label>",
784 "fail": "Элемент формы имеет явную <label>, которая скрыта",
785 "incomplete": "Невозможно определить, имеет ли элемент формы явную <label>, которая скрыта"
786 },
787 "implicit-label": {
788 "pass": "Элемент формы имеет неявную (обернутую) <label>",
789 "fail": "Элемент формы не имеет неявной (обернутой) <label>",
790 "incomplete": "Невозможно определить, имеет ли элемент формы неявную (обернутую) <label>"
791 },
792 "label-content-name-mismatch": {
793 "pass": "Элемент содержит видимый текст как часть его доступного имени",
794 "fail": "Текст внутри элемента не включен в доступное имя"
795 },
796 "multiple-label": {
797 "pass": "Поле формы не имеет нескольких элементов label",
798 "incomplete": "Использование нескольких элементов label не поддерживается большинством вспомогательных технологий. Убедитесь, что первый элемент label содержит всю необходимую информацию."
799 },
800 "title-only": {
801 "pass": "Элемент формы не использует только атрибут title для своей метки",
802 "fail": "Для создания метки элемента формы используется только атрибут title"
803 },
804 "landmark-is-unique": {
805 "pass": "Ориентиры должны иметь уникальную роль или комбинацию роли/метки/названия (т.е. доступное имя)",
806 "fail": "Ориентир должен иметь уникальный aria-label, aria-labelledby или title, чтобы сделать ориентиры различимыми"
807 },
808 "has-lang": {
809 "pass": "Элемент <html> имеет атрибут lang",
810 "fail": {
811 "noXHTML": "Атрибут xml:lang недействителен на HTML страницах, используйте атрибут lang.",
812 "noLang": "Элемент <html> не имеет атрибута lang"
813 }
814 },
815 "valid-lang": {
816 "pass": "Значение атрибута lang включено в список допустимых языков",
817 "fail": "Значение атрибута lang не включено в список допустимых языков"
818 },
819 "xml-lang-mismatch": {
820 "pass": "Атрибуты lang и xml:lang имеют один и тот же базовый язык",
821 "fail": "Атрибуты lang и xml:lang не имеют один и тот же базовый язык"
822 },
823 "dlitem": {
824 "pass": "Элемент описания списка имеет родительский элемент <dl>",
825 "fail": "Элемент описания списка не имеет родительского элемента <dl>"
826 },
827 "listitem": {
828 "pass": "Элемент списка имеет родительский элемент <ul>, <ol> или роль=\"list\"",
829 "fail": {
830 "default": "Элемент списка не имеет родительского элемента <ul>, <ol>",
831 "roleNotValid": "Родительский элемент списка имеет роль, которая не является ролью=\"list\""
832 }
833 },
834 "only-dlitems": {
835 "pass": "Элемент dl содержит только допустимые дочерние элементы; <dt>, <dd> или <div> элементы",
836 "fail": "Элемент dl содержит недопустимые дочерние элементы: ${data.values}"
837 },
838 "only-listitems": {
839 "pass": "Элемент списка содержит только допустимые дочерние элементы <li>",
840 "fail": "Элемент списка содержит недопустимые дочерние элементы: ${data.values}"
841 },
842 "structured-dlitems": {
843 "pass": "Когда элемент не пустой, он имеет как минимум один элемент <dt> и один элемент <dd>",
844 "fail": "Когда элемент не пустой, он не содержит по крайней мере одного элемента <dt>, за которым следует по крайней мере один элемент <dd>"
845 },
846 "caption": {
847 "pass": "Мультимедийный элемент имеет дорожку субтитров",
848 "incomplete": "Проверьте, доступны ли субтитры для элемента"
849 },
850 "frame-tested": {
851 "pass": "Элемент iframe был протестирован с помощью axe-core",
852 "fail": "Не удалось протестировать элемент iframe с помощью axe-core",
853 "incomplete": "Элемент iframe все еще должен быть протестирован с помощью axe-core"
854 },
855 "no-autoplay-audio": {
856 "pass": "<video> или <audio> не воспроизводит аудио более допустимой продолжительности или имеет механизмы управления",
857 "fail": "<video> или <audio> воспроизводит аудио более допустимой продолжительности и не имеет механизмов управления",
858 "incomplete": "Проверьте, не воспроизводит ли <video> или <audio> аудио более допустимой продолжительности или предоставляет ли механизмы управления"
859 },
860 "css-orientation-lock": {
861 "pass": "Дисплей работает, блокировка ориентации отсутствует",
862 "fail": "CSS блокировка ориентации применяется и делает дисплей неработоспособным",
863 "incomplete": "Невозможно определить, применяется ли CSS блокировка ориентации"
864 },
865 "meta-viewport-large": {
866 "pass": "Тег <meta> не предотвращает значительное масштабирование на мобильных устройствах",
867 "fail": "Тег <meta> ограничивает масштабирование на мобильных устройствах"
868 },
869 "meta-viewport": {
870 "pass": "Тег <meta> не отключает масштабирование на мобильных устройствах",
871 "fail": "${data} на теге <meta> отключает масштабирование на мобильных устройствах"
872 },
873 "target-offset": {
874 "pass": {
875 "default": "Целевой элемент имеет достаточное пространство от ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px, что не менее ${data.minOffset}px.",
876 "large": "Целевой элемент значительно превышает минимальный размер в ${data.minOffset}px."
877 },
878 "fail": "Целевой элемент имеет недостаточное пространство до ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px вместо как минимум ${data.minOffset}px.",
879 "incomplete": {
880 "default": "Элемент с отрицательным tabindex имеет недостаточное пространство до ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px вместо как минимум ${data.minOffset}px. Является ли это целевым элементом?",
881 "nonTabbableNeighbor": "Целевой элемент имеет недостаточное пространство до ближайших соседей. Безопасное кликабельное пространство имеет диаметр ${data.closestOffset}px вместо как минимум ${data.minOffset}px. Является ли сосед целевым элементом?",
882 "tooManyRects": "Не удалось определить размер целевого элемента из-за слишком большого количества перекрывающихся элементов"
883 }
884 },
885 "target-size": {
886 "pass": {
887 "default": "Контрол имеет достаточный размер (${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px)",
888 "obscured": "Контрол игнорируется, так как он полностью скрыт и, следовательно, не кликабелен",
889 "large": "Целевой элемент значительно превышает минимальный размер в ${data.minSize}px."
890 },
891 "fail": {
892 "default": "Целевой элемент имеет недостаточный размер (${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px)",
893 "partiallyObscured": "Целевой элемент имеет недостаточный размер, так как он частично скрыт (наименьшее пространство ${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px)"
894 },
895 "incomplete": {
896 "default": "Элемент с отрицательным tabindex имеет недостаточный размер (${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px). Является ли это целевым элементом?",
897 "contentOverflow": "Размер элемента не может быть точно определен из-за переполненного содержимого",
898 "partiallyObscured": "Элемент с отрицательным tabindex имеет недостаточный размер, так как он частично скрыт (наименьшее пространство ${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px). Является ли это целевым элементом?",
899 "partiallyObscuredNonTabbable": "Целевой элемент имеет недостаточный размер, так как он частично скрыт соседом с отрицательным tabindex (наименьшее пространство ${data.width}px на ${data.height}px, должно быть как минимум ${data.minSize}px на ${data.minSize}px). Является ли сосед целевым элементом?",
900 "tooManyRects": "Не удалось определить размер целевого элемента из-за слишком большого количества перекрывающихся элементов"
901 }
902 },
903 "header-present": {
904 "pass": "На странице есть заголовок",
905 "fail": "На странице нет заголовка"
906 },
907 "heading-order": {
908 "pass": "Порядок заголовков корректен",
909 "fail": "Порядок заголовков некорректен",
910 "incomplete": "Невозможно определить предыдущий заголовок"
911 },
912 "identical-links-same-purpose": {
913 "pass": "Нет других ссылок с тем же именем, которые ведут на другой URL",
914 "incomplete": "Проверьте, имеют ли ссылки одинаковую цель, или они намеренно неоднозначны."
915 },
916 "internal-link-present": {
917 "pass": "Найдена допустимая ссылка для пропуска",
918 "fail": "Допустимая ссылка для пропуска не найдена"
919 },
920 "landmark": {
921 "pass": "На странице есть область-ориентир",
922 "fail": "На странице нет области-ориентира"
923 },
924 "meta-refresh-no-exceptions": {
925 "pass": "Тег <meta> не вызывает немедленное обновление страницы",
926 "fail": "Тег <meta> вызывает обновление страницы по таймеру"
927 },
928 "meta-refresh": {
929 "pass": "Тег <meta> не вызывает немедленное обновление страницы",
930 "fail": "Тег <meta> вызывает обновление страницы по таймеру (менее 20 часов)"
931 },
932 "p-as-heading": {
933 "pass": "Элементы <p> не оформлены как заголовки",
934 "fail": "Для заголовков должны использоваться элементы <h1> - <h6>, а не стилизованные <p>",
935 "incomplete": "Невозможно определить, оформлены ли элементы <p> как заголовки"
936 },
937 "region": {
938 "pass": "Все содержимое страницы заключено в ориентиры",
939 "fail": "Некоторое содержимое страницы не заключено в ориентиры"
940 },
941 "skip-link": {
942 "pass": "Целевая ссылка для пропуска существует",
943 "incomplete": "Целевая ссылка для пропуска должна стать видимой при активации",
944 "fail": "Целевая ссылка для пропуска не найдена"
945 },
946 "unique-frame-title": {
947 "pass": "Атрибут title элемента является уникальным",
948 "fail": "Атрибут title элемента не является уникальным"
949 },
950 "duplicate-id-active": {
951 "pass": "Документ не содержит активных элементов с одинаковым значением id атрибута",
952 "fail": "Документ содержит активные элементы с одинаковым значением id атрибута: ${data}"
953 },
954 "duplicate-id-aria": {
955 "pass": "Документ не содержит элементов, ссылающихся на ARIA или метки с одинаковым значением id атрибута",
956 "fail": "Документ содержит несколько элементов, ссылающихся на ARIA, с одинаковым значением id атрибута: ${data}"
957 },
958 "duplicate-id": {
959 "pass": "Документ не содержит статических элементов с одинаковым значением id атрибута",
960 "fail": "Документ содержит несколько статических элементов с одинаковым значением id атрибута: ${data}"
961 },
962 "aria-label": {
963 "pass": "Атрибут aria-label существует и не пуст",
964 "fail": "Атрибут aria-label не существует или пуст"
965 },
966 "aria-labelledby": {
967 "pass": "Атрибут aria-labelledby существует и ссылается на элементы, видимые для экранных считывателей",
968 "fail": "Атрибут aria-labelledby не существует, ссылается на несуществующие элементы или ссылается на пустые элементы",
969 "incomplete": "Убедитесь, что aria-labelledby ссылается на существующий элемент"
970 },
971 "avoid-inline-spacing": {
972 "pass": "Внутренние стили с '!important', которые влияют на интервал текста, не указаны",
973 "fail": {
974 "singular": "Удалите '!important' из внутреннего стиля ${data.values}, так как переопределение этого стиля не поддерживается большинством браузеров",
975 "plural": "Удалите '!important' из внутренних стилей ${data.values}, так как переопределение этих стилей не поддерживается большинством браузеров"
976 }
977 },
978 "button-has-visible-text": {
979 "pass": "Элемент содержит внутренний текст, видимый для экранных считывателей",
980 "fail": "Элемент не содержит внутренний текст, видимый для экранных считывателей",
981 "incomplete": "Невозможно определить, есть ли у элемента дочерние элементы"
982 },
983 "doc-has-title": {
984 "pass": "Документ содержит непустой элемент <title>",
985 "fail": "Документ не содержит непустой элемент <title>"
986 },
987 "exists": {
988 "pass": "Элемент не существует",
989 "incomplete": "Элемент существует"
990 },
991 "has-alt": {
992 "pass": "Элемент имеет атрибут alt",
993 "fail": "Элемент не имеет атрибута alt"
994 },
995 "has-visible-text": {
996 "pass": "Элемент содержит текст, видимый для экранных считывателей",
997 "fail": "Элемент не содержит текст, видимый для экранных считывателей",
998 "incomplete": "Невозможно определить, есть ли у элемента дочерние элементы"
999 },
1000 "important-letter-spacing": {
1001 "pass": "Letter-spacing в атрибуте стиля не установлен на !important, либо соответствует минимальному значению",
1002 "fail": "Letter-spacing в атрибуте стиля не должен использовать !important, или должен быть не менее ${data.minValue}em (текущее значение ${data.value}em)"
1003 },
1004 "important-line-height": {
1005 "pass": "Line-height в атрибуте стиля не установлен на !important, либо соответствует минимальному значению",
1006 "fail": "Line-height в атрибуте стиля не должен использовать !important, или должен быть не менее ${data.minValue}em (текущее значение ${data.value}em)"
1007 },
1008 "important-word-spacing": {
1009 "pass": "Word-spacing в атрибуте стиля не установлен на !important, либо соответствует минимальному значению",
1010 "fail": "Word-spacing в атрибуте стиля не должен использовать !important, или должен быть не менее ${data.minValue}em (текущее значение ${data.value}em)"
1011 },
1012 "is-on-screen": {
1013 "pass": "Элемент не виден",
1014 "fail": "Элемент виден"
1015 },
1016 "non-empty-alt": {
1017 "pass": "Элемент имеет непустой атрибут alt",
1018 "fail": {
1019 "noAttr": "Элемент не имеет атрибута alt",
1020 "emptyAttr": "Элемент имеет пустой атрибут alt"
1021 }
1022 },
1023 "non-empty-if-present": {
1024 "pass": {
1025 "default": "Элемент не имеет атрибута value",
1026 "has-label": "Элемент имеет непустой атрибут value"
1027 },
1028 "fail": "Элемент имеет атрибут value, и этот атрибут пуст"
1029 },
1030 "non-empty-placeholder": {
1031 "pass": "Элемент имеет атрибут placeholder",
1032 "fail": {
1033 "noAttr": "Элемент не имеет атрибута placeholder",
1034 "emptyAttr": "Элемент имеет пустой атрибут placeholder"
1035 }
1036 },
1037 "non-empty-title": {
1038 "pass": "Элемент имеет атрибут title",
1039 "fail": {
1040 "noAttr": "Элемент не имеет атрибута title",
1041 "emptyAttr": "Элемент имеет пустой атрибут title"
1042 }
1043 },
1044 "non-empty-value": {
1045 "pass": "Элемент имеет непустой атрибут value",
1046 "fail": {
1047 "noAttr": "Элемент не имеет атрибута value",
1048 "emptyAttr": "Элемент имеет пустой атрибут value"
1049 }
1050 },
1051 "presentational-role": {
1052 "pass": "Стандартная семантика элемента была переопределена с помощью role=\"${data.role}\"",
1053 "fail": {
1054 "default": "Стандартная семантика элемента не была переопределена с помощью role=\"none\" или role=\"presentation\"",
1055 "globalAria": "Роль элемента не является презентационной, так как у него есть глобальный ARIA атрибут",
1056 "focusable": "Роль элемента не является презентационной, так как он может быть сфокусирован",
1057 "both": "Роль элемента не является презентационной, так как у него есть глобальный ARIA атрибут и он может быть сфокусирован",
1058 "iframe": "Использование атрибута \"title\" на элементе ${data.nodeName} с презентационной ролью ведет себя непоследовательно между экранными считывателями"
1059 }
1060 },
1061 "role-none": {
1062 "pass": "Стандартная семантика элемента была переопределена с помощью role=\"none\"",
1063 "fail": "Стандартная семантика элемента не была переопределена с помощью role=\"none\""
1064 },
1065 "role-presentation": {
1066 "pass": "Стандартная семантика элемента была переопределена с помощью role=\"presentation\"",
1067 "fail": "Стандартная семантика элемента не была переопределена с помощью role=\"presentation\""
1068 },
1069 "svg-non-empty-title": {
1070 "pass": "Элемент имеет дочерний элемент title",
1071 "fail": {
1072 "noTitle": "Элемент не имеет дочернего элемента title",
1073 "emptyTitle": "Дочерний элемент title пуст"
1074 },
1075 "incomplete": "Невозможно определить, имеет ли элемент дочерний элемент title"
1076 },
1077 "caption-faked": {
1078 "pass": "Первая строка таблицы не используется в качестве заголовка",
1079 "fail": "Первый дочерний элемент таблицы должен быть заголовком, а не ячейкой таблицы"
1080 },
1081 "html5-scope": {
1082 "pass": "Атрибут scope используется только для элементов заголовков таблицы (<th>)",
1083 "fail": "В HTML 5 атрибуты scope могут использоваться только для элементов заголовков таблицы (<th>)"
1084 },
1085 "same-caption-summary": {
1086 "pass": "Содержимое атрибута summary и элемента <caption> не дублируется",
1087 "fail": "Содержимое атрибута summary и элемента <caption> идентично",
1088 "incomplete": "Невозможно определить, есть ли у элемента <table> заголовок"
1089 },
1090 "scope-value": {
1091 "pass": "Атрибут scope используется правильно",
1092 "fail": "Значение атрибута scope может быть только 'row' или 'col'"
1093 },
1094 "td-has-header": {
1095 "pass": "Все непустые ячейки данных имеют заголовки таблицы",
1096 "fail": "Некоторые непустые ячейки данных не имеют заголовков таблицы"
1097 },
1098 "td-headers-attr": {
1099 "pass": "Атрибут headers используется исключительно для ссылки на другие ячейки таблицы",
1100 "incomplete": "Атрибут headers пуст",
1101 "fail": {
1102 "cell-header-not-in-table": "Атрибут headers не используется исключительно для ссылки на другие заголовочные ячейки в таблице",
1103 "cell-header-not-th": "Атрибут headers должен ссылаться на заголовочные ячейки, а не на ячейки с данными",
1104 "header-refs-self": "Элемент с атрибутом headers ссылается на самого себя"
1105 }
1106 },
1107 "th-has-data-cells": {
1108 "pass": "Все ячейки заголовков таблицы ссылаются на ячейки данных",
1109 "fail": "Не все ячейки заголовков таблицы ссылаются на ячейки данных",
1110 "incomplete": "Ячейки данных таблицы отсутствуют или пусты"
1111 },
1112 "hidden-content": {
1113 "pass": "Все содержимое страницы было проанализировано.",
1114 "fail": "Возникли проблемы с анализом содержимого на этой странице.",
1115 "incomplete": "На странице есть скрытое содержимое, которое не было проанализировано. Вам нужно будет включить отображение этого содержимого, чтобы его проанализировать."
1116 }
1117 },
1118 "failureSummaries": {
1119 "any": {
1120 "failureMessage": "Исправьте любое из следующего:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
1121 },
1122 "none": {
1123 "failureMessage": "Исправьте все из следующего:{{~it:value}}\n {{=value.split('\\n').join('\\n ')}}{{~}}"
1124 }
1125 },
1126 "incompleteFallbackMessage": "axe не смог определить причину. Время использовать инспектор элементов!"
1127}
Note: See TracBrowser for help on using the repository browser.