govuk_publishing_components 21.22.1 → 21.22.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -3
  3. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +34 -0
  4. data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +2 -2
  5. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +0 -3
  6. data/app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb +0 -2
  7. data/lib/govuk_publishing_components/version.rb +1 -1
  8. data/node_modules/axe-core/CHANGELOG.md +70 -10
  9. data/node_modules/axe-core/axe.js +1295 -632
  10. data/node_modules/axe-core/axe.min.js +2 -2
  11. data/node_modules/axe-core/bower.json +1 -1
  12. data/node_modules/axe-core/doc/API.md +1 -0
  13. data/node_modules/axe-core/doc/aria-supported.md +0 -1
  14. data/node_modules/axe-core/doc/developer-guide.md +2 -2
  15. data/node_modules/axe-core/doc/rule-descriptions.md +91 -87
  16. data/node_modules/axe-core/lib/checks/aria/abstractrole.js +10 -1
  17. data/node_modules/axe-core/lib/checks/aria/abstractrole.json +4 -1
  18. data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +1 -0
  19. data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +11 -0
  20. data/node_modules/axe-core/lib/checks/aria/invalidrole.js +14 -3
  21. data/node_modules/axe-core/lib/checks/aria/invalidrole.json +4 -1
  22. data/node_modules/axe-core/lib/checks/aria/required-children.js +41 -30
  23. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +24 -9
  24. data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +2 -2
  25. data/node_modules/axe-core/lib/checks/color/color-contrast.js +23 -7
  26. data/node_modules/axe-core/lib/checks/color/color-contrast.json +7 -1
  27. data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +5 -0
  28. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +14 -0
  29. data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +11 -0
  30. data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +5 -0
  31. data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +5 -1
  32. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +2 -0
  33. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +1 -0
  34. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +1 -0
  35. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +1 -0
  36. data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +14 -2
  37. data/node_modules/axe-core/lib/checks/lists/only-listitems.js +43 -49
  38. data/node_modules/axe-core/lib/checks/lists/only-listitems.json +4 -1
  39. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +93 -0
  40. data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +15 -0
  41. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +100 -0
  42. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +31 -0
  43. data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +12 -0
  44. data/node_modules/axe-core/lib/checks/navigation/region.js +42 -8
  45. data/node_modules/axe-core/lib/checks/navigation/region.json +0 -1
  46. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +4 -0
  47. data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +11 -0
  48. data/node_modules/axe-core/lib/commons/aria/index.js +12 -4
  49. data/node_modules/axe-core/lib/commons/color/get-background-color.js +5 -157
  50. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +272 -174
  51. data/node_modules/axe-core/lib/commons/dom/is-focusable.js +3 -1
  52. data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +2 -2
  53. data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +98 -0
  54. data/node_modules/axe-core/lib/commons/dom/is-visible.js +57 -2
  55. data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +143 -0
  56. data/node_modules/axe-core/lib/commons/dom/visually-contains.js +62 -12
  57. data/node_modules/axe-core/lib/commons/matches/attributes.js +12 -8
  58. data/node_modules/axe-core/lib/commons/matches/from-definition.js +15 -10
  59. data/node_modules/axe-core/lib/commons/matches/index.js +11 -9
  60. data/node_modules/axe-core/lib/commons/matches/node-name.js +11 -21
  61. data/node_modules/axe-core/lib/commons/matches/properties.js +12 -9
  62. data/node_modules/axe-core/lib/commons/text/unicode.js +27 -24
  63. data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +11 -3
  64. data/node_modules/axe-core/lib/core/constants.js +1 -1
  65. data/node_modules/axe-core/lib/core/reporters/v1.js +6 -3
  66. data/node_modules/axe-core/lib/core/utils/contains.js +1 -1
  67. data/node_modules/axe-core/lib/core/utils/is-hidden.js +6 -6
  68. data/node_modules/axe-core/lib/core/utils/matches.js +263 -0
  69. data/node_modules/axe-core/lib/core/utils/preload-media.js +65 -0
  70. data/node_modules/axe-core/lib/core/utils/preload.js +33 -24
  71. data/node_modules/axe-core/lib/core/utils/qsa.js +7 -208
  72. data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +5 -1
  73. data/node_modules/axe-core/lib/rules/aria-roles.json +1 -1
  74. data/node_modules/axe-core/lib/rules/button-name.json +1 -1
  75. data/node_modules/axe-core/lib/rules/color-contrast-matches.js +1 -1
  76. data/node_modules/axe-core/lib/rules/color-contrast.json +0 -3
  77. data/node_modules/axe-core/lib/rules/html-namespace-matches.js +1 -0
  78. data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +13 -0
  79. data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +14 -0
  80. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +1 -1
  81. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +1 -1
  82. data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +12 -0
  83. data/node_modules/axe-core/lib/rules/landmark-one-main.json +2 -2
  84. data/node_modules/axe-core/lib/rules/link-name.json +2 -4
  85. data/node_modules/axe-core/lib/rules/meta-viewport.json +1 -1
  86. data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +18 -0
  87. data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +15 -0
  88. data/node_modules/axe-core/lib/rules/region.json +1 -2
  89. data/node_modules/axe-core/lib/rules/role-img-alt.json +2 -1
  90. data/node_modules/axe-core/lib/rules/svg-img-alt.json +24 -0
  91. data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +1 -0
  92. data/node_modules/axe-core/locales/da.json +782 -0
  93. data/node_modules/axe-core/locales/fr.json +221 -42
  94. data/node_modules/axe-core/locales/ja.json +124 -24
  95. data/node_modules/axe-core/package.json +29 -26
  96. data/node_modules/axe-core/sri-history.json +26 -10
  97. metadata +27 -9
  98. data/node_modules/axe-core/doc/examples/jasmine/package-lock.json +0 -1489
  99. data/node_modules/axe-core/doc/examples/jest_react/package-lock.json +0 -7525
  100. data/node_modules/axe-core/doc/examples/mocha/package-lock.json +0 -1671
  101. data/node_modules/axe-core/doc/examples/phantomjs/package-lock.json +0 -862
  102. data/node_modules/axe-core/doc/examples/qunit/package-lock.json +0 -2951
  103. data/node_modules/axe-core/lib/checks/navigation/region-after.js +0 -1
  104. data/node_modules/axe-core/typings/axe-core/axe-core-tests.js +0 -151
@@ -169,6 +169,10 @@
169
169
  "description": "HTML要素に指定された有効なlangおよびxml:lang属性の両方がページの基本言語と一致することを確認します",
170
170
  "help": "HTML要素に指定されたlangおよびxml:lang属性は同じ基本言語を持たなければなりません"
171
171
  },
172
+ "identical-links-same-purpose": {
173
+ "description": "同じアクセシブルな名前を持つ複数のリンクが同様の目的を果たすことを確認します",
174
+ "help": "同じ名前を持つ複数のリンクは同様の目的を持っています"
175
+ },
172
176
  "image-alt": {
173
177
  "description": "<img>要素に代替テキストが存在する、またはnoneまたはpresentationのロールが存在することを確認します",
174
178
  "help": "画像には代替テキストがなければなりません"
@@ -214,13 +218,17 @@
214
218
  "help": "mainランドマークは他のランドマークに含まれるべきではありません"
215
219
  },
216
220
  "landmark-no-duplicate-banner": {
217
- "description": "bannerランドマークがドキュメント内に最大で1つのみであることを確認します",
221
+ "description": "ドキュメント内のbannerランドマークが最大で1つのみであることを確認します",
218
222
  "help": "ドキュメントに複数のbannerランドマークが存在してはなりません"
219
223
  },
220
224
  "landmark-no-duplicate-contentinfo": {
221
- "description": "contentinfoランドマークがドキュメント内に最大で1つのみであることを確認します",
225
+ "description": "ドキュメント内のcontentinfoランドマークが最大で1つのみであることを確認します",
222
226
  "help": "ドキュメントに複数のcontentinfoランドマークが存在してはなりません"
223
227
  },
228
+ "landmark-no-duplicate-main": {
229
+ "description": "ドキュメント内のmainランドマークが最大で1つのみであることを確認します",
230
+ "help": "ドキュメントに複数のmainランドマークが存在してはなりません"
231
+ },
224
232
  "landmark-one-main": {
225
233
  "description": "ドキュメントのランドマークが1つのみであること、およびページ内の各iframeのランドマークが最大で1つであることを確認します",
226
234
  "help": "ドキュメントにはmainランドマークが1つ含まれていなければなりません"
@@ -265,6 +273,10 @@
265
273
  "description": "<meta name=\"viewport\">がテキストの拡大縮小およびズーミングを無効化しないことを確認します",
266
274
  "help": "ズーミングや拡大縮小は無効にしてはなりません"
267
275
  },
276
+ "no-autoplay-audio": {
277
+ "description": "<video> または <audio> 要素が音声を停止またはミュートするコントロールなしに音声を3秒より長く自動再生しないことを確認します",
278
+ "help": "<video> または <audio> 要素は音声を自動再生しません"
279
+ },
268
280
  "object-alt": {
269
281
  "description": "<object>要素に代替テキストが存在することを確認します",
270
282
  "help": "<object>要素には代替テキストがなければなりません"
@@ -305,6 +317,10 @@
305
317
  "description": "すべてのスキップリンクにフォーカス可能なターゲットがあることを確認します",
306
318
  "help": "スキップリンクのターゲットが存在し、フォーカス可能でなければなりません"
307
319
  },
320
+ "svg-img-alt": {
321
+ "description": "img、graphics-document または graphics-symbol ロールを持つ svg 要素にアクセシブルなテキストがあることを確認します",
322
+ "help": "img ロールを持つ svg 要素に代替テキストが存在します"
323
+ },
308
324
  "tabindex": {
309
325
  "description": "tabindex属性値が0より大きくないことを確認します",
310
326
  "help": "要素に0より大きいtabindex属性を指定するべきではありません"
@@ -345,16 +361,28 @@
345
361
  "checks": {
346
362
  "abstractrole": {
347
363
  "pass": "抽象ロールは使用されていません",
348
- "fail": "抽象ロールは直接使用できません"
364
+ "fail": {
365
+ "singular": "抽象ロールは直接使用できません: ${data.values}",
366
+ "plural": "抽象ロールは直接使用できません: ${data.values}"
367
+ }
349
368
  },
350
369
  "aria-allowed-attr": {
351
370
  "pass": "ARIA属性が定義されたロールに対して正しく使用されています",
352
- "fail": "ARIA属性は許可されていません:{{~it.data:value}} {{=value}}{{~}}"
371
+ "fail": {
372
+ "singular": "ARIA属性は許可されていません: ${data.values}",
373
+ "plural": "ARIA属性は許可されていません: ${data.values}"
374
+ }
353
375
  },
354
376
  "aria-allowed-role": {
355
377
  "pass": "ARIAロールは指定された要素に対して許可されています",
356
- "fail": "ARIAロールは指定された要素に許可されていません",
357
- "incomplete": "ARIAロールはこの要素に許可されていないため、要素が表示されたときはARIAロールを削除する必要があります"
378
+ "fail": {
379
+ "singular": "ARIA ロール ${data.values} は指定された要素に許可されていません",
380
+ "plural": "ARIA ロール ${data.values} は指定された要素に許可されていません"
381
+ },
382
+ "incomplete": {
383
+ "singular": "ARIA ロール ${data.values} この要素に許可されていないため、要素が表示されたときはARIAロールを削除する必要があります",
384
+ "plural": "ARIA ロール ${data.values} この要素に許可されていないため、要素が表示されたときはARIAロールを削除する必要があります"
385
+ }
358
386
  },
359
387
  "aria-hidden-body": {
360
388
  "pass": "ドキュメント本体にaria-hidden属性は存在していません",
@@ -367,7 +395,14 @@
367
395
  },
368
396
  "aria-errormessage": {
369
397
  "pass": "サポートされているaria-errormessageの技術を使用しています",
370
- "fail": "aria-errormessageの値{{~it.data:value}} `{{=value}}{{~}}`はメッセージを通知する方法を使用しなければなりません (例えば、aria-live、aria-describedby、role=alert等)"
398
+ "fail": {
399
+ "singular": "aria-errormessage の値 `${data.values}` はメッセージを通知する方法を使用しなければなりません (例えば、aria-live、aria-describedby、role=alert等)",
400
+ "plural": "aria-errormessage の値 `${data.values}` はメッセージを通知する方法を使用しなければなりません (例えば、aria-live、aria-describedby、role=alert等)"
401
+ }
402
+ },
403
+ "fallbackrole": {
404
+ "pass": "1つのロール値のみ使用されています",
405
+ "fail": "古いブラウザーではフォールバックロールがサポートされていないため、ロール値は1つのみ使用します"
371
406
  },
372
407
  "has-widget-role": {
373
408
  "pass": "要素にはwidgetロールが存在しています",
@@ -379,7 +414,10 @@
379
414
  },
380
415
  "invalidrole": {
381
416
  "pass": "ARIAロールが有効です",
382
- "fail": "ロールは有効なARIAロールのうちの1つでなければなりません"
417
+ "fail": {
418
+ "singular": "ロールは有効なARIAロールのうちの1つでなければなりません: ${data.values}",
419
+ "plural": "ロールは有効なARIAロールのうちの1つでなければなりません: ${data.values}"
420
+ }
383
421
  },
384
422
  "no-implicit-explicit-label": {
385
423
  "pass": "<label> とアクセシブルな名前の間に不一致はありません",
@@ -387,16 +425,28 @@
387
425
  },
388
426
  "aria-required-attr": {
389
427
  "pass": "すべての必須のARIA属性が存在しています",
390
- "fail": "必須のARIA属性が提供されていません:{{~it.data:value}} {{=value}}{{~}}"
428
+ "fail": {
429
+ "singular": "必須のARIA属性が提供されていません: ${data.values}",
430
+ "plural": "必須のARIA属性が提供されていません: ${data.values}"
431
+ }
391
432
  },
392
433
  "aria-required-children": {
393
434
  "pass": "必須のARIA子ロールが存在しています",
394
- "fail": "必須のARIA子ロールが提供されていません:{{~it.data:value}} {{=value}}{{~}}",
395
- "incomplete": "ARIAの子ロールが追加されることを求めています:{{~it.data:value}} {{=value}}{{~}}"
435
+ "fail": {
436
+ "singular": "必須のARIA子ロールが提供されていません: ${data.values}",
437
+ "plural": "必須のARIA子ロールが提供されていません: ${data.values}"
438
+ },
439
+ "incomplete": {
440
+ "singular": "ARIAの子ロールを追加することが求められます: ${data.values}",
441
+ "plural": "ARIAの子ロールを追加することが求められます: ${data.values}"
442
+ }
396
443
  },
397
444
  "aria-required-parent": {
398
445
  "pass": "必須のARIA親ロールが存在しています",
399
- "fail": "必須のARIA親ロールが提供されていません:{{~it.data:value}} {{=value}}{{~}}"
446
+ "fail": {
447
+ "singular": "必須のARIA親ロールが提供されていません: ${data.values}",
448
+ "plural": "必須のARIA親ロールが提供されていません: ${data.values}"
449
+ }
400
450
  },
401
451
  "aria-unsupported-attr": {
402
452
  "pass": "ARIA属性はサポートされています",
@@ -408,12 +458,21 @@
408
458
  },
409
459
  "aria-valid-attr-value": {
410
460
  "pass": "ARIA属性値が有効です",
411
- "fail": "無効なARIA属性値です:{{~it.data:value}} {{=value}}{{~}}",
412
- "incomplete": "ページにARIA属性の要素IDが存在しません:{{~it.data:value}} {{=value}}{{~}}"
461
+ "fail": {
462
+ "singular": "無効なARIA属性値です: ${data.values}",
463
+ "plural": "無効なARIA属性値です: ${data.values}"
464
+ },
465
+ "incomplete": {
466
+ "noId": "ARIA 属性の要素IDがページ上に存在しません: ${data.needsReview}",
467
+ "ariaCurrent": "ARIA 属性値が無効であるため、\"aria-current=true\" として扱われます: ${data.needsReview}"
468
+ }
413
469
  },
414
470
  "aria-valid-attr": {
415
471
  "pass": "ARIA属性名が有効です",
416
- "fail": "無効なARIA属性名です:{{~it.data:value}} {{=value}}{{~}}"
472
+ "fail": {
473
+ "singular": "無効なARIA属性名です: ${data.values}",
474
+ "plural": "無効なARIA属性名です: ${data.values}"
475
+ }
417
476
  },
418
477
  "valid-scrollable-semantics": {
419
478
  "pass": "要素はフォーカス順序に含まれる要素に対して有効なセマンティクスを持ちます",
@@ -423,6 +482,7 @@
423
482
  "pass": "要素には{{=it.data.contrastRatio}}の十分なコントラスト比があります",
424
483
  "fail": "要素のコントラスト比が不十分です {{=it.data.contrastRatio}}(前景色: {{=it.data.fgColor}}、背景色: {{=it.data.bgColor}}、フォントサイズ: {{=it.data.fontSize}}、フォントの太さ: {{=it.data.fontWeight}})。コントラスト比{{=it.data.expectedContrastRatio}}を必要とします",
425
484
  "incomplete": {
485
+ "default": "コントラスト比を判定できません",
426
486
  "bgImage": "背景画像のため、要素の背景色を判定できません",
427
487
  "bgGradient": "背景グラデーションのため、要素の背景色を判定できません",
428
488
  "imgNode": "画像ノードが含まれるため、要素の背景色を判定できません",
@@ -433,19 +493,19 @@
433
493
  "outsideViewport": "ビューポートの外にあるため、要素の背景色を判定できません",
434
494
  "equalRatio": "要素のコントラスト比が背景と1:1です",
435
495
  "shortTextContent": "実際のテキストコンテンツであるかを判断するには要素のコンテンツが短すぎます",
436
- "default": "コントラスト比を判定できません"
496
+ "nonBmp": "要素のコンテンツはテキストではない文字のみを含んでいます"
437
497
  }
438
498
  },
439
499
  "link-in-text-block": {
440
500
  "pass": "リンクは色以外の方法で周囲のテキストと区別できます",
441
501
  "fail": "リンクは色以外の方法で周囲のテキストと区別させる必要があります",
442
502
  "incomplete": {
503
+ "default": "コントラスト比を判定できません",
443
504
  "bgContrast": "要素のコントラスト比を判定できません。明確なホバー/フォーカススタイルを確認します",
444
505
  "bgImage": "背景画像のため、要素のコントラスト比を判定できません",
445
506
  "bgGradient": "背景グラデーションのため、要素のコントラスト比を判定できません",
446
507
  "imgNode": "画像ノードが含まれるため、要素のコントラスト比を判定できません",
447
- "bgOverlap": "要素の重なりにより、要素のコントラスト比を判定できません",
448
- "default": "コントラスト比を判定できません"
508
+ "bgOverlap": "要素の重なりにより、要素のコントラスト比を判定できません"
449
509
  }
450
510
  },
451
511
  "autocomplete-appropriate": {
@@ -458,11 +518,22 @@
458
518
  },
459
519
  "fieldset": {
460
520
  "pass": "フィールドセット内に要素が含まれています",
461
- "fail": "{{var code = it.data && it.data.failureCode;}}{{? code === 'no-legend'}}フィールドセットの最初の子要素としてレジェンドが存在しません{{?? code === 'empty-legend'}}スクリーン・リーダーに認識可能なテキストがレジェンドに存在しません{{?? code === 'mixed-inputs'}}フィールドセットに関連性のない入力欄が含まれています{{?? code === 'no-group-label'}}ARIAグループにaria-labelまたはaria-labelledbyが存在しません{{?? code === 'group-mixed-inputs'}}ARIAグループに関連性のない入力欄が含まれています{{??}}要素を含有するフィールドセットまたはARIAグループがありません{{?}}"
521
+ "fail": {
522
+ "default": "要素を含有するフィールドセットまたはARIAグループがありません",
523
+ "no-legend": "フィールドセットの最初の子要素としてレジェンドが存在しません",
524
+ "empty-legend": "スクリーン・リーダーに認識可能なテキストがレジェンドに存在しません",
525
+ "mixed-inputs": "フィールドセットに関連性のない入力欄が含まれています",
526
+ "no-group-label": "ARIAグループにaria-labelまたはaria-labelledbyが存在しません",
527
+ "group-mixed-inputs": "ARIAグループに関連性のない入力欄が含まれています"
528
+ }
462
529
  },
463
530
  "group-labelledby": {
464
531
  "pass": "\"{{=it.data.name}}\" という名前を持つ要素には、共通のラベルおよび一意のラベルがあり、aria-labelledbyを通じて参照されます",
465
- "fail": "{{var code = it.data && it.data.failureCode;}} \"{{=it.data.name}}\" という名前を持つ要素すべてに対してaria-labelledbyを通じて参照される {{? code === 'no-shared-label' }} 共通のラベル {{?? code === 'no-unique-label' }} 一意のラベル {{??}} 共通のラベルおよび一意のラベル両方 {{?}} がありません"
532
+ "fail": {
533
+ "default": "\"${data.name}\" という名前の要素すべてに、共通のラベルおよび aria-labelledby で参照された一意のラベルの両方がありません",
534
+ "no-shared-label": "\"${data.name}\" という名前の要素すべてに、aria-labelledby で参照された共有のラベルがありません",
535
+ "no-unique-label": "\"${data.name}\" という名前の要素すべてに、aria-labelledby で参照された一意のラベルがありません"
536
+ }
466
537
  },
467
538
  "accesskeys": {
468
539
  "pass": "アクセスキー属性値は一意です",
@@ -480,6 +551,10 @@
480
551
  "pass": "要素はフォーカス可能です",
481
552
  "fail": "要素はフォーカス可能であるべきです"
482
553
  },
554
+ "focusable-modal-open": {
555
+ "pass": "モーダル開いている時、フォーカス可能な要素がありません",
556
+ "incomplete": "現在の状態で、フォーカス可能な要素がタブ移動可能になっていないことを確認します"
557
+ },
483
558
  "focusable-no-name": {
484
559
  "pass": "要素がタブ順序にない、またはアクセシブルなテキストが存在しています",
485
560
  "fail": "要素がタブ順序にあり、アクセシブルなテキストが存在していません"
@@ -574,7 +649,10 @@
574
649
  },
575
650
  "listitem": {
576
651
  "pass": "リスト項目に<ul>、<ol>、またはrole=\"list\"親要素が存在しています",
577
- "fail": "リスト項目に<ul>、<ol>、またはrole=\"list\"親要素が存在していません"
652
+ "fail": {
653
+ "default": "リスト項目に <ul>、<ol> 親要素が存在していません",
654
+ "roleNotValid": "リスト項目にロールまたは role=\"list\" のついていない<ul>、<ol> 親要素が存在していません"
655
+ }
578
656
  },
579
657
  "only-dlitems": {
580
658
  "pass": "リスト要素に<dt>または<dd>要素内で許可された直接の子要素のみが存在しています",
@@ -582,7 +660,10 @@
582
660
  },
583
661
  "only-listitems": {
584
662
  "pass": "リスト要素に<li>要素内で許可された直接の子要素のみが存在しています",
585
- "fail": "リスト要素に<li>要素内で許可されていない直接の子要素が存在しています"
663
+ "fail": {
664
+ "default": "リスト要素に<li>要素内で許可されていない直接の子要素が存在しています",
665
+ "roleNotValid": "リスト要素に許可されていないロールを持った直接の子要素が存在しています: ${data.roles}"
666
+ }
586
667
  },
587
668
  "structured-dlitems": {
588
669
  "pass": "空ではない場合、要素に<dt>および<dd>要素の両方が存在しています",
@@ -601,6 +682,11 @@
601
682
  "fail": "iframeはaxe-coreでテストできませんでした",
602
683
  "incomplete": "iframeはまだaxe-coreでテストする必要があります"
603
684
  },
685
+ "no-autoplay-audio": {
686
+ "pass": "<video> または <audio> は許可された時間より長く音声を出力しない、もしくはコントールするメカニズムを持っています",
687
+ "fail": "<video> または <audio> は許可された時間より長く音声を出力し、かつコントロールするメカニズムを持っていません",
688
+ "incomplete": "<video> または <audio> が許可された時間より長く音声を出力しない、またはコントロールするメカニズムを提供していることを確認します"
689
+ },
604
690
  "css-orientation-lock": {
605
691
  "pass": "ディスプレイは操作可能であり、向きを固定する機能は存在しません",
606
692
  "fail": "CSSオリエンテーションロックが適用されており、ディスプレイ操作を不可能にしています",
@@ -622,6 +708,10 @@
622
708
  "pass": "見出しの順序が有効です",
623
709
  "fail": "見出しの順序が無効です"
624
710
  },
711
+ "identical-links-same-purpose": {
712
+ "pass": "同じ名前で異なるURLに遷移する他のリンクはありません",
713
+ "incomplete": "リンクが同じ目的を持っていること、または意図的に不明瞭になっていることを確認します"
714
+ },
625
715
  "internal-link-present": {
626
716
  "pass": "有効なスキップリンクが存在しています",
627
717
  "fail": "有効なスキップリンクが存在していません"
@@ -673,7 +763,10 @@
673
763
  },
674
764
  "avoid-inline-spacing": {
675
765
  "pass": "テキストの間隔に影響する '!important' のついたインラインスタイルは指定されていません",
676
- "fail": "ほとんどのブラウザーで上書きすることはサポートされていないため、インラインスタイル {{=it.data.join(', ')}}, から '!important' を削除します"
766
+ "fail": {
767
+ "singular": "ほとんどのブラウザーで上書きすることはサポートされていないため、インラインスタイル ${data.values} から '!important' を削除します",
768
+ "plural": "ほとんどのブラウザーで上書きすることはサポートされていないため、インラインスタイル ${data.values} から '!important' を削除します"
769
+ }
677
770
  },
678
771
  "button-has-visible-text": {
679
772
  "pass": "要素にスクリーン・リーダーが認識可能な内部テキストが存在しています",
@@ -704,7 +797,10 @@
704
797
  "fail": "要素にalt属性が存在していない、またはalt属性が空です"
705
798
  },
706
799
  "non-empty-if-present": {
707
- "pass": "要素 {{?it.data}}に空ではないvalue属性が存在しています{{??}}value属性が存在していません{{?}}",
800
+ "pass": {
801
+ "default": "要素に value 属性が存在しません",
802
+ "has-label": "要素に空ではない value 属性が存在しています"
803
+ },
708
804
  "fail": "要素にvalue属性が存在し、value属性が空です"
709
805
  },
710
806
  "non-empty-title": {
@@ -723,6 +819,10 @@
723
819
  "pass": "要素のデフォルトのセマンティクスがrole=\"presentation\"で上書きされました",
724
820
  "fail": "要素のデフォルトのセマンティクスはrole=\"presentation\"で上書きされませんでした"
725
821
  },
822
+ "svg-non-empty-title": {
823
+ "pass": "要素にタイトルとしての子が存在します",
824
+ "fail": "要素にタイトルとしての子が存在しません"
825
+ },
726
826
  "caption-faked": {
727
827
  "pass": "テーブルの一行目がキャプションとして使用されていません",
728
828
  "fail": "テーブルの最初の子はテーブルセルではなく、キャプションであるべきです"
@@ -2,49 +2,49 @@
2
2
  "_args": [
3
3
  [
4
4
  {
5
- "raw": "axe-core@^3.4.1",
5
+ "raw": "axe-core@^3.5.0",
6
6
  "scope": null,
7
7
  "escapedName": "axe-core",
8
8
  "name": "axe-core",
9
- "rawSpec": "^3.4.1",
10
- "spec": ">=3.4.1 <4.0.0",
9
+ "rawSpec": "^3.5.0",
10
+ "spec": ">=3.5.0 <4.0.0",
11
11
  "type": "range"
12
12
  },
13
13
  "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ"
14
14
  ]
15
15
  ],
16
- "_from": "axe-core@>=3.4.1 <4.0.0",
16
+ "_from": "axe-core@>=3.5.0 <4.0.0",
17
17
  "_hasShrinkwrap": false,
18
- "_id": "axe-core@3.4.2",
18
+ "_id": "axe-core@3.5.1",
19
19
  "_inCache": true,
20
20
  "_location": "/axe-core",
21
- "_nodeVersion": "10.14.0",
21
+ "_nodeVersion": "10.19.0",
22
22
  "_npmOperationalInternal": {
23
23
  "host": "s3://npm-registry-packages",
24
- "tmp": "tmp/axe-core_3.4.2_1581014982110_0.3250163683829628"
24
+ "tmp": "tmp/axe-core_3.5.1_1581596187900_0.49027183092406457"
25
25
  },
26
26
  "_npmUser": {
27
- "name": "wilcofiers",
28
- "email": "wilcofiers@gmail.com"
27
+ "name": "npmdeque",
28
+ "email": "axe@deque.com"
29
29
  },
30
30
  "_npmVersion": "6.13.4",
31
31
  "_phantomChildren": {},
32
32
  "_requested": {
33
- "raw": "axe-core@^3.4.1",
33
+ "raw": "axe-core@^3.5.0",
34
34
  "scope": null,
35
35
  "escapedName": "axe-core",
36
36
  "name": "axe-core",
37
- "rawSpec": "^3.4.1",
38
- "spec": ">=3.4.1 <4.0.0",
37
+ "rawSpec": "^3.5.0",
38
+ "spec": ">=3.5.0 <4.0.0",
39
39
  "type": "range"
40
40
  },
41
41
  "_requiredBy": [
42
42
  "/"
43
43
  ],
44
- "_resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.2.tgz",
45
- "_shasum": "d51d2fcb401685e8b49a1dd94212da0759fd7ca0",
44
+ "_resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.1.tgz",
45
+ "_shasum": "d8d5aaef73f003e8b766ea28bb078343f3622201",
46
46
  "_shrinkwrap": null,
47
- "_spec": "axe-core@^3.4.1",
47
+ "_spec": "axe-core@^3.5.0",
48
48
  "_where": "/var/lib/jenkins/workspace/ublishing_components_master-N4FWJIUY4CIFHKGZOAAEVVXODRY3YBORQOPIBBXWX72VUPSGJRRQ",
49
49
  "bugs": {
50
50
  "url": "https://github.com/dequelabs/axe-core/issues"
@@ -105,7 +105,6 @@
105
105
  "grunt-contrib-copy": "^1.0.0",
106
106
  "grunt-contrib-uglify": "^4.0.0",
107
107
  "grunt-contrib-watch": "^1.1.0",
108
- "grunt-mocha": "1.2.0",
109
108
  "grunt-parallel": "^0.5.1",
110
109
  "grunt-run": "^0.8.1",
111
110
  "html-entities": "^1.2.0",
@@ -119,7 +118,9 @@
119
118
  "minami": "^1.2.3",
120
119
  "mkdirp": "^0.5.1",
121
120
  "mocha": "^6.1.2",
121
+ "mocha-headless-chrome": "^2.0.3",
122
122
  "prettier": "^1.17.1",
123
+ "puppeteer": "^2.0.0",
123
124
  "revalidator": "~0.3.1",
124
125
  "selenium-webdriver": "~3.6.0",
125
126
  "sinon": "^7.5.0",
@@ -131,18 +132,18 @@
131
132
  },
132
133
  "directories": {},
133
134
  "dist": {
134
- "integrity": "sha512-aPpM84KPiRfeaK3LhA9ag4OmjLUZkNKMH0sZuK+YRBS+QJcegjveidCyvWSBlBr/iIMQdn/1hU00e3YBiuTEdw==",
135
- "shasum": "d51d2fcb401685e8b49a1dd94212da0759fd7ca0",
136
- "tarball": "https://registry.npmjs.org/axe-core/-/axe-core-3.4.2.tgz",
137
- "fileCount": 576,
138
- "unpackedSize": 2929556,
139
- "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJePF/GCRA9TVsSAnZWagAAbeEP/i0WNObH5qoxRV+5z1I5\nSWIaIj60P7FFPEyp39VQrmQM4uhCfb74+73yPOuTQF8PA/kicQ12Sb5IeDgb\nxpG1VBhC73YLa7/ab4WF5SrebQNPmejg+C2VLnxnctWz4irJVyap2qvIXGj1\nca+GdmvTz+gOqflv3eFjl5ByPGk5NOAbbIUL8WMu8dT4V/6MrHbHHeuNpRMO\nASDUxikTGbXGZspf8kezWmDr0n5VoikjkAefUINs2E3ZGDx5Of82a+8CGPTg\nhmjTGEPDpo9JYJweGNqDCgBTZgFWDht0T5PEj7/+w6GCd/ePAsDh5jD/5w3E\nn2mgY4zsiYNM/1gdU4LD3gD45h6MqtEETcY9OeDiKEWH17xv/3v05Z1fESek\nv+6sloZ8EExg/o5zsvhvWQNtmPtD37j/1hRhMYJFgp2oQskGfLBJUHSOnpxN\n+vbPtZDrp2+U4eBrX2dPgDIQABuOvWJ4gaTmNVwoSiV4ID/IOfBdE117nEAY\nVNR+rgpXnpt2AKaIQvTsHjFRrjiVoTXkQslMMGXjkOlD1fn3kMClW75yLy4I\nN/z/ErjWpmZ48vcT0u90LIgXLiJjcLsTG2rfNRnZe7H8Pjim85nRjXxze9gO\nUO+IGxMJ22VlGcCdBH1c5wO4PjO4LX7Au0aVaixq3xSaZrkIDE9bYO4i/dxr\nwgR6\r\n=Dtk7\r\n-----END PGP SIGNATURE-----\r\n"
135
+ "integrity": "sha512-mwpDgPwWB+5kMHyLjlxh4w25ClJfqSxi+c6LQ4ix349TdCUctMwJNPTkhPD1qP9SYIjFgjeVpVZWCvK9oBGwCg==",
136
+ "shasum": "d8d5aaef73f003e8b766ea28bb078343f3622201",
137
+ "tarball": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.1.tgz",
138
+ "fileCount": 594,
139
+ "unpackedSize": 2610611,
140
+ "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeRT4cCRA9TVsSAnZWagAA02oP/1NeHgsQyTuxOmBL1bmA\nyMvWsro/yPVNoOeAv5lgATjNhRV0lTTN6DjNiRRpau5pB7accvh7Ai0mLVRs\nv6pGZ9Ob5oB9PL5eJsQlTpF6whPpWyMBbHA8IoyMUnQ2B332XWdsC+PDJiPt\nLJdVsUg/MmU79/fBKAwZnlwQu+/hi/MqYhh96NzLfs5Gf2n6q1GSdoMDdhHc\nnv/93qyApqEsyAGvH57z3FWw1Yrf3v0Tbhkt2Xm15bdRsRlbQgt6dfpYpxcf\nkG1lBxM67y6BpF3ivnyrzZwXCb5ofyyzQBKPgZT1fZ5KsC+x0bBNMV3MBv2P\njnzBpXd0qdhu9E4/MuU7Zbc2YKFHaULKKyoOoOdVm6+aSeLqZYf+fhfZanZJ\nf2a8YW0TDLEfrTkzNMGQ73lLkFkNMSp8UfYvphHdtP2v2MzJu1P48tbTJtPU\n3AwZL9OgdZAaUsTRmShGeCNCaR03mKIfW5Tw87gaFlAeipvuGPz61S3l2B2T\nK75PfNpl31g2yNsXQa7FL/DLPacd1S59HzN5MnScuevPFMkgMGiUSCujryR0\nleZmfVXEFvcVQiT6MgCxKTqV4HfeOvwuUh1NjY6zT+rVLfVFQ4HwE1rADx4U\nij3gEgLLH2OJKxFdIfwRRLJMQlFoL4apJMrsTCOcNy6U0J2n+ZbAX5GoYezr\nV3XB\r\n=KopD\r\n-----END PGP SIGNATURE-----\r\n"
140
141
  },
141
142
  "engines": {
142
143
  "node": ">=4"
143
144
  },
144
- "gitHead": "467df229adab25b2c8ca4df92a23ea9a9c3459c8",
145
- "homepage": "https://github.com/dequelabs/axe-core#readme",
145
+ "gitHead": "277142590772e72f54747534eeb0faa27df1df18",
146
+ "homepage": "https://www.deque.com/axe/",
146
147
  "keywords": [
147
148
  "Accessibility",
148
149
  "a11y",
@@ -202,18 +203,20 @@
202
203
  "release": "standard-version -a",
203
204
  "rule-gen": "node build/rule-generator",
204
205
  "sri-update": "grunt build && node build/sri-update && git add sri-history.json",
206
+ "sri-validate": "node build/sri-update --validate",
205
207
  "start": "npm run develop",
206
208
  "test": "tsc && grunt test",
207
209
  "test:examples": "node ./doc/examples/test-examples",
210
+ "test:headless": "node ./build/test/headless",
208
211
  "test:locales": "mocha test/test-locales.js",
209
212
  "test:rule-help-version": "mocha test/test-rule-help-version.js",
210
213
  "version": "echo \"use 'npm run release' to bump axe-core version\" && exit 1"
211
214
  },
212
215
  "standard-version": {
213
216
  "scripts": {
214
- "postbump": "npm run sri-update"
217
+ "postbump": "npm ci && npm run sri-update"
215
218
  }
216
219
  },
217
220
  "typings": "axe.d.ts",
218
- "version": "3.4.2"
221
+ "version": "3.5.1"
219
222
  }
@@ -135,28 +135,44 @@
135
135
  "axe.js": "sha256-ekZaZcmreeOq0/Hm0MYYpjK2k/HfLIBchbdzynX2s1A=",
136
136
  "axe.min.js": "sha256-WUsm7HQhfTPm48UUbRuQCZ6mXZXpO+trPivOXYelKM0="
137
137
  },
138
+ "3.2.3": {
139
+ "axe.js": "sha256-l36pxPggxG0w7W9WFK21lyw9uaObTj3M5gS1Fl7ZABo=",
140
+ "axe.min.js": "sha256-c+LGvM2VcJVUXwaqzmDeKLDBMJSZgKUhnW9GK3JkZ5o="
141
+ },
138
142
  "3.3.0": {
139
- "axe.js": "sha256-IPwXSv4YYXnxEsNQj30armipJWS7+ZFgF+UbQnHZEJc=",
140
- "axe.min.js": "sha256-K5dF2aKG6IIZpZZDQrZrJi0XDDjz0mMbHcAkVtj5+ic="
143
+ "axe.js": "sha256-9qKFcrJohPVSRdWg+nYMf1cnxUz00rojnrcDbRpofP4=",
144
+ "axe.min.js": "sha256-t2QDE4+vMfgX52JfOztdvXHLxDJLc9Gc1O583kc4l/s="
141
145
  },
142
146
  "3.3.1": {
143
- "axe.js": "sha256-XFTBwMT6BkAhOlV/tgAilkA8u+YHQzh9+Nvc0Ue/V2o=",
144
- "axe.min.js": "sha256-KoZLqiuQewRxK/zeGig5ipdIWMglQOuhfAZHmB3LVNQ="
147
+ "axe.js": "sha256-MdbXT1qQi6W6AGWVUzUROzk8KhsTy6ePEpa3pBhO1S4=",
148
+ "axe.min.js": "sha256-x2j+s50F+GHZZWsTK2GWiJtcHo4MDvc5zpuIFTwXioY="
145
149
  },
146
150
  "3.3.2": {
147
- "axe.js": "sha256-JcCz9SrZX+oGJEsYPQ4fpDB096mdCKD3hf8SpYo/ADE=",
148
- "axe.min.js": "sha256-BzkfvZKBN8N7J2HwqfrbS8K+uICQsIEz6yTRtISGCr0="
151
+ "axe.js": "sha256-0gx9+aOF0I9F91zdACXlV8C0eZRP0bjKORUPDFuGOkw=",
152
+ "axe.min.js": "sha256-eMkj7GARritK91GFkbOxZind0uesDKEOXS/AggeFJ4E="
153
+ },
154
+ "3.3.3": {
155
+ "axe.js": "sha256-cWikFVL1B7T3kafsX1ESurvIh/+2bFrhX8CKJJUNnQ0=",
156
+ "axe.min.js": "sha256-L/faUr+k2zA3fuo4l2T7mIpMxL8vPB3CWsSujoLyKLk="
149
157
  },
150
158
  "3.4.0": {
151
- "axe.js": "sha256-LUQUiJIyJRR10Ct2kwIDlqi6Ojt3zsgTHiephxccciY=",
152
- "axe.min.js": "sha256-/yZ9QvDDVP4J90XG5PPi0GmAh9QSBzqWnPDqmWzxzRk="
159
+ "axe.js": "sha256-J7v+KmmfiDeImDENld25aBnvcJyhg2Z/PayxJyJmL3A=",
160
+ "axe.min.js": "sha256-3uvAwJcMTsYRtepeqr32rrpy5zZ/fMYjiKEKPZM6Rtc="
153
161
  },
154
162
  "3.4.1": {
155
- "axe.js": "sha256-ntH0PXGhEgawLqZDxK7G8qwBX4dNE8UtgAZ1ByVNsNw=",
156
- "axe.min.js": "sha256-n4jjgXRRjftBTkYeLoo17xr9nJdyz8Q32MJfwZSlY7w="
163
+ "axe.js": "sha256-2mBsmz6UhYUk3gYnRiMkzuJTiHd86XCEA/Rxf3tN7l8=",
164
+ "axe.min.js": "sha256-z1eK+dbxVx44jv/XqW4xYJlyA9T9zXuxMlJbNJfTvOg="
157
165
  },
158
166
  "3.4.2": {
159
167
  "axe.js": "sha256-1O2tV4TBC/8pYjxbIwj192fUX1SJvsjn8KQH3PdJUuU=",
160
168
  "axe.min.js": "sha256-XXgQWSZNsMKcqEQnEU2BDkIfCzV6gCjOjrwnrzioYm4="
169
+ },
170
+ "3.5.0": {
171
+ "axe.js": "sha256-w/zYk9v7UUawn15gNmZHGrh8WdzCI1bSxmRM2N7Uk4o=",
172
+ "axe.min.js": "sha256-p3SZwFLtGBl/V92T6V9wJvUEkr5GvLswqkPy8rt49S0="
173
+ },
174
+ "3.5.1": {
175
+ "axe.js": "sha256-J5+J6tFJyKx7Jyn9xK3rJhAyJCGAPR6kOwzXjpdFbEM=",
176
+ "axe.min.js": "sha256-wo0QYtgoayRMifoYIHc8Spw5NmeFN4ojGLSqmrUuhX8="
161
177
  }
162
178
  }