govuk_publishing_components 30.4.1 → 30.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +63 -51
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +8 -8
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +11 -10
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +26 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -3
- data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -4
- data/app/views/govuk_publishing_components/component_guide/show.html.erb +28 -27
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/README.md +83 -53
- data/node_modules/axe-core/axe.d.ts +403 -224
- data/node_modules/axe-core/axe.js +23281 -21919
- data/node_modules/axe-core/axe.min.js +3 -3
- data/node_modules/axe-core/locales/da.json +795 -780
- data/node_modules/axe-core/locales/de.json +932 -621
- data/node_modules/axe-core/locales/es.json +786 -771
- data/node_modules/axe-core/locales/eu.json +787 -0
- data/node_modules/axe-core/locales/fr.json +982 -840
- data/node_modules/axe-core/locales/ja.json +988 -880
- data/node_modules/axe-core/locales/ko.json +999 -775
- data/node_modules/axe-core/locales/nl.json +46 -34
- data/node_modules/axe-core/locales/pl.json +965 -0
- data/node_modules/axe-core/locales/pt_BR.json +966 -880
- data/node_modules/axe-core/package.json +189 -145
- data/node_modules/axe-core/sri-history.json +312 -192
- data/node_modules/govuk-frontend/govuk/all.js +64 -44
- data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -1
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +3 -13
- data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +12 -12
- data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +5 -1
- data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/details/details.js +8 -20
- data/node_modules/govuk-frontend/govuk/components/details/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/details/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +9 -0
- data/node_modules/govuk-frontend/govuk/components/error-summary/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +2 -2
- data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +59 -20
- data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +40 -0
- data/node_modules/govuk-frontend/govuk/components/footer/template.njk +17 -7
- data/node_modules/govuk-frontend/govuk/components/header/_index.scss +14 -21
- data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +11 -11
- data/node_modules/govuk-frontend/govuk/components/header/header.js +53 -11
- data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +2 -2
- data/node_modules/govuk-frontend/govuk/components/header/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/input/_index.scss +9 -10
- data/node_modules/govuk-frontend/govuk/components/inset-text/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/inset-text/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/notification-banner/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +2 -2
- data/node_modules/govuk-frontend/govuk/components/panel/macro-options.json +6 -0
- data/node_modules/govuk-frontend/govuk/components/panel/template.njk +2 -2
- data/node_modules/govuk-frontend/govuk/components/select/_index.scss +6 -0
- data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +15 -1
- data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +37 -10
- data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +69 -4
- data/node_modules/govuk-frontend/govuk/components/summary-list/template.njk +3 -3
- data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +13 -13
- data/node_modules/govuk-frontend/govuk/components/tabs/template.njk +5 -1
- data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +14 -7
- data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +56 -12
- data/node_modules/govuk-frontend/govuk/settings/_spacing.scss +4 -8
- data/node_modules/govuk-frontend/govuk/template.njk +5 -5
- data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -13
- data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +8 -20
- data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +53 -11
- data/node_modules/govuk-frontend/package.json +1 -1
- metadata +6 -584
- data/node_modules/axe-core/CHANGELOG.md +0 -1053
- data/node_modules/axe-core/CONTRIBUTING.md +0 -187
- data/node_modules/axe-core/bower.json +0 -40
- data/node_modules/axe-core/doc/API.md +0 -889
- data/node_modules/axe-core/doc/accessibility-supported.md +0 -33
- data/node_modules/axe-core/doc/act-rules-format.md +0 -37
- data/node_modules/axe-core/doc/aria-supported.md +0 -13
- data/node_modules/axe-core/doc/backwards-compatibility-doc.md +0 -94
- data/node_modules/axe-core/doc/check-message-template.md +0 -124
- data/node_modules/axe-core/doc/code-submission-guidelines.md +0 -178
- data/node_modules/axe-core/doc/developer-guide.md +0 -514
- data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/README.md +0 -13
- data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/axe-cdp.js +0 -81
- data/node_modules/axe-core/doc/examples/chrome-debugging-protocol/package.json +0 -11
- data/node_modules/axe-core/doc/examples/html-handlebars.md +0 -164
- data/node_modules/axe-core/doc/examples/jasmine/README.md +0 -35
- data/node_modules/axe-core/doc/examples/jasmine/karma.conf.js +0 -29
- data/node_modules/axe-core/doc/examples/jasmine/package.json +0 -21
- data/node_modules/axe-core/doc/examples/jasmine/spec/a11y.js +0 -36
- data/node_modules/axe-core/doc/examples/jest_react/README.md +0 -41
- data/node_modules/axe-core/doc/examples/jest_react/link.js +0 -7
- data/node_modules/axe-core/doc/examples/jest_react/link.test.js +0 -24
- data/node_modules/axe-core/doc/examples/jest_react/package.json +0 -28
- data/node_modules/axe-core/doc/examples/jest_react/test-helpers.js +0 -21
- data/node_modules/axe-core/doc/examples/jsdom/package.json +0 -15
- data/node_modules/axe-core/doc/examples/mocha/README.md +0 -35
- data/node_modules/axe-core/doc/examples/mocha/karma.conf.js +0 -29
- data/node_modules/axe-core/doc/examples/mocha/package.json +0 -22
- data/node_modules/axe-core/doc/examples/phantomjs/README.md +0 -17
- data/node_modules/axe-core/doc/examples/phantomjs/axe-phantom.js +0 -53
- data/node_modules/axe-core/doc/examples/phantomjs/package.json +0 -19
- data/node_modules/axe-core/doc/examples/puppeteer/README.md +0 -12
- data/node_modules/axe-core/doc/examples/puppeteer/axe-puppeteer.js +0 -60
- data/node_modules/axe-core/doc/examples/puppeteer/package.json +0 -13
- data/node_modules/axe-core/doc/examples/qunit/README.md +0 -37
- data/node_modules/axe-core/doc/examples/qunit/package.json +0 -21
- data/node_modules/axe-core/doc/examples/test-examples.js +0 -32
- data/node_modules/axe-core/doc/plugins.md +0 -123
- data/node_modules/axe-core/doc/projects.md +0 -48
- data/node_modules/axe-core/doc/rule-descriptions.md +0 -129
- data/node_modules/axe-core/doc/rule-development.md +0 -123
- data/node_modules/axe-core/doc/rule-proposal.md +0 -106
- data/node_modules/axe-core/lib/checks/aria/abstractrole.js +0 -10
- data/node_modules/axe-core/lib/checks/aria/abstractrole.json +0 -14
- data/node_modules/axe-core/lib/checks/aria/allowed-attr.js +0 -39
- data/node_modules/axe-core/lib/checks/aria/allowed-attr.json +0 -14
- data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.js +0 -28
- data/node_modules/axe-core/lib/checks/aria/aria-allowed-role.json +0 -22
- data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.js +0 -1
- data/node_modules/axe-core/lib/checks/aria/aria-hidden-body.json +0 -11
- data/node_modules/axe-core/lib/checks/aria/aria-roledescription.js +0 -14
- data/node_modules/axe-core/lib/checks/aria/aria-roledescription.json +0 -23
- data/node_modules/axe-core/lib/checks/aria/errormessage.js +0 -33
- data/node_modules/axe-core/lib/checks/aria/errormessage.json +0 -14
- data/node_modules/axe-core/lib/checks/aria/fallbackrole.js +0 -1
- data/node_modules/axe-core/lib/checks/aria/fallbackrole.json +0 -11
- data/node_modules/axe-core/lib/checks/aria/has-widget-role.js +0 -6
- data/node_modules/axe-core/lib/checks/aria/has-widget-role.json +0 -12
- data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.js +0 -6
- data/node_modules/axe-core/lib/checks/aria/implicit-role-fallback.json +0 -12
- data/node_modules/axe-core/lib/checks/aria/invalidrole.js +0 -17
- data/node_modules/axe-core/lib/checks/aria/invalidrole.json +0 -14
- data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.js +0 -21
- data/node_modules/axe-core/lib/checks/aria/no-implicit-explicit-label.json +0 -11
- data/node_modules/axe-core/lib/checks/aria/required-attr.js +0 -53
- data/node_modules/axe-core/lib/checks/aria/required-attr.json +0 -14
- data/node_modules/axe-core/lib/checks/aria/required-children.js +0 -154
- data/node_modules/axe-core/lib/checks/aria/required-children.json +0 -32
- data/node_modules/axe-core/lib/checks/aria/required-parent.js +0 -87
- data/node_modules/axe-core/lib/checks/aria/required-parent.json +0 -14
- data/node_modules/axe-core/lib/checks/aria/unsupportedattr.js +0 -39
- data/node_modules/axe-core/lib/checks/aria/unsupportedattr.json +0 -11
- data/node_modules/axe-core/lib/checks/aria/unsupportedrole.js +0 -1
- data/node_modules/axe-core/lib/checks/aria/unsupportedrole.json +0 -11
- data/node_modules/axe-core/lib/checks/aria/valid-attr-value.js +0 -80
- data/node_modules/axe-core/lib/checks/aria/valid-attr-value.json +0 -19
- data/node_modules/axe-core/lib/checks/aria/valid-attr.js +0 -25
- data/node_modules/axe-core/lib/checks/aria/valid-attr.json +0 -15
- data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.js +0 -62
- data/node_modules/axe-core/lib/checks/aria/valid-scrollable-semantics.json +0 -12
- data/node_modules/axe-core/lib/checks/color/color-contrast.js +0 -86
- data/node_modules/axe-core/lib/checks/color/color-contrast.json +0 -30
- data/node_modules/axe-core/lib/checks/color/link-in-text-block.js +0 -85
- data/node_modules/axe-core/lib/checks/color/link-in-text-block.json +0 -19
- data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.js +0 -67
- data/node_modules/axe-core/lib/checks/forms/autocomplete-appropriate.json +0 -11
- data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.js +0 -2
- data/node_modules/axe-core/lib/checks/forms/autocomplete-valid.json +0 -11
- data/node_modules/axe-core/lib/checks/forms/fieldset-after.js +0 -25
- data/node_modules/axe-core/lib/checks/forms/fieldset.js +0 -109
- data/node_modules/axe-core/lib/checks/forms/fieldset.json +0 -20
- data/node_modules/axe-core/lib/checks/forms/group-labelledby-after.js +0 -16
- data/node_modules/axe-core/lib/checks/forms/group-labelledby.js +0 -66
- data/node_modules/axe-core/lib/checks/forms/group-labelledby.json +0 -17
- data/node_modules/axe-core/lib/checks/keyboard/accesskeys-after.js +0 -19
- data/node_modules/axe-core/lib/checks/keyboard/accesskeys.js +0 -5
- data/node_modules/axe-core/lib/checks/keyboard/accesskeys.json +0 -12
- data/node_modules/axe-core/lib/checks/keyboard/focusable-content.js +0 -16
- data/node_modules/axe-core/lib/checks/keyboard/focusable-content.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.js +0 -30
- data/node_modules/axe-core/lib/checks/keyboard/focusable-disabled.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/focusable-element.js +0 -12
- data/node_modules/axe-core/lib/checks/keyboard/focusable-element.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.js +0 -14
- data/node_modules/axe-core/lib/checks/keyboard/focusable-modal-open.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.js +0 -6
- data/node_modules/axe-core/lib/checks/keyboard/focusable-no-name.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.js +0 -30
- data/node_modules/axe-core/lib/checks/keyboard/focusable-not-tabbable.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.js +0 -18
- data/node_modules/axe-core/lib/checks/keyboard/landmark-is-top-level.json +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/page-has-elm-after.js +0 -11
- data/node_modules/axe-core/lib/checks/keyboard/page-has-elm.js +0 -13
- data/node_modules/axe-core/lib/checks/keyboard/page-has-heading-one.json +0 -15
- data/node_modules/axe-core/lib/checks/keyboard/page-has-main.json +0 -15
- data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-after.js +0 -2
- data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-banner.json +0 -16
- data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-contentinfo.json +0 -16
- data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate-main.json +0 -15
- data/node_modules/axe-core/lib/checks/keyboard/page-no-duplicate.js +0 -36
- data/node_modules/axe-core/lib/checks/keyboard/tabindex.js +0 -6
- data/node_modules/axe-core/lib/checks/keyboard/tabindex.json +0 -11
- data/node_modules/axe-core/lib/checks/label/alt-space-value.js +0 -3
- data/node_modules/axe-core/lib/checks/label/alt-space-value.json +0 -11
- data/node_modules/axe-core/lib/checks/label/duplicate-img-label.js +0 -22
- data/node_modules/axe-core/lib/checks/label/duplicate-img-label.json +0 -11
- data/node_modules/axe-core/lib/checks/label/explicit.js +0 -15
- data/node_modules/axe-core/lib/checks/label/explicit.json +0 -11
- data/node_modules/axe-core/lib/checks/label/help-same-as-label.js +0 -23
- data/node_modules/axe-core/lib/checks/label/help-same-as-label.json +0 -12
- data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.js +0 -12
- data/node_modules/axe-core/lib/checks/label/hidden-explicit-label.json +0 -11
- data/node_modules/axe-core/lib/checks/label/implicit.js +0 -7
- data/node_modules/axe-core/lib/checks/label/implicit.json +0 -11
- data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.js +0 -59
- data/node_modules/axe-core/lib/checks/label/label-content-name-mismatch.json +0 -15
- data/node_modules/axe-core/lib/checks/label/multiple-label.js +0 -39
- data/node_modules/axe-core/lib/checks/label/multiple-label.json +0 -11
- data/node_modules/axe-core/lib/checks/label/title-only.js +0 -5
- data/node_modules/axe-core/lib/checks/label/title-only.json +0 -11
- data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique-after.js +0 -23
- data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.js +0 -7
- data/node_modules/axe-core/lib/checks/landmarks/landmark-is-unique.json +0 -12
- data/node_modules/axe-core/lib/checks/language/has-lang.js +0 -20
- data/node_modules/axe-core/lib/checks/language/has-lang.json +0 -14
- data/node_modules/axe-core/lib/checks/language/valid-lang.js +0 -26
- data/node_modules/axe-core/lib/checks/language/valid-lang.json +0 -11
- data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.js +0 -5
- data/node_modules/axe-core/lib/checks/language/xml-lang-mismatch.json +0 -11
- data/node_modules/axe-core/lib/checks/lists/dlitem.js +0 -23
- data/node_modules/axe-core/lib/checks/lists/dlitem.json +0 -11
- data/node_modules/axe-core/lib/checks/lists/listitem.js +0 -21
- data/node_modules/axe-core/lib/checks/lists/listitem.json +0 -14
- data/node_modules/axe-core/lib/checks/lists/only-dlitems.js +0 -42
- data/node_modules/axe-core/lib/checks/lists/only-dlitems.json +0 -11
- data/node_modules/axe-core/lib/checks/lists/only-listitems.js +0 -58
- data/node_modules/axe-core/lib/checks/lists/only-listitems.json +0 -14
- data/node_modules/axe-core/lib/checks/lists/structured-dlitems.js +0 -22
- data/node_modules/axe-core/lib/checks/lists/structured-dlitems.json +0 -11
- data/node_modules/axe-core/lib/checks/media/caption.js +0 -8
- data/node_modules/axe-core/lib/checks/media/caption.json +0 -11
- data/node_modules/axe-core/lib/checks/media/description.js +0 -8
- data/node_modules/axe-core/lib/checks/media/description.json +0 -11
- data/node_modules/axe-core/lib/checks/media/frame-tested.js +0 -28
- data/node_modules/axe-core/lib/checks/media/frame-tested.json +0 -15
- data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.js +0 -93
- data/node_modules/axe-core/lib/checks/media/no-autoplay-audio.json +0 -15
- data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.js +0 -251
- data/node_modules/axe-core/lib/checks/mobile/css-orientation-lock.json +0 -15
- data/node_modules/axe-core/lib/checks/mobile/meta-viewport-large.json +0 -15
- data/node_modules/axe-core/lib/checks/mobile/meta-viewport-scale.js +0 -55
- data/node_modules/axe-core/lib/checks/mobile/meta-viewport.json +0 -14
- data/node_modules/axe-core/lib/checks/navigation/header-present.js +0 -4
- data/node_modules/axe-core/lib/checks/navigation/header-present.json +0 -11
- data/node_modules/axe-core/lib/checks/navigation/heading-order-after.js +0 -14
- data/node_modules/axe-core/lib/checks/navigation/heading-order.js +0 -15
- data/node_modules/axe-core/lib/checks/navigation/heading-order.json +0 -12
- data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose-after.js +0 -100
- data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.js +0 -31
- data/node_modules/axe-core/lib/checks/navigation/identical-links-same-purpose.json +0 -12
- data/node_modules/axe-core/lib/checks/navigation/internal-link-present.js +0 -4
- data/node_modules/axe-core/lib/checks/navigation/internal-link-present.json +0 -11
- data/node_modules/axe-core/lib/checks/navigation/landmark.js +0 -3
- data/node_modules/axe-core/lib/checks/navigation/landmark.json +0 -11
- data/node_modules/axe-core/lib/checks/navigation/meta-refresh.js +0 -4
- data/node_modules/axe-core/lib/checks/navigation/meta-refresh.json +0 -11
- data/node_modules/axe-core/lib/checks/navigation/p-as-heading.js +0 -93
- data/node_modules/axe-core/lib/checks/navigation/p-as-heading.json +0 -30
- data/node_modules/axe-core/lib/checks/navigation/region.js +0 -107
- data/node_modules/axe-core/lib/checks/navigation/region.json +0 -11
- data/node_modules/axe-core/lib/checks/navigation/skip-link.js +0 -5
- data/node_modules/axe-core/lib/checks/navigation/skip-link.json +0 -12
- data/node_modules/axe-core/lib/checks/navigation/unique-frame-title-after.js +0 -9
- data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.js +0 -6
- data/node_modules/axe-core/lib/checks/navigation/unique-frame-title.json +0 -12
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id-active.json +0 -12
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id-after.js +0 -8
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id-aria.json +0 -12
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id.js +0 -17
- data/node_modules/axe-core/lib/checks/parsing/duplicate-id.json +0 -12
- data/node_modules/axe-core/lib/checks/shared/aria-label.js +0 -2
- data/node_modules/axe-core/lib/checks/shared/aria-label.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/aria-labelledby.js +0 -2
- data/node_modules/axe-core/lib/checks/shared/aria-labelledby.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.js +0 -18
- data/node_modules/axe-core/lib/checks/shared/avoid-inline-spacing.json +0 -14
- data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.js +0 -12
- data/node_modules/axe-core/lib/checks/shared/button-has-visible-text.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/doc-has-title.js +0 -2
- data/node_modules/axe-core/lib/checks/shared/doc-has-title.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/exists.js +0 -1
- data/node_modules/axe-core/lib/checks/shared/exists.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/has-alt.js +0 -6
- data/node_modules/axe-core/lib/checks/shared/has-alt.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/has-visible-text.js +0 -1
- data/node_modules/axe-core/lib/checks/shared/has-visible-text.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/is-on-screen.js +0 -4
- data/node_modules/axe-core/lib/checks/shared/is-on-screen.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/non-empty-alt.js +0 -2
- data/node_modules/axe-core/lib/checks/shared/non-empty-alt.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.js +0 -15
- data/node_modules/axe-core/lib/checks/shared/non-empty-if-present.json +0 -14
- data/node_modules/axe-core/lib/checks/shared/non-empty-title.js +0 -2
- data/node_modules/axe-core/lib/checks/shared/non-empty-title.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/non-empty-value.js +0 -2
- data/node_modules/axe-core/lib/checks/shared/non-empty-value.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/role-none.js +0 -1
- data/node_modules/axe-core/lib/checks/shared/role-none.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/role-presentation.js +0 -1
- data/node_modules/axe-core/lib/checks/shared/role-presentation.json +0 -11
- data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.js +0 -4
- data/node_modules/axe-core/lib/checks/shared/svg-non-empty-title.json +0 -11
- data/node_modules/axe-core/lib/checks/tables/caption-faked.js +0 -10
- data/node_modules/axe-core/lib/checks/tables/caption-faked.json +0 -11
- data/node_modules/axe-core/lib/checks/tables/has-caption.js +0 -1
- data/node_modules/axe-core/lib/checks/tables/has-caption.json +0 -12
- data/node_modules/axe-core/lib/checks/tables/has-summary.js +0 -1
- data/node_modules/axe-core/lib/checks/tables/has-summary.json +0 -12
- data/node_modules/axe-core/lib/checks/tables/has-th.js +0 -31
- data/node_modules/axe-core/lib/checks/tables/has-th.json +0 -12
- data/node_modules/axe-core/lib/checks/tables/headers-visible-text.js +0 -30
- data/node_modules/axe-core/lib/checks/tables/html5-scope.js +0 -5
- data/node_modules/axe-core/lib/checks/tables/html5-scope.json +0 -11
- data/node_modules/axe-core/lib/checks/tables/same-caption-summary.js +0 -7
- data/node_modules/axe-core/lib/checks/tables/same-caption-summary.json +0 -11
- data/node_modules/axe-core/lib/checks/tables/scope-value.js +0 -5
- data/node_modules/axe-core/lib/checks/tables/scope-value.json +0 -11
- data/node_modules/axe-core/lib/checks/tables/td-has-header.js +0 -30
- data/node_modules/axe-core/lib/checks/tables/td-has-header.json +0 -11
- data/node_modules/axe-core/lib/checks/tables/td-headers-attr.js +0 -61
- data/node_modules/axe-core/lib/checks/tables/td-headers-attr.json +0 -12
- data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.js +0 -76
- data/node_modules/axe-core/lib/checks/tables/th-has-data-cells.json +0 -12
- data/node_modules/axe-core/lib/checks/tables/th-single-row-column.js +0 -39
- data/node_modules/axe-core/lib/checks/visibility/hidden-content.js +0 -21
- data/node_modules/axe-core/lib/checks/visibility/hidden-content.json +0 -12
- data/node_modules/axe-core/lib/commons/aria/arialabel-text.js +0 -18
- data/node_modules/axe-core/lib/commons/aria/arialabelledby-text.js +0 -52
- data/node_modules/axe-core/lib/commons/aria/attributes.js +0 -45
- data/node_modules/axe-core/lib/commons/aria/get-element-unallowed-roles.js +0 -113
- data/node_modules/axe-core/lib/commons/aria/get-owned-virtual.js +0 -24
- data/node_modules/axe-core/lib/commons/aria/get-role.js +0 -44
- data/node_modules/axe-core/lib/commons/aria/index.js +0 -2424
- data/node_modules/axe-core/lib/commons/aria/is-accessible-ref.js +0 -59
- data/node_modules/axe-core/lib/commons/aria/is-aria-role-allowed-on-element.js +0 -41
- data/node_modules/axe-core/lib/commons/aria/is-unsupported-role.js +0 -14
- data/node_modules/axe-core/lib/commons/aria/label-virtual.js +0 -54
- data/node_modules/axe-core/lib/commons/aria/named-from-contents.js +0 -39
- data/node_modules/axe-core/lib/commons/aria/roles.js +0 -208
- data/node_modules/axe-core/lib/commons/aria/validate-attr-value.js +0 -62
- data/node_modules/axe-core/lib/commons/color/center-point-of-rect.js +0 -30
- data/node_modules/axe-core/lib/commons/color/contrast.js +0 -178
- data/node_modules/axe-core/lib/commons/color/element-has-image.js +0 -36
- data/node_modules/axe-core/lib/commons/color/element-is-distinct.js +0 -88
- data/node_modules/axe-core/lib/commons/color/get-background-color.js +0 -285
- data/node_modules/axe-core/lib/commons/color/get-foreground-color.js +0 -61
- data/node_modules/axe-core/lib/commons/color/get-own-background-color.js +0 -22
- data/node_modules/axe-core/lib/commons/color/incomplete-data.js +0 -50
- data/node_modules/axe-core/lib/commons/color/index.js +0 -8
- data/node_modules/axe-core/lib/commons/dom/elements-below-floating.js +0 -39
- data/node_modules/axe-core/lib/commons/dom/find-elms-in-context.js +0 -28
- data/node_modules/axe-core/lib/commons/dom/find-up.js +0 -63
- data/node_modules/axe-core/lib/commons/dom/get-composed-parent.js +0 -25
- data/node_modules/axe-core/lib/commons/dom/get-element-by-reference.js +0 -34
- data/node_modules/axe-core/lib/commons/dom/get-element-coordinates.js +0 -38
- data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +0 -589
- data/node_modules/axe-core/lib/commons/dom/get-root-node.js +0 -12
- data/node_modules/axe-core/lib/commons/dom/get-scroll-offset.js +0 -33
- data/node_modules/axe-core/lib/commons/dom/get-tabbable-elements.js +0 -24
- data/node_modules/axe-core/lib/commons/dom/get-viewport-size.js +0 -37
- data/node_modules/axe-core/lib/commons/dom/has-content-virtual.js +0 -75
- data/node_modules/axe-core/lib/commons/dom/idrefs.js +0 -36
- data/node_modules/axe-core/lib/commons/dom/index.js +0 -9
- data/node_modules/axe-core/lib/commons/dom/is-focusable.js +0 -95
- data/node_modules/axe-core/lib/commons/dom/is-hidden-with-css.js +0 -73
- data/node_modules/axe-core/lib/commons/dom/is-html5.js +0 -17
- data/node_modules/axe-core/lib/commons/dom/is-in-text-block.js +0 -94
- data/node_modules/axe-core/lib/commons/dom/is-modal-open.js +0 -98
- data/node_modules/axe-core/lib/commons/dom/is-node.js +0 -13
- data/node_modules/axe-core/lib/commons/dom/is-offscreen.js +0 -62
- data/node_modules/axe-core/lib/commons/dom/is-skip-link.js +0 -45
- data/node_modules/axe-core/lib/commons/dom/is-visible.js +0 -176
- data/node_modules/axe-core/lib/commons/dom/is-visual-content.js +0 -49
- data/node_modules/axe-core/lib/commons/dom/shadow-elements-from-point.js +0 -42
- data/node_modules/axe-core/lib/commons/dom/url-props-from-attribute.js +0 -152
- data/node_modules/axe-core/lib/commons/dom/visually-contains.js +0 -111
- data/node_modules/axe-core/lib/commons/dom/visually-overlaps.js +0 -46
- data/node_modules/axe-core/lib/commons/forms/index.js +0 -8
- data/node_modules/axe-core/lib/commons/forms/is-aria-combobox.js +0 -13
- data/node_modules/axe-core/lib/commons/forms/is-aria-listbox.js +0 -13
- data/node_modules/axe-core/lib/commons/forms/is-aria-range.js +0 -14
- data/node_modules/axe-core/lib/commons/forms/is-aria-textbox.js +0 -13
- data/node_modules/axe-core/lib/commons/forms/is-native-select.js +0 -13
- data/node_modules/axe-core/lib/commons/forms/is-native-textbox.js +0 -28
- data/node_modules/axe-core/lib/commons/index.js +0 -11
- data/node_modules/axe-core/lib/commons/intro.stub +0 -1
- data/node_modules/axe-core/lib/commons/matches/attributes.js +0 -27
- data/node_modules/axe-core/lib/commons/matches/condition.js +0 -19
- data/node_modules/axe-core/lib/commons/matches/from-definition.js +0 -52
- data/node_modules/axe-core/lib/commons/matches/from-function.js +0 -38
- data/node_modules/axe-core/lib/commons/matches/from-primative.js +0 -30
- data/node_modules/axe-core/lib/commons/matches/index.js +0 -39
- data/node_modules/axe-core/lib/commons/matches/node-name.js +0 -24
- data/node_modules/axe-core/lib/commons/matches/properties.js +0 -28
- data/node_modules/axe-core/lib/commons/outro.stub +0 -2
- data/node_modules/axe-core/lib/commons/table/get-all-cells.js +0 -28
- data/node_modules/axe-core/lib/commons/table/get-cell-position.js +0 -28
- data/node_modules/axe-core/lib/commons/table/get-headers.js +0 -79
- data/node_modules/axe-core/lib/commons/table/get-scope.js +0 -54
- data/node_modules/axe-core/lib/commons/table/index.js +0 -9
- data/node_modules/axe-core/lib/commons/table/is-column-header.js +0 -13
- data/node_modules/axe-core/lib/commons/table/is-data-cell.js +0 -22
- data/node_modules/axe-core/lib/commons/table/is-data-table.js +0 -189
- data/node_modules/axe-core/lib/commons/table/is-header.js +0 -22
- data/node_modules/axe-core/lib/commons/table/is-row-header.js +0 -13
- data/node_modules/axe-core/lib/commons/table/to-grid.js +0 -38
- data/node_modules/axe-core/lib/commons/table/traverse.js +0 -78
- data/node_modules/axe-core/lib/commons/text/accessible-text-virtual.js +0 -152
- data/node_modules/axe-core/lib/commons/text/form-control-value.js +0 -192
- data/node_modules/axe-core/lib/commons/text/index.js +0 -8
- data/node_modules/axe-core/lib/commons/text/is-human-interpretable.js +0 -51
- data/node_modules/axe-core/lib/commons/text/is-icon-ligature.js +0 -210
- data/node_modules/axe-core/lib/commons/text/is-valid-autocomplete.js +0 -117
- data/node_modules/axe-core/lib/commons/text/label-text.js +0 -58
- data/node_modules/axe-core/lib/commons/text/label-virtual.js +0 -53
- data/node_modules/axe-core/lib/commons/text/native-element-types.js +0 -100
- data/node_modules/axe-core/lib/commons/text/native-text-alternative.js +0 -50
- data/node_modules/axe-core/lib/commons/text/native-text-methods.js +0 -122
- data/node_modules/axe-core/lib/commons/text/sanitize.js +0 -18
- data/node_modules/axe-core/lib/commons/text/subtree-text.js +0 -89
- data/node_modules/axe-core/lib/commons/text/title-text.js +0 -33
- data/node_modules/axe-core/lib/commons/text/unicode.js +0 -147
- data/node_modules/axe-core/lib/commons/text/unsupported.js +0 -5
- data/node_modules/axe-core/lib/commons/text/visible-text-nodes.js +0 -25
- data/node_modules/axe-core/lib/commons/text/visible-virtual.js +0 -46
- data/node_modules/axe-core/lib/commons/utils/index.js +0 -10
- data/node_modules/axe-core/lib/core/base/audit.js +0 -781
- data/node_modules/axe-core/lib/core/base/cache.js +0 -33
- data/node_modules/axe-core/lib/core/base/check-result.js +0 -33
- data/node_modules/axe-core/lib/core/base/check.js +0 -170
- data/node_modules/axe-core/lib/core/base/context.js +0 -274
- data/node_modules/axe-core/lib/core/base/rule-result.js +0 -39
- data/node_modules/axe-core/lib/core/base/rule.js +0 -560
- data/node_modules/axe-core/lib/core/base/virtual-node/abstract-virtual-node.js +0 -40
- data/node_modules/axe-core/lib/core/base/virtual-node/serial-virtual-node.js +0 -88
- data/node_modules/axe-core/lib/core/base/virtual-node/virtual-node.js +0 -136
- data/node_modules/axe-core/lib/core/constants.js +0 -76
- data/node_modules/axe-core/lib/core/imports/index.js +0 -51
- data/node_modules/axe-core/lib/core/index.js +0 -43
- data/node_modules/axe-core/lib/core/log.js +0 -12
- data/node_modules/axe-core/lib/core/public/cleanup-plugins.js +0 -53
- data/node_modules/axe-core/lib/core/public/configure.js +0 -110
- data/node_modules/axe-core/lib/core/public/get-rules.js +0 -29
- data/node_modules/axe-core/lib/core/public/load.js +0 -66
- data/node_modules/axe-core/lib/core/public/plugins.js +0 -47
- data/node_modules/axe-core/lib/core/public/reporter.js +0 -24
- data/node_modules/axe-core/lib/core/public/reset.js +0 -12
- data/node_modules/axe-core/lib/core/public/run-rules.js +0 -96
- data/node_modules/axe-core/lib/core/public/run-virtual-rule.js +0 -50
- data/node_modules/axe-core/lib/core/public/run.js +0 -159
- data/node_modules/axe-core/lib/core/reporters/helpers/failure-summary.js +0 -35
- data/node_modules/axe-core/lib/core/reporters/helpers/get-environment-data.js +0 -39
- data/node_modules/axe-core/lib/core/reporters/helpers/incomplete-fallback-msg.js +0 -13
- data/node_modules/axe-core/lib/core/reporters/helpers/index.js +0 -3
- data/node_modules/axe-core/lib/core/reporters/helpers/process-aggregate.js +0 -102
- data/node_modules/axe-core/lib/core/reporters/na.js +0 -24
- data/node_modules/axe-core/lib/core/reporters/no-passes.js +0 -18
- data/node_modules/axe-core/lib/core/reporters/raw-env.js +0 -12
- data/node_modules/axe-core/lib/core/reporters/raw.js +0 -32
- data/node_modules/axe-core/lib/core/reporters/v1.js +0 -29
- data/node_modules/axe-core/lib/core/reporters/v2.js +0 -22
- data/node_modules/axe-core/lib/core/utils/aggregate.js +0 -19
- data/node_modules/axe-core/lib/core/utils/aggregateChecks.js +0 -85
- data/node_modules/axe-core/lib/core/utils/aggregateNodeResults.js +0 -61
- data/node_modules/axe-core/lib/core/utils/aggregateResult.js +0 -37
- data/node_modules/axe-core/lib/core/utils/are-styles-set.js +0 -21
- data/node_modules/axe-core/lib/core/utils/assert.js +0 -12
- data/node_modules/axe-core/lib/core/utils/check-helper.js +0 -38
- data/node_modules/axe-core/lib/core/utils/clone.js +0 -27
- data/node_modules/axe-core/lib/core/utils/collect-results-from-frames.js +0 -127
- data/node_modules/axe-core/lib/core/utils/contains.js +0 -44
- data/node_modules/axe-core/lib/core/utils/css-parser.js +0 -7
- data/node_modules/axe-core/lib/core/utils/dq-element.js +0 -97
- data/node_modules/axe-core/lib/core/utils/element-matches.js +0 -43
- data/node_modules/axe-core/lib/core/utils/escape-selector.js +0 -78
- data/node_modules/axe-core/lib/core/utils/extend-meta-data.js +0 -17
- data/node_modules/axe-core/lib/core/utils/finalize-result.js +0 -11
- data/node_modules/axe-core/lib/core/utils/find-by.js +0 -14
- data/node_modules/axe-core/lib/core/utils/flattened-tree.js +0 -156
- data/node_modules/axe-core/lib/core/utils/get-all-checks.js +0 -12
- data/node_modules/axe-core/lib/core/utils/get-base-lang.js +0 -16
- data/node_modules/axe-core/lib/core/utils/get-check-message.js +0 -21
- data/node_modules/axe-core/lib/core/utils/get-check-option.js +0 -39
- data/node_modules/axe-core/lib/core/utils/get-friendly-uri-end.js +0 -144
- data/node_modules/axe-core/lib/core/utils/get-node-attributes.js +0 -21
- data/node_modules/axe-core/lib/core/utils/get-root-node.js +0 -17
- data/node_modules/axe-core/lib/core/utils/get-scroll.js +0 -39
- data/node_modules/axe-core/lib/core/utils/get-selector.js +0 -409
- data/node_modules/axe-core/lib/core/utils/get-stylesheet-factory.js +0 -51
- data/node_modules/axe-core/lib/core/utils/get-xpath.js +0 -83
- data/node_modules/axe-core/lib/core/utils/index.js +0 -10
- data/node_modules/axe-core/lib/core/utils/inject-style.js +0 -38
- data/node_modules/axe-core/lib/core/utils/is-hidden.js +0 -52
- data/node_modules/axe-core/lib/core/utils/is-html-element.js +0 -135
- data/node_modules/axe-core/lib/core/utils/is-shadow-root.js +0 -40
- data/node_modules/axe-core/lib/core/utils/is-xhtml.js +0 -14
- data/node_modules/axe-core/lib/core/utils/matches.js +0 -263
- data/node_modules/axe-core/lib/core/utils/memoize.js +0 -17
- data/node_modules/axe-core/lib/core/utils/merge-results.js +0 -116
- data/node_modules/axe-core/lib/core/utils/node-sorter.js +0 -21
- data/node_modules/axe-core/lib/core/utils/parse-crossorigin-stylesheet.js +0 -54
- data/node_modules/axe-core/lib/core/utils/parse-sameorigin-stylesheet.js +0 -96
- data/node_modules/axe-core/lib/core/utils/parse-stylesheet.js +0 -70
- data/node_modules/axe-core/lib/core/utils/performance-timer.js +0 -126
- data/node_modules/axe-core/lib/core/utils/pollyfills.js +0 -299
- data/node_modules/axe-core/lib/core/utils/preload-cssom.js +0 -253
- data/node_modules/axe-core/lib/core/utils/preload-media.js +0 -65
- data/node_modules/axe-core/lib/core/utils/preload.js +0 -144
- data/node_modules/axe-core/lib/core/utils/process-message.js +0 -72
- data/node_modules/axe-core/lib/core/utils/publish-metadata.js +0 -106
- data/node_modules/axe-core/lib/core/utils/qsa.js +0 -110
- data/node_modules/axe-core/lib/core/utils/queue.js +0 -138
- data/node_modules/axe-core/lib/core/utils/respondable.js +0 -261
- data/node_modules/axe-core/lib/core/utils/rule-should-run.js +0 -82
- data/node_modules/axe-core/lib/core/utils/scroll-state.js +0 -57
- data/node_modules/axe-core/lib/core/utils/select.js +0 -135
- data/node_modules/axe-core/lib/core/utils/to-array.js +0 -21
- data/node_modules/axe-core/lib/core/utils/token-list.js +0 -15
- data/node_modules/axe-core/lib/core/utils/uuid.js +0 -244
- data/node_modules/axe-core/lib/core/utils/valid-input-type.js +0 -35
- data/node_modules/axe-core/lib/core/utils/valid-langs.js +0 -8152
- data/node_modules/axe-core/lib/intro.stub +0 -15
- data/node_modules/axe-core/lib/misc/any-failure-summary.json +0 -6
- data/node_modules/axe-core/lib/misc/incomplete-fallback.json +0 -3
- data/node_modules/axe-core/lib/misc/none-failure-summary.json +0 -6
- data/node_modules/axe-core/lib/outro.stub +0 -2
- data/node_modules/axe-core/lib/rules/accesskeys.json +0 -13
- data/node_modules/axe-core/lib/rules/area-alt.json +0 -21
- data/node_modules/axe-core/lib/rules/aria-allowed-attr-matches.js +0 -11
- data/node_modules/axe-core/lib/rules/aria-allowed-attr.json +0 -12
- data/node_modules/axe-core/lib/rules/aria-allowed-role-matches.js +0 -7
- data/node_modules/axe-core/lib/rules/aria-allowed-role.json +0 -14
- data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback-matches.js +0 -10
- data/node_modules/axe-core/lib/rules/aria-dpub-role-fallback.json +0 -14
- data/node_modules/axe-core/lib/rules/aria-form-field-name-matches.js +0 -50
- data/node_modules/axe-core/lib/rules/aria-has-attr-matches.js +0 -11
- data/node_modules/axe-core/lib/rules/aria-hidden-body.json +0 -13
- data/node_modules/axe-core/lib/rules/aria-hidden-focus-matches.js +0 -18
- data/node_modules/axe-core/lib/rules/aria-hidden-focus.json +0 -18
- data/node_modules/axe-core/lib/rules/aria-input-field-name.json +0 -13
- data/node_modules/axe-core/lib/rules/aria-required-attr.json +0 -12
- data/node_modules/axe-core/lib/rules/aria-required-children.json +0 -12
- data/node_modules/axe-core/lib/rules/aria-required-parent.json +0 -12
- data/node_modules/axe-core/lib/rules/aria-roledescription.json +0 -12
- data/node_modules/axe-core/lib/rules/aria-roles.json +0 -13
- data/node_modules/axe-core/lib/rules/aria-toggle-field-name.json +0 -18
- data/node_modules/axe-core/lib/rules/aria-valid-attr-value.json +0 -12
- data/node_modules/axe-core/lib/rules/aria-valid-attr.json +0 -12
- data/node_modules/axe-core/lib/rules/audio-caption.json +0 -20
- data/node_modules/axe-core/lib/rules/autocomplete-matches.js +0 -49
- data/node_modules/axe-core/lib/rules/autocomplete-valid.json +0 -12
- data/node_modules/axe-core/lib/rules/avoid-inline-spacing.json +0 -12
- data/node_modules/axe-core/lib/rules/blink.json +0 -19
- data/node_modules/axe-core/lib/rules/button-name.json +0 -25
- data/node_modules/axe-core/lib/rules/bypass-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/bypass.json +0 -20
- data/node_modules/axe-core/lib/rules/checkboxgroup.json +0 -13
- data/node_modules/axe-core/lib/rules/color-contrast-matches.js +0 -161
- data/node_modules/axe-core/lib/rules/color-contrast.json +0 -13
- data/node_modules/axe-core/lib/rules/css-orientation-lock.json +0 -13
- data/node_modules/axe-core/lib/rules/data-table-large-matches.js +0 -11
- data/node_modules/axe-core/lib/rules/data-table-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/definition-list.json +0 -13
- data/node_modules/axe-core/lib/rules/dlitem.json +0 -13
- data/node_modules/axe-core/lib/rules/document-title.json +0 -13
- data/node_modules/axe-core/lib/rules/duplicate-id-active-matches.js +0 -8
- data/node_modules/axe-core/lib/rules/duplicate-id-active.json +0 -14
- data/node_modules/axe-core/lib/rules/duplicate-id-aria-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/duplicate-id-aria.json +0 -14
- data/node_modules/axe-core/lib/rules/duplicate-id-misc-matches.js +0 -11
- data/node_modules/axe-core/lib/rules/duplicate-id.json +0 -14
- data/node_modules/axe-core/lib/rules/empty-heading.json +0 -13
- data/node_modules/axe-core/lib/rules/focus-order-semantics.json +0 -13
- data/node_modules/axe-core/lib/rules/form-field-multiple-labels.json +0 -13
- data/node_modules/axe-core/lib/rules/frame-tested.json +0 -12
- data/node_modules/axe-core/lib/rules/frame-title-has-text.js +0 -2
- data/node_modules/axe-core/lib/rules/frame-title-unique.json +0 -13
- data/node_modules/axe-core/lib/rules/frame-title.json +0 -25
- data/node_modules/axe-core/lib/rules/heading-matches.js +0 -15
- data/node_modules/axe-core/lib/rules/heading-order.json +0 -13
- data/node_modules/axe-core/lib/rules/hidden-content.json +0 -13
- data/node_modules/axe-core/lib/rules/html-has-lang.json +0 -13
- data/node_modules/axe-core/lib/rules/html-lang-valid.json +0 -12
- data/node_modules/axe-core/lib/rules/html-namespace-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/html-xml-lang-mismatch.json +0 -13
- data/node_modules/axe-core/lib/rules/identical-links-same-purpose-matches.js +0 -13
- data/node_modules/axe-core/lib/rules/identical-links-same-purpose.json +0 -14
- data/node_modules/axe-core/lib/rules/image-alt.json +0 -25
- data/node_modules/axe-core/lib/rules/img-redundant-alt.json +0 -12
- data/node_modules/axe-core/lib/rules/input-button-name.json +0 -26
- data/node_modules/axe-core/lib/rules/input-image-alt.json +0 -18
- data/node_modules/axe-core/lib/rules/inserted-into-focus-order-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/label-content-name-mismatch-matches.js +0 -45
- data/node_modules/axe-core/lib/rules/label-content-name-mismatch.json +0 -12
- data/node_modules/axe-core/lib/rules/label-matches.js +0 -11
- data/node_modules/axe-core/lib/rules/label-title-only.json +0 -13
- data/node_modules/axe-core/lib/rules/label.json +0 -26
- data/node_modules/axe-core/lib/rules/landmark-banner-is-top-level.json +0 -13
- data/node_modules/axe-core/lib/rules/landmark-complementary-is-top-level.json +0 -12
- data/node_modules/axe-core/lib/rules/landmark-contentinfo-is-top-level.json +0 -13
- data/node_modules/axe-core/lib/rules/landmark-has-body-context.js +0 -8
- data/node_modules/axe-core/lib/rules/landmark-main-is-top-level.json +0 -12
- data/node_modules/axe-core/lib/rules/landmark-no-duplicate-banner.json +0 -12
- data/node_modules/axe-core/lib/rules/landmark-no-duplicate-contentinfo.json +0 -12
- data/node_modules/axe-core/lib/rules/landmark-no-duplicate-main.json +0 -12
- data/node_modules/axe-core/lib/rules/landmark-one-main.json +0 -12
- data/node_modules/axe-core/lib/rules/landmark-unique-matches.js +0 -41
- data/node_modules/axe-core/lib/rules/landmark-unique.json +0 -13
- data/node_modules/axe-core/lib/rules/layout-table-matches.js +0 -8
- data/node_modules/axe-core/lib/rules/layout-table.json +0 -14
- data/node_modules/axe-core/lib/rules/link-in-text-block-matches.js +0 -14
- data/node_modules/axe-core/lib/rules/link-in-text-block.json +0 -14
- data/node_modules/axe-core/lib/rules/link-name.json +0 -25
- data/node_modules/axe-core/lib/rules/list.json +0 -13
- data/node_modules/axe-core/lib/rules/listitem.json +0 -13
- data/node_modules/axe-core/lib/rules/marquee.json +0 -13
- data/node_modules/axe-core/lib/rules/meta-refresh.json +0 -20
- data/node_modules/axe-core/lib/rules/meta-viewport-large.json +0 -13
- data/node_modules/axe-core/lib/rules/meta-viewport.json +0 -13
- data/node_modules/axe-core/lib/rules/no-autoplay-audio-matches.js +0 -18
- data/node_modules/axe-core/lib/rules/no-autoplay-audio.json +0 -15
- data/node_modules/axe-core/lib/rules/no-empty-role-matches.js +0 -9
- data/node_modules/axe-core/lib/rules/no-role-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/not-html-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/object-alt.json +0 -25
- data/node_modules/axe-core/lib/rules/p-as-heading-matches.js +0 -17
- data/node_modules/axe-core/lib/rules/p-as-heading.json +0 -13
- data/node_modules/axe-core/lib/rules/page-has-heading-one.json +0 -12
- data/node_modules/axe-core/lib/rules/radiogroup.json +0 -13
- data/node_modules/axe-core/lib/rules/region.json +0 -12
- data/node_modules/axe-core/lib/rules/role-img-alt.json +0 -19
- data/node_modules/axe-core/lib/rules/scope-attr-valid.json +0 -12
- data/node_modules/axe-core/lib/rules/scrollable-region-focusable-matches.js +0 -30
- data/node_modules/axe-core/lib/rules/scrollable-region-focusable.json +0 -12
- data/node_modules/axe-core/lib/rules/server-side-image-map.json +0 -18
- data/node_modules/axe-core/lib/rules/skip-link-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/skip-link.json +0 -13
- data/node_modules/axe-core/lib/rules/svg-img-alt.json +0 -24
- data/node_modules/axe-core/lib/rules/svg-namespace-matches.js +0 -1
- data/node_modules/axe-core/lib/rules/tabindex.json +0 -12
- data/node_modules/axe-core/lib/rules/table-duplicate-name.json +0 -12
- data/node_modules/axe-core/lib/rules/table-fake-caption.json +0 -20
- data/node_modules/axe-core/lib/rules/td-has-header.json +0 -20
- data/node_modules/axe-core/lib/rules/td-headers-attr.json +0 -12
- data/node_modules/axe-core/lib/rules/th-has-data-cells.json +0 -13
- data/node_modules/axe-core/lib/rules/valid-lang.json +0 -13
- data/node_modules/axe-core/lib/rules/video-caption.json +0 -19
- data/node_modules/axe-core/lib/rules/video-description.json +0 -21
- data/node_modules/axe-core/lib/rules/window-is-top.js +0 -3
- data/node_modules/axe-core/lib/rules/xml-lang-mismatch-matches.js +0 -12
- data/node_modules/axe-core/typings/axe-core/axe-core-tests.ts +0 -188
@@ -1,33 +0,0 @@
|
|
1
|
-
# How we make decisions on rules
|
2
|
-
|
3
|
-
In order to adhere to the manifesto and at the same time be useful to developers and content creators, we evaluate all rules according to strict normative WCAG 2 interpretation. We also pay very strong attention to the normative portion of WCAG 2 known as [accessibility supported](https://www.w3.org/TR/WCAG20/#accessibility-supporteddef).
|
4
|
-
|
5
|
-
## Accessibility supported
|
6
|
-
|
7
|
-
Boiled-down, accessibility supported means that in order for a technique to be valid, it must work on all viable platforms for all assistive technology that are widely used and freely available (paraphrased).
|
8
|
-
|
9
|
-
We currently test the following AT combinations for support
|
10
|
-
|
11
|
-
1. VoiceOver and Safari on OS X
|
12
|
-
1. VoiceOver and Safari on iOS
|
13
|
-
1. JAWS and IE on Windows
|
14
|
-
1. NVDA and Firefox on Windows
|
15
|
-
1. Talkback and Chrome on Android
|
16
|
-
1. Dragon and Firefox on Windows
|
17
|
-
|
18
|
-
## Impact on ARIA
|
19
|
-
|
20
|
-
For some technologies, like ARIA, we have a dilemma in that the spec is approved before supported and we have to weigh a balance between something that conforms to the spec, but does not yet work. When we do this, we favor the accessibility supported principle over the spec but we temper this with the impact of using an unsupported feature. Here is how we do this:
|
21
|
-
|
22
|
-
1. If the feature's use is supported by all platforms: allow, else
|
23
|
-
1. If the feature's use does not have a negative impact on accessibility: allow, else
|
24
|
-
1. If we can detect a fallback: allow, else
|
25
|
-
1. disallow the feature's use until it is supported
|
26
|
-
|
27
|
-
In addition, we disallow invalid attributes starting with `aria-` and invalid attribute values as these are highly likely to have a negative impact on accessibility because of the scenarios under which these are likely to occur (this is so we can act as a useful linting tool for developers).
|
28
|
-
|
29
|
-
## Best practices
|
30
|
-
|
31
|
-
We recognize that there are best practices that significantly improve the usability of application, even though they are not strictly required in order to conform with WCAG 2. We develop the best practice rules to help content developers to identify these and adhere to them.
|
32
|
-
|
33
|
-
We recognize that this topic is somewhat controvertial and the rules we have represent Deque's opinion on what constitutes a best practice.
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# W3C Standardized Rules
|
2
|
-
|
3
|
-
Deque Systems is one of leading organizations in the development of standardized accessibility conformance testing rules. The [axe-core rules proposal format](./rule-proposal.md) is an adaptation of the [Accessibility Conformance Testing Rules Format](https://www.w3.org/TR/act-rules-format/).
|
4
|
-
|
5
|
-
There are two ways a rule written in the axe-core rule format can be transformed into the ACT Rules format:
|
6
|
-
|
7
|
-
## Method 1: Create a single rule
|
8
|
-
|
9
|
-
This method is useful for rules with a small number of checks.
|
10
|
-
|
11
|
-
1. Add the test input type to it: `rendered page`
|
12
|
-
2. Add an `assumptions` section, add possible assumptions to it
|
13
|
-
3. Add an `outcomes` section, describing the different possible outcomes of the rule
|
14
|
-
4. Add a `Validation Tests` section, that links to the integration tests
|
15
|
-
5. Update the check to return pass/fail/cantTell instead of true/false/undefined
|
16
|
-
6. Add control flow to the checks:
|
17
|
-
|
18
|
-
- `any` checks should only return `fail` in the last step. All steps leading up to it either return `pass` or say `continue to the next step`.
|
19
|
-
- `all` and `none` checks should only return `pass` in the last step. All steps leading up to it either return `fail` or say `continue to the next step`.
|
20
|
-
|
21
|
-
7. Rename `checks` to `steps` and add a `step X` (where X is the step number) to the heading with the check name.
|
22
|
-
8. Replace the `tags` section with a `Accessibility Requirements`. The requirements can be determined based on the `wcag###` tags.
|
23
|
-
|
24
|
-
## Method 2: Create a rule group
|
25
|
-
|
26
|
-
This method is useful for larger rules with `any` checks. This effectively turns every check into its own rule, and turns the rule into a rule group.
|
27
|
-
|
28
|
-
1. Copy each check into a new document
|
29
|
-
2. Add a `steps` heading
|
30
|
-
3. Add the test input type to it: `rendered page`
|
31
|
-
4. Add an `assumptions` section, add possible assumptions to it
|
32
|
-
5. Add an `outcomes` section, describing the different possible outcomes of the rule
|
33
|
-
6. Copy the `selector` section from the original rule into the new rule documents
|
34
|
-
7. Update the check to return pass/fail/cantTell instead of true/false/undefined
|
35
|
-
8. Add a `Validation Tests` section, that links to only those integration tests relevant for this check (now a new rule).
|
36
|
-
9. Indicate that the new rule is part of a group, using the original axe-core rule ID as the group name.
|
37
|
-
10. Replace the `tags` section with a `Accessibility Requirements`. The requirements can be determined based on the `wcag###` tags.
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# ARIA Roles and Attributes unsupported in axe-core.
|
2
|
-
|
3
|
-
It can be difficult to know which features of web technologies are accessible across different platforms, and with different screen readers and other assistive technologies. Axe-core does some of this work for you, by raising issues when accessibility features are used that are known to cause problems.
|
4
|
-
|
5
|
-
This page contains a list of ARIA 1.1 features that axe-core raises as unsupported. For more information, read [We’ve got your back with “Accessibility Supported” in axe](https://www.deque.com/blog/weve-got-your-back-with-accessibility-supported-in-axe/).
|
6
|
-
|
7
|
-
For a detailed description about how accessibility support is decided, see [How we make decisions on rules](accessibility-supported.md).
|
8
|
-
|
9
|
-
## Attributes
|
10
|
-
|
11
|
-
| aria-attribute | axe-core support |
|
12
|
-
| ---------------- | ---------------- |
|
13
|
-
| aria-describedat | No |
|
@@ -1,94 +0,0 @@
|
|
1
|
-
# Backwards Compatibility in axe-core
|
2
|
-
|
3
|
-
## What is part of the public axe-core API?
|
4
|
-
|
5
|
-
The axe-core API includes:
|
6
|
-
|
7
|
-
- Any APIs documented here: [https://github.com/dequelabs/axe-core/blob/develop/doc/API.md](https://github.com/dequelabs/axe-core/blob/develop/doc/API.md)
|
8
|
-
- The selectors generated and included in the node information in the results arrays for any given HTML page
|
9
|
-
- The JSON structures passed into and out of any API functions
|
10
|
-
- Any functions in the `axe.utils` and `axe.commons` collections that are used by one of our standard rules (this document refers to these as the “Public Utils”). This includes use in any of the “matches”, “eval” and “after” functions.
|
11
|
-
- The implicit function signature of the matches, eval and after functions (the names of the parameters that are passed-to the functions and the values returned by them)
|
12
|
-
|
13
|
-
## What is not included in the public axe-core API?
|
14
|
-
|
15
|
-
Any other function or attribute on the axe object is not considered part of the public API and is therefore not covered by the guarantee in this document.
|
16
|
-
|
17
|
-
## What do we guarantee for the public axe-core API?
|
18
|
-
|
19
|
-
We guarantee that the API signatures and the return values of functions will not break in patch or minor release versions except that we may add items to JSON structures in minor releases or override parameters. We will not remove items from JSON structures.
|
20
|
-
|
21
|
-
In a minor release, we may change the implementation of Public Utils to fix bugs or improve performance. This means that a call to a Public Util may return a different value across patch versions.
|
22
|
-
|
23
|
-
We will not add or remove rules in a patch release. We will not add support for new technologies in a patch release. We will endeavour to return the exact same results across patch releases with the exception of changes that are due to bug fixes. This means that the likelihood of a patch release finding issues on a page that was clean in a previous release is very close to zero but not zero.
|
24
|
-
|
25
|
-
In a minor release, we may add support for new technologies in the Public Utils or in existing rules and we may add or disable rules. We may also change an experimental rule to become a standard rule (essentially equivalent to adding rule). This means that pages that did not return violations in a particular minor release may return violations in a subsequent release. Rule tags, including the "wcag\*" tags, and whether or not something is reported as best-practice can be changed in minor releases.
|
26
|
-
|
27
|
-
If the HTML page is unchanged, calls to the analysis function(s) when compared across minor or patch releases will return the same exact selector for the nodes in any of the result arrays. If the HTML page has changed, it is possible for the selector to be different but it is not guaranteed that the selector will be different.
|
28
|
-
|
29
|
-
APIs may be deprecated in a major or minor release. APIs that have been deprecated for 6 months or more will be removed in the next major release.
|
30
|
-
|
31
|
-
A major or a minor release may introduce new Public Utils.
|
32
|
-
|
33
|
-
Major releases may remove rules.
|
34
|
-
|
35
|
-
### Table: Summary of What Deque Guarantees with Public axe-core API
|
36
|
-
|
37
|
-
| | Major | Minor | Patch |
|
38
|
-
| :-------------------------------------------- | :------------------------------------------------------ | :-------------------- | :------------------------- |
|
39
|
-
| **New Technologies** | | | |
|
40
|
-
| Support for new technologies\* | May add support | May add support | Will not add support |
|
41
|
-
| **APIS** | | | |
|
42
|
-
| API signatures and return values of functions | May break | Will not break | Will not break |
|
43
|
-
| APIs deprecated | May be deprecated | May be deprecated | Will not be deprecated |
|
44
|
-
| APIs removed | May be removed (will remove previously deprecated APIs) | Will not be removed | Will not be removed |
|
45
|
-
| **Public Utils** | | | |
|
46
|
-
| Implementation of Public Utils | May change | May change | Will not change |
|
47
|
-
| New public Utils | May add | May add | Will not add |
|
48
|
-
| **Rules** | | | |
|
49
|
-
| Add rules | May add | May add | Will not add |
|
50
|
-
| Disable or remove rules | May remove (will remove previously deprecated rules) | May disable or remove | Will not disable or remove |
|
51
|
-
| Rule tags | May add or remove | May add or remove | Will not change |
|
52
|
-
| Deprecate rules | May deprecate | May deprecate | Will not deprecate |
|
53
|
-
|
54
|
-
\*_New OSes, Browsers, ATs, new standards (e.g. introduction of ARIA), new versions of standards (e.g. WCAG 2.1)_
|
55
|
-
|
56
|
-
## Implications
|
57
|
-
|
58
|
-
### Breaking Builds
|
59
|
-
|
60
|
-
Patch release upgrades can be applied in CI environments with a high degree of certainty that breakages will not be due to changes in the release. The chance is, however, not zero.
|
61
|
-
|
62
|
-
### Custom Rules
|
63
|
-
|
64
|
-
A custom rule configuration (with-or-without custom rules) is guaranteed to run on any newer version that shares the same major version number as the version for which it was created. A custom rule configuration (with-or-without custom rules) is not guaranteed to work with an older version of axe-core than the version for which it was created.
|
65
|
-
|
66
|
-
You can write custom rules that utilize the Public Utils and the parameters that are passed to a check function, secure in the knowledge that the API will not change unless a major version is released.
|
67
|
-
|
68
|
-
However, because we can introduce new rules, it is possible that a custom rule configuration will return additional results when run against a new minor release and may return different results when run against a newer patch release.
|
69
|
-
|
70
|
-
A custom rule configuration may return different results (more or fewer) when run on a newer patch release due to bug fixes.
|
71
|
-
|
72
|
-
A major release may completely break a custom rule or even all custom rules because of a change to any of the APIs.
|
73
|
-
|
74
|
-
### Table: Implication of axe-core Updates on Custom Rule Function
|
75
|
-
|
76
|
-
| Axe-core Release Semantic Version | Example | Simple Custom Rules | Complex Custom Rules |
|
77
|
-
| :--------------------------------------------- | :------ | :--------------------- | :--------------------- |
|
78
|
-
| Prior release (different major release number) | 1.3.4 | Not guaranteed to work | Not guaranteed to work |
|
79
|
-
| Release used to create custom rules | 2.0.0 | Guaranteed to work | Guaranteed to work |
|
80
|
-
| Next release (minor release) | 2.1.0 | Guaranteed to work\* | Guaranteed to work\* |
|
81
|
-
| Next +1 release (patch release) | 2.1.1 | Guaranteed to work\* | Guaranteed to work\* |
|
82
|
-
| Next +2 release (major release) | 3.0.0 | Not guaranteed to work | Not guaranteed to work |
|
83
|
-
|
84
|
-
\*_Minor and patch releases will not break custom rules, but testing results may vary from those tests performed with previous minor and patch releases of axe-core. There may be inconsistencies between what Attest reports and what Comply reports._
|
85
|
-
|
86
|
-
Please note that with even small changes in versions for simple custom rules, there may be inconsistencies between what Attest reports and what Comply reports. For best results, in both cases, versions should match exactly.
|
87
|
-
|
88
|
-
### Tracking Issues Over Time
|
89
|
-
|
90
|
-
Many systems attempt to identify unique issues using a combination of the page and state, the rule-id and the selector to track an issue across time and across calls to the analysis functions. This will work reliably across patch releases. This could break if a rule is removed or split up across minor releases. In a major release, this could break for the additional reason of a possible change in the selector generation (this did happen in the changes between 2.6.x and 3.x).
|
91
|
-
|
92
|
-
### Comply
|
93
|
-
|
94
|
-
Comply has the ability to add labels and comments to issues and to mark issues as ignored. Comply will lose this information when it is not able to track issues across time. This means that historical issue information may be lost when upgrading to a newer major version of axe-core.
|
@@ -1,124 +0,0 @@
|
|
1
|
-
# Check Message Template
|
2
|
-
|
3
|
-
Axe-core uses a custom template to handle dynamic check messages (messages that use the `data` property to output values or to determine which message to display). The structure for the messages is as follows:
|
4
|
-
|
5
|
-
## Simple Message
|
6
|
-
|
7
|
-
A simple message is just a string that doesn't use the `data` property. Most checks uses this format.
|
8
|
-
|
9
|
-
```json
|
10
|
-
{
|
11
|
-
"messages": {
|
12
|
-
"pass": "Simple message for a passing check"
|
13
|
-
}
|
14
|
-
}
|
15
|
-
```
|
16
|
-
|
17
|
-
## Message with Data
|
18
|
-
|
19
|
-
A message can also use the `data` property to output information from the check. If `data` is a String, Boolean, or Number, you can use the syntax `${data}` to have the message output the value of the `data` property.
|
20
|
-
|
21
|
-
```js
|
22
|
-
// check.js
|
23
|
-
this.data(10);
|
24
|
-
|
25
|
-
// check.json
|
26
|
-
{
|
27
|
-
"messages": {
|
28
|
-
"pass": "Passed with a value of ${data}"
|
29
|
-
// => "Passed with a value of 10"
|
30
|
-
}
|
31
|
-
}
|
32
|
-
```
|
33
|
-
|
34
|
-
If `data` is an object, you can access properties of the object using the syntax `${data.propName}`.
|
35
|
-
|
36
|
-
```js
|
37
|
-
// check.js
|
38
|
-
this.data({
|
39
|
-
contrast: '3:1',
|
40
|
-
fontSize: '12px'
|
41
|
-
});
|
42
|
-
|
43
|
-
// check.json
|
44
|
-
{
|
45
|
-
"messages": {
|
46
|
-
"fail": "Color-contrast failed with a contrast of ${data.contrast} and font size of ${data.fontSize}"
|
47
|
-
// => "Color-contrast failed with a contrast of 3:1 and font size of 12px"
|
48
|
-
}
|
49
|
-
}
|
50
|
-
```
|
51
|
-
|
52
|
-
## Singular and Plural Messages
|
53
|
-
|
54
|
-
If the message needs to to know how many items are in the `data` property to determine the type of language to use (singular or plural), you can structure the message to use `singular` and `plural` properties. Use the syntax `${data.values}` to have the message output a comma-separated list of the items (`data.values` is provided by the template code for you).
|
55
|
-
|
56
|
-
```js
|
57
|
-
// check.js
|
58
|
-
this.data(['item1', 'item2']);
|
59
|
-
|
60
|
-
// check.json
|
61
|
-
{
|
62
|
-
"messages": {
|
63
|
-
"fail": {
|
64
|
-
"singular": "Attribute ${data.values} is not allowed",
|
65
|
-
"plural": "Attributes: ${data.values} are not allowed"
|
66
|
-
}
|
67
|
-
// => Attributes: item1, item2 are not allowed
|
68
|
-
}
|
69
|
-
}
|
70
|
-
```
|
71
|
-
|
72
|
-
## Message Determined by Data
|
73
|
-
|
74
|
-
Lastly, a message can use the `data` property to determine which message to display. Structure the message to use properties whose keys are the possible values of `data.messageKey`. You should also provide a `default` message that will be displayed if `messageKey` is not set.
|
75
|
-
|
76
|
-
```js
|
77
|
-
// check.js
|
78
|
-
this.data({
|
79
|
-
messageKey: 'imgNode'
|
80
|
-
});
|
81
|
-
|
82
|
-
// check.json
|
83
|
-
{
|
84
|
-
"messages": {
|
85
|
-
"incomplete": {
|
86
|
-
"default": "Color-contrast could not be determined"
|
87
|
-
"bgImage": "Element's background color could not be determined due to a background image",
|
88
|
-
"imgNode": "Element's background color could not be determined because element contains an image node"
|
89
|
-
}
|
90
|
-
// => Element's background color could not be determined because element contains an image node
|
91
|
-
}
|
92
|
-
}
|
93
|
-
```
|
94
|
-
|
95
|
-
The messages can still use the syntax `${data.propName}` to access other properties on the `data` property.
|
96
|
-
|
97
|
-
## Migrating From doT.js Template in Translations
|
98
|
-
|
99
|
-
Axe-core use to use doT.js for it's temple library. To migrate from doT.js in a translation file, do the following:
|
100
|
-
|
101
|
-
- If the message used `{{=it.data}}` or `{{=it.data.propName}}`, change the message to use the syntax `${data}` or `${data.propName}`.
|
102
|
-
|
103
|
-
```diff
|
104
|
-
{
|
105
|
-
"messages": {
|
106
|
-
- "incomplete": "Check that the <label> does not need be part of the ARIA {{=it.data}} field's name"
|
107
|
-
+ "incomplete": "Check that the <label> does not need be part of the ARIA ${data} field's name"
|
108
|
-
}
|
109
|
-
}
|
110
|
-
```
|
111
|
-
|
112
|
-
- If the message used `{{=it.data && it.data.length` to determine using singular or plural language, change the message structure of the message to instead use the `singular` and `plural` properties. Replace `{{=it.data.join(', ')}}` with `${data.values}`.
|
113
|
-
|
114
|
-
```diff
|
115
|
-
{
|
116
|
-
"messages": {
|
117
|
-
- "fail": "Attribute{{=it.data && it.data.length > 1 ? 's' : ''}} {{=it.data.join(', ')}} {{=it.data && it.data.length > 1 ? 'are' : ' is'}} not allowed
|
118
|
-
+ "fail": {
|
119
|
-
+ "singular": "Attribute ${data.values} is not allowed",
|
120
|
-
+ "plural": "Attributes: ${data.values} are not allowed"
|
121
|
-
+ }
|
122
|
-
}
|
123
|
-
}
|
124
|
-
```
|
@@ -1,178 +0,0 @@
|
|
1
|
-
# Code Submission Guidelines
|
2
|
-
|
3
|
-
We've enacted standards for commits and pull requests to effectively manage the project over
|
4
|
-
time. We expect all code contributed to follow these standards. If your code doesn't follow them, we
|
5
|
-
will kindly ask you to resubmit it in the correct format.
|
6
|
-
|
7
|
-
- [Git Commits](#git-commits)
|
8
|
-
- [Submitting a pull request](#submitting-a-pull-request)
|
9
|
-
- [Merging a pull request](#merging-a-pull-request)
|
10
|
-
- [Squashing Commits](#squashing-everything-into-one-commit)
|
11
|
-
|
12
|
-
## Git Commits
|
13
|
-
|
14
|
-
We follow Angular's code contribution style with precise rules for formatting git commit messages.
|
15
|
-
This leads to more readable messages that are easy to follow when looking through the project
|
16
|
-
history. We will also use commit messages to generate the axe Changelog document.
|
17
|
-
|
18
|
-
A detailed explanation of Angular's guidelines and conventions can be found [on Google Docs](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#).
|
19
|
-
|
20
|
-
### Commit Message Format
|
21
|
-
|
22
|
-
Each commit message should consist of a header, a body and a footer. The header has a special format
|
23
|
-
that includes a type, a scope and a subject. Here's a sample of the format:
|
24
|
-
|
25
|
-
```
|
26
|
-
<type>(<scope>): <subject>
|
27
|
-
<BLANK LINE>
|
28
|
-
<body>
|
29
|
-
<BLANK LINE>
|
30
|
-
<footer>
|
31
|
-
```
|
32
|
-
|
33
|
-
### Here's an example:
|
34
|
-
|
35
|
-
```sh
|
36
|
-
perf(rule): improve speed of color contrast rules
|
37
|
-
|
38
|
-
Use async process to compare elements without UI lockup
|
39
|
-
|
40
|
-
Closes #1
|
41
|
-
```
|
42
|
-
|
43
|
-
> Commit messages should be 100 characters or less to make them easy to read on Github and
|
44
|
-
> various git tools.
|
45
|
-
|
46
|
-
### How to structure your commits:
|
47
|
-
|
48
|
-
#### Type
|
49
|
-
|
50
|
-
Must be one of the following:
|
51
|
-
|
52
|
-
- **feat:** A new feature
|
53
|
-
- **fix:** A bug fix
|
54
|
-
- **docs:** Documentation only changes
|
55
|
-
- **style:** Changes that do not affect the meaning of the code (white-space, formatting, missing
|
56
|
-
semi-colons, etc)
|
57
|
-
- **refactor:** A code change that neither fixes a bug nor adds a feature
|
58
|
-
- **perf:** A code change that improves performance
|
59
|
-
- **test:** Adding missing tests
|
60
|
-
- **chore:** Changes to the build process or auxiliary tools and libraries such as documentation
|
61
|
-
generation
|
62
|
-
|
63
|
-
#### Scope
|
64
|
-
|
65
|
-
The scope specifies the place of the commit change in the codebase along with the type. It could
|
66
|
-
reference a rule, a commons file, or anything really. E.g. `feat(rule)` or
|
67
|
-
`test(commons/aria)`. It would help us call to out rule changes in our changelog with `rule` used as the scope.
|
68
|
-
|
69
|
-
If the scope is too broad to summarize, use the type only and leave off the parentheses. E.g.
|
70
|
-
`type: some subject`. Keep in mind that a long scope often pushes your commit message over 100 characters.
|
71
|
-
Brevity is helpful for everyone!
|
72
|
-
|
73
|
-
#### Subject
|
74
|
-
|
75
|
-
The subject contains succinct description of the change:
|
76
|
-
|
77
|
-
- use the imperative, present tense: "change" not "changed" nor "changes"
|
78
|
-
- don't capitalize first letter
|
79
|
-
- no dot (.) at the end
|
80
|
-
|
81
|
-
#### Body
|
82
|
-
|
83
|
-
Use the imperative, present tense: "change" not "changed" nor "changes", just like the subject.
|
84
|
-
Include the motivation for the change and contrast it with how the code worked before.
|
85
|
-
|
86
|
-
#### Footer
|
87
|
-
|
88
|
-
Reference any issue that this commit closes with its fully qualified URL to support both
|
89
|
-
Bitbucket and Github.
|
90
|
-
|
91
|
-
If needed, the footer should contain any information about Breaking Changes. Deprecation notices or
|
92
|
-
breaking changes in the Changelog should inform users if they'll need to modify their code after
|
93
|
-
this commit.
|
94
|
-
|
95
|
-
## Submitting a pull request
|
96
|
-
|
97
|
-
We want to keep our commit log clean by avoiding merge messages in branches. Before submitting a pull request, make sure your branch is up to date with the develop branch by either:
|
98
|
-
|
99
|
-
- Pulling from develop before creating your branch
|
100
|
-
- Doing a rebase from origin/develop (will require a force push **on your branch**)
|
101
|
-
|
102
|
-
To rebase from origin/develop if we've pushed changes since you created your branch:
|
103
|
-
|
104
|
-
```sh
|
105
|
-
git checkout your-branch
|
106
|
-
git fetch
|
107
|
-
git rebase origin/develop
|
108
|
-
git push origin head -f
|
109
|
-
```
|
110
|
-
|
111
|
-
## Merging a pull request
|
112
|
-
|
113
|
-
If a pull request has many commits (especially if they don't follow our [commit policy](#git-commits)), you'll want to squash them into one clean commit.
|
114
|
-
|
115
|
-
In the Github UI, you can use the new [Squash and Merge](https://github.com/blog/2141-squash-your-commits) feature to make this easy. If there are merge conflicts preventing this, either ask the committer to rebase from develop following the [PR submission steps above](#submitting-a-pull-request), or use the manual method below.
|
116
|
-
|
117
|
-
To apply a pull request manually, make sure your local develop branch is up to date. Then, create a new branch for that pull request.
|
118
|
-
|
119
|
-
Create a temporary, local branch:
|
120
|
-
|
121
|
-
```sh
|
122
|
-
git checkout -b temp-feature-branch
|
123
|
-
```
|
124
|
-
|
125
|
-
Run the following commands to apply all commits from that pull request on top of your branch's local history:
|
126
|
-
|
127
|
-
```console
|
128
|
-
curl -L https://github.com/dequelabs/axe-core/pull/205.patch | git am -3
|
129
|
-
```
|
130
|
-
|
131
|
-
If the merge succeeds, use `git diff origin/develop` to review all the changes that will happen
|
132
|
-
post-merge.
|
133
|
-
|
134
|
-
## Squashing everything into one commit
|
135
|
-
|
136
|
-
Before merging a pull request with many commits into develop, make sure there is only one commit representing the
|
137
|
-
changes in the pull request, so the git log stays lean. We particularly want to avoid merge messages and vague commits that don't follow our commit policy (like `Merged develop into featurebranch` or `fixed some stuff`).
|
138
|
-
|
139
|
-
You can use git's interactive rebase to manipulate, merge, and rename commits in your local
|
140
|
-
history. If these steps are followed, a force push shouldn't be necessary.
|
141
|
-
|
142
|
-
**Do not force push to develop or master under any circumstances.**
|
143
|
-
|
144
|
-
To interactively rebase all of your commits on top of the latest in develop, run:
|
145
|
-
|
146
|
-
```sh
|
147
|
-
git rebase --interactive origin/develop
|
148
|
-
```
|
149
|
-
|
150
|
-
This brings up an interactive dialog in your text editor. Follow the instructions to squash all
|
151
|
-
of your commits into the top one. Rename the top one.
|
152
|
-
|
153
|
-
Once this is done, run `git log` and you will see only one commit after develop, representing
|
154
|
-
everything from the pull request.
|
155
|
-
|
156
|
-
Finally, pull from develop with `rebase` to put all of our local commits on top of the latest
|
157
|
-
remote.
|
158
|
-
|
159
|
-
```sh
|
160
|
-
git pull --rebase origin develop
|
161
|
-
```
|
162
|
-
|
163
|
-
You can then push the latest code to develop (note that force push isn't needed if these steps are followed):
|
164
|
-
|
165
|
-
```console
|
166
|
-
git push origin develop
|
167
|
-
```
|
168
|
-
|
169
|
-
## Writing Integration Tests
|
170
|
-
|
171
|
-
For each rule, axe-core needs to have integration tests. These tests are located in `tests/integration`.
|
172
|
-
This directory contains two other directories. `rules`, which contains integration tests that can be run
|
173
|
-
on a single page, and `full` which contains tests that can only be tested by running on multiple pages.
|
174
|
-
|
175
|
-
Ensure that for each check used in the rule, there is an integration test for both pass and fail results.
|
176
|
-
Integration tests put in `rules` can be described using simple code snippets in an HTML file, and a JSON
|
177
|
-
file that describes the expected outcome. For `full` tests, a complete Jasmine test should be created,
|
178
|
-
including at least one HTML file that has the tested code, and a JS file that has the test statements.
|