From c094bf25b6703f2358f18d32d662d7ad5baa529b Mon Sep 17 00:00:00 2001 From: Yura Zenevich Date: Tue, 27 Aug 2019 23:37:54 +0000 Subject: [PATCH] Bug 1564968 - add keyboard audit filter/badge to the accessibility panel. r=gl Differential Revision: https://phabricator.services.mozilla.com/D43446 --HG-- rename : devtools/client/accessibility/components/TextLabelBadge.js => devtools/client/accessibility/components/KeyboardBadge.js extra : moz-landing-system : lando --- .../components/AccessibilityTreeFilter.js | 1 + .../accessibility/components/AuditFilter.js | 4 ++ .../client/accessibility/components/Badges.js | 5 ++ .../accessibility/components/ContrastBadge.js | 10 +-- .../accessibility/components/KeyboardBadge.js | 49 +++++++++++++ .../components/TextLabelBadge.js | 10 +-- .../client/accessibility/components/moz.build | 1 + devtools/client/accessibility/constants.js | 1 + .../client/accessibility/reducers/audit.js | 2 + ...wser_accessibility_panel_toolbar_checks.js | 25 ++++--- ...rowser_accessibility_tree_audit_toolbar.js | 6 +- .../accessibility-tree-filter.test.js.snap | 6 +- .../__snapshots__/keyboard-badge.test.js.snap | 7 ++ .../__snapshots__/keyboard-check.test.js.snap | 8 +-- .../accessibility-tree-filter.test.js | 23 ++++++ .../jest/components/keyboard-badge.test.js | 71 +++++++++++++++++++ .../locales/en-US/accessibility.properties | 17 +++++ 17 files changed, 214 insertions(+), 32 deletions(-) create mode 100644 devtools/client/accessibility/components/KeyboardBadge.js create mode 100644 devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-badge.test.js.snap create mode 100644 devtools/client/accessibility/test/jest/components/keyboard-badge.test.js diff --git a/devtools/client/accessibility/components/AccessibilityTreeFilter.js b/devtools/client/accessibility/components/AccessibilityTreeFilter.js index 60d484c303ad..2be37a359c9f 100644 --- a/devtools/client/accessibility/components/AccessibilityTreeFilter.js +++ b/devtools/client/accessibility/components/AccessibilityTreeFilter.js @@ -44,6 +44,7 @@ const FILTER_LABELS = { [FILTERS.NONE]: "accessibility.filter.none", [FILTERS.ALL]: "accessibility.filter.all2", [FILTERS.CONTRAST]: "accessibility.filter.contrast", + [FILTERS.KEYBOARD]: "accessibility.filter.keyboard", [FILTERS.TEXT_LABEL]: "accessibility.filter.textLabel", }; diff --git a/devtools/client/accessibility/components/AuditFilter.js b/devtools/client/accessibility/components/AuditFilter.js index 663ab51fdbe3..e094cf3b47f5 100644 --- a/devtools/client/accessibility/components/AuditFilter.js +++ b/devtools/client/accessibility/components/AuditFilter.js @@ -26,6 +26,10 @@ const AUDIT_TYPE_TO_FILTER = { filterKey: FILTERS.CONTRAST, validator: validateCheck, }, + [AUDIT_TYPE.KEYBOARD]: { + filterKey: FILTERS.KEYBOARD, + validator: validateCheck, + }, [AUDIT_TYPE.TEXT_LABEL]: { filterKey: FILTERS.TEXT_LABEL, validator: validateCheck, diff --git a/devtools/client/accessibility/components/Badges.js b/devtools/client/accessibility/components/Badges.js index 31d3bbf40df5..3815e43b3777 100644 --- a/devtools/client/accessibility/components/Badges.js +++ b/devtools/client/accessibility/components/Badges.js @@ -21,6 +21,10 @@ loader.lazyGetter(this, "ContrastBadge", () => createFactory(require("./ContrastBadge")) ); +loader.lazyGetter(this, "KeyboardBadge", () => + createFactory(require("./KeyboardBadge")) +); + loader.lazyGetter(this, "TextLabelBadge", () => createFactory(require("./TextLabelBadge")) ); @@ -28,6 +32,7 @@ loader.lazyGetter(this, "TextLabelBadge", () => function getComponentForAuditType(type) { const auditTypeToComponentMap = { [AUDIT_TYPE.CONTRAST]: ContrastBadge, + [AUDIT_TYPE.KEYBOARD]: KeyboardBadge, [AUDIT_TYPE.TEXT_LABEL]: TextLabelBadge, }; diff --git a/devtools/client/accessibility/components/ContrastBadge.js b/devtools/client/accessibility/components/ContrastBadge.js index 7b37c30f502f..a6dfd555a0fb 100644 --- a/devtools/client/accessibility/components/ContrastBadge.js +++ b/devtools/client/accessibility/components/ContrastBadge.js @@ -5,8 +5,8 @@ // React const { - Component, createFactory, + PureComponent, } = require("devtools/client/shared/vendor/react"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); @@ -23,7 +23,7 @@ loader.lazyGetter(this, "Badge", () => createFactory(require("./Badge"))); * failures association with a given accessibility object in the accessibility * tree. */ -class ContrastBadge extends Component { +class ContrastBadge extends PureComponent { static get propTypes() { return { error: PropTypes.string, @@ -33,11 +33,7 @@ class ContrastBadge extends Component { render() { const { error, score } = this.props; - if (error) { - return null; - } - - if (score !== SCORES.FAIL) { + if (error || score !== SCORES.FAIL) { return null; } diff --git a/devtools/client/accessibility/components/KeyboardBadge.js b/devtools/client/accessibility/components/KeyboardBadge.js new file mode 100644 index 000000000000..f40f80dab3ec --- /dev/null +++ b/devtools/client/accessibility/components/KeyboardBadge.js @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +// React +const { + createFactory, + PureComponent, +} = require("devtools/client/shared/vendor/react"); +const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); + +const { L10N } = require("../utils/l10n"); + +const { + accessibility: { + SCORES: { BEST_PRACTICES, FAIL, WARNING }, + }, +} = require("devtools/shared/constants"); + +loader.lazyGetter(this, "Badge", () => createFactory(require("./Badge"))); + +/** + * Component for rendering a badge for keyboard accessibliity check failures + * association with a given accessibility object in the accessibility tree. + */ +class KeyboardBadge extends PureComponent { + static get propTypes() { + return { + error: PropTypes.string, + score: PropTypes.string, + }; + } + + render() { + const { error, score } = this.props; + if (error || ![BEST_PRACTICES, FAIL, WARNING].includes(score)) { + return null; + } + + return Badge({ + label: L10N.getStr("accessibility.badge.keyboard"), + tooltip: L10N.getStr("accessibility.badge.keyboard.tooltip"), + }); + } +} + +module.exports = KeyboardBadge; diff --git a/devtools/client/accessibility/components/TextLabelBadge.js b/devtools/client/accessibility/components/TextLabelBadge.js index 8d061bbd4252..8c458f0e12f7 100644 --- a/devtools/client/accessibility/components/TextLabelBadge.js +++ b/devtools/client/accessibility/components/TextLabelBadge.js @@ -6,8 +6,8 @@ // React const { - Component, createFactory, + PureComponent, } = require("devtools/client/shared/vendor/react"); const PropTypes = require("devtools/client/shared/vendor/react-prop-types"); @@ -26,7 +26,7 @@ loader.lazyGetter(this, "Badge", () => createFactory(require("./Badge"))); * failures association with a given accessibility object in the accessibility * tree. */ -class TextLabelBadge extends Component { +class TextLabelBadge extends PureComponent { static get propTypes() { return { error: PropTypes.string, @@ -36,11 +36,7 @@ class TextLabelBadge extends Component { render() { const { error, score } = this.props; - if (error) { - return null; - } - - if (![BEST_PRACTICES, FAIL, WARNING].includes(score)) { + if (error || ![BEST_PRACTICES, FAIL, WARNING].includes(score)) { return null; } diff --git a/devtools/client/accessibility/components/moz.build b/devtools/client/accessibility/components/moz.build index 47490428df0a..b0480651b127 100644 --- a/devtools/client/accessibility/components/moz.build +++ b/devtools/client/accessibility/components/moz.build @@ -20,6 +20,7 @@ DevToolsModules( 'ColorContrastAccessibility.js', 'ContrastBadge.js', 'Description.js', + 'KeyboardBadge.js', 'KeyboardCheck.js', 'LearnMoreLink.js', 'MainFrame.js', diff --git a/devtools/client/accessibility/constants.js b/devtools/client/accessibility/constants.js index 967e22b1812f..0807b6b9d286 100644 --- a/devtools/client/accessibility/constants.js +++ b/devtools/client/accessibility/constants.js @@ -75,6 +75,7 @@ exports.FILTERS = { NONE: "NONE", ALL: "ALL", [AUDIT_TYPE.CONTRAST]: "CONTRAST", + [AUDIT_TYPE.KEYBOARD]: "KEYBOARD", [AUDIT_TYPE.TEXT_LABEL]: "TEXT_LABEL", }; diff --git a/devtools/client/accessibility/reducers/audit.js b/devtools/client/accessibility/reducers/audit.js index 861af668fd85..fae43e8a3a40 100644 --- a/devtools/client/accessibility/reducers/audit.js +++ b/devtools/client/accessibility/reducers/audit.js @@ -25,6 +25,7 @@ function getInitialState() { filters: { [FILTERS.ALL]: false, [FILTERS.CONTRAST]: false, + [FILTERS.KEYBOARD]: false, [FILTERS.TEXT_LABEL]: false, }, auditing: [], @@ -39,6 +40,7 @@ function allActiveFilters() { return { [FILTERS.ALL]: true, [FILTERS.CONTRAST]: true, + [FILTERS.KEYBOARD]: true, [FILTERS.TEXT_LABEL]: true, }; } diff --git a/devtools/client/accessibility/test/browser/browser_accessibility_panel_toolbar_checks.js b/devtools/client/accessibility/test/browser/browser_accessibility_panel_toolbar_checks.js index c4b0835c28bd..4b9688d0bdc6 100644 --- a/devtools/client/accessibility/test/browser/browser_accessibility_panel_toolbar_checks.js +++ b/devtools/client/accessibility/test/browser/browser_accessibility_panel_toolbar_checks.js @@ -26,7 +26,7 @@ const tests = [ { desc: "Check initial state.", expected: { - activeToolbarFilters: [true, false, false, false], + activeToolbarFilters: [true, false, false, false, false], }, }, { @@ -35,7 +35,7 @@ const tests = [ await toggleMenuItem(doc, 0, 1); }, expected: { - activeToolbarFilters: [false, true, true, true], + activeToolbarFilters: [false, true, true, true, true], }, }, { @@ -44,7 +44,7 @@ const tests = [ await toggleMenuItem(doc, 0, 1); }, expected: { - activeToolbarFilters: [true, false, false, false], + activeToolbarFilters: [true, false, false, false, false], }, }, { @@ -53,7 +53,7 @@ const tests = [ await toggleMenuItem(doc, 0, 2); }, expected: { - activeToolbarFilters: [false, false, true, false], + activeToolbarFilters: [false, false, true, false, false], }, }, { @@ -62,7 +62,7 @@ const tests = [ await toggleMenuItem(doc, 0, 2); }, expected: { - activeToolbarFilters: [true, false, false, false], + activeToolbarFilters: [true, false, false, false, false], }, }, { @@ -71,7 +71,7 @@ const tests = [ await toggleMenuItem(doc, 0, 2); }, expected: { - activeToolbarFilters: [false, false, true, false], + activeToolbarFilters: [false, false, true, false, false], }, }, { @@ -80,7 +80,16 @@ const tests = [ await toggleMenuItem(doc, 0, 3); }, expected: { - activeToolbarFilters: [false, true, true, true], + activeToolbarFilters: [false, false, true, true, false], + }, + }, + { + desc: "Toggle third custom filter to activate.", + setup: async ({ doc }) => { + await toggleMenuItem(doc, 0, 4); + }, + expected: { + activeToolbarFilters: [false, true, true, true, true], }, }, { @@ -89,7 +98,7 @@ const tests = [ await toggleMenuItem(doc, 0, 0); }, expected: { - activeToolbarFilters: [true, false, false, false], + activeToolbarFilters: [true, false, false, false, false], }, }, ]; diff --git a/devtools/client/accessibility/test/browser/browser_accessibility_tree_audit_toolbar.js b/devtools/client/accessibility/test/browser/browser_accessibility_tree_audit_toolbar.js index 17cebbd43d41..1c818ffcc050 100644 --- a/devtools/client/accessibility/test/browser/browser_accessibility_tree_audit_toolbar.js +++ b/devtools/client/accessibility/test/browser/browser_accessibility_tree_audit_toolbar.js @@ -40,7 +40,7 @@ const tests = [ selected: true, }, ], - activeToolbarFilters: [true, false, false, false], + activeToolbarFilters: [true, false, false, false, false], }, }, { @@ -62,7 +62,7 @@ const tests = [ badges: ["contrast"], }, ], - activeToolbarFilters: [false, true, true, true], + activeToolbarFilters: [false, true, true, true, true], }, }, { @@ -96,7 +96,7 @@ const tests = [ badges: ["contrast"], }, ], - activeToolbarFilters: [true, false, false, false], + activeToolbarFilters: [true, false, false, false, false], }, }, ]; diff --git a/devtools/client/accessibility/test/jest/components/__snapshots__/accessibility-tree-filter.test.js.snap b/devtools/client/accessibility/test/jest/components/__snapshots__/accessibility-tree-filter.test.js.snap index df73841ed05b..7623d07a0092 100644 --- a/devtools/client/accessibility/test/jest/components/__snapshots__/accessibility-tree-filter.test.js.snap +++ b/devtools/client/accessibility/test/jest/components/__snapshots__/accessibility-tree-filter.test.js.snap @@ -20,11 +20,11 @@ exports[`AccessibilityTreeFilter component: render filters after state changes 3 exports[`AccessibilityTreeFilter component: render filters after state changes 4`] = `"
accessibility.tree.filters
"`; -exports[`AccessibilityTreeFilter component: render filters after state changes 5`] = `"
accessibility.tree.filters
"`; +exports[`AccessibilityTreeFilter component: render filters after state changes 5`] = `"
accessibility.tree.filters
"`; -exports[`AccessibilityTreeFilter component: render filters after state changes 6`] = `"
accessibility.tree.filters
"`; +exports[`AccessibilityTreeFilter component: render filters after state changes 6`] = `"
accessibility.tree.filters
"`; -exports[`AccessibilityTreeFilter component: render filters after state changes 7`] = `"
accessibility.tree.filters
"`; +exports[`AccessibilityTreeFilter component: render filters after state changes 7`] = `"
accessibility.tree.filters
"`; exports[`AccessibilityTreeFilter component: render filters after state changes 8`] = `"
accessibility.tree.filters
"`; diff --git a/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-badge.test.js.snap b/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-badge.test.js.snap new file mode 100644 index 000000000000..af864c6ccc99 --- /dev/null +++ b/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-badge.test.js.snap @@ -0,0 +1,7 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`KeyboardBadge component: error render 1`] = `null`; + +exports[`KeyboardBadge component: fail render 1`] = `"accessibility.badge.keyboard"`; + +exports[`KeyboardBadge component: warning render 1`] = `"accessibility.badge.keyboard"`; diff --git a/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-check.test.js.snap b/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-check.test.js.snap index a716572a5f8a..eddda3514fb4 100644 --- a/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-check.test.js.snap +++ b/devtools/client/accessibility/test/jest/components/__snapshots__/keyboard-check.test.js.snap @@ -1,9 +1,9 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`KeyboardCheck component: FAIL render 1`] = `"

"`; + +exports[`KeyboardCheck component: FAIL render 2`] = `"

"`; + exports[`KeyboardCheck component: WARNING render 1`] = `"

"`; exports[`KeyboardCheck component: WARNING render 2`] = `"

"`; - -exports[`KeyboardCheck component: fail render 1`] = `"

"`; - -exports[`KeyboardCheck component: fail render 2`] = `"

"`; diff --git a/devtools/client/accessibility/test/jest/components/accessibility-tree-filter.test.js b/devtools/client/accessibility/test/jest/components/accessibility-tree-filter.test.js index f30418cef07f..fe218aebad58 100644 --- a/devtools/client/accessibility/test/jest/components/accessibility-tree-filter.test.js +++ b/devtools/client/accessibility/test/jest/components/accessibility-tree-filter.test.js @@ -82,6 +82,11 @@ describe("AccessibilityTreeFilter component:", () => { disabled: false, text: "accessibility.filter.contrast", }, + { + active: false, + disabled: false, + text: "accessibility.filter.keyboard", + }, { active: false, disabled: false, @@ -98,6 +103,7 @@ describe("AccessibilityTreeFilter component:", () => { filters: { [FILTERS.ALL]: true, [FILTERS.CONTRAST]: true, + [FILTERS.KEYBOARD]: true, [FILTERS.TEXT_LABEL]: true, }, auditing: [], @@ -112,6 +118,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: true, disabled: false }, { active: true, disabled: false }, { active: true, disabled: false }, + { active: true, disabled: false }, ], }); }); @@ -144,6 +151,7 @@ describe("AccessibilityTreeFilter component:", () => { filters: { [FILTERS.ALL]: false, [FILTERS.CONTRAST]: false, + [FILTERS.KEYBOARD]: false, [FILTERS.TEXT_LABEL]: false, }, auditing: [FILTERS.CONTRAST], @@ -158,6 +166,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: true }, { active: false, disabled: false }, + { active: false, disabled: false }, ], }); }); @@ -186,6 +195,7 @@ describe("AccessibilityTreeFilter component:", () => { filters: { [FILTERS.ALL]: false, [FILTERS.CONTRAST]: true, + [FILTERS.KEYBOARD]: false, [FILTERS.TEXT_LABEL]: false, }, auditing: [FILTERS.CONTRAST], @@ -200,6 +210,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: true, disabled: true }, { active: false, disabled: false }, + { active: false, disabled: false }, ], }); }); @@ -226,6 +237,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: false, disabled: false }, + { active: false, disabled: false }, ], }, }, @@ -240,6 +252,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: true }, { active: false, disabled: true }, { active: false, disabled: true }, + { active: false, disabled: true }, ], }, }, @@ -254,6 +267,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: false, disabled: false }, + { active: false, disabled: false }, ], }, }, @@ -268,6 +282,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: true, disabled: false }, { active: true, disabled: false }, { active: true, disabled: false }, + { active: true, disabled: false }, ], }, }, @@ -282,6 +297,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: true, disabled: false }, + { active: true, disabled: false }, ], }, }, @@ -296,6 +312,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: true }, { active: true, disabled: false }, + { active: true, disabled: false }, ], }, }, @@ -310,6 +327,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: true, disabled: false }, + { active: true, disabled: false }, ], }, }, @@ -324,6 +342,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: true, disabled: false }, { active: true, disabled: false }, { active: true, disabled: false }, + { active: true, disabled: false }, ], }, }, @@ -338,6 +357,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: false, disabled: false }, + { active: false, disabled: false }, ], }, }, @@ -351,6 +371,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: true, disabled: true }, { active: false, disabled: false }, { active: false, disabled: false }, + { active: false, disabled: false }, { active: false, disabled: true }, ], }, @@ -366,6 +387,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: false, disabled: false }, + { active: false, disabled: false }, ], }, }, @@ -379,6 +401,7 @@ describe("AccessibilityTreeFilter component:", () => { { active: false, disabled: false }, { active: false, disabled: false }, { active: false, disabled: false }, + { active: false, disabled: false }, { active: true, disabled: false }, ], }, diff --git a/devtools/client/accessibility/test/jest/components/keyboard-badge.test.js b/devtools/client/accessibility/test/jest/components/keyboard-badge.test.js new file mode 100644 index 000000000000..736d8ffcfc70 --- /dev/null +++ b/devtools/client/accessibility/test/jest/components/keyboard-badge.test.js @@ -0,0 +1,71 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const { shallow, mount } = require("enzyme"); + +const { createFactory } = require("devtools/client/shared/vendor/react"); + +const Provider = createFactory( + require("devtools/client/shared/vendor/react-redux").Provider +); +const { + setupStore, +} = require("devtools/client/accessibility/test/jest/helpers"); + +const Badge = require("devtools/client/accessibility/components/Badge"); +const KeyboardBadgeClass = require("devtools/client/accessibility/components/KeyboardBadge"); +const KeyboardBadge = createFactory(KeyboardBadgeClass); +const { + accessibility: { SCORES }, +} = require("devtools/shared/constants"); + +function testBadge(wrapper) { + expect(wrapper.html()).toMatchSnapshot(); + expect(wrapper.children().length).toBe(1); + const keyboardBadge = wrapper.find(KeyboardBadgeClass); + const badge = keyboardBadge.childAt(0); + expect(badge.type()).toBe(Badge); + expect(badge.props()).toMatchObject({ + label: "accessibility.badge.keyboard", + tooltip: "accessibility.badge.keyboard.tooltip", + }); +} + +describe("KeyboardBadge component:", () => { + const store = setupStore(); + + it("error render", () => { + const wrapper = shallow(KeyboardBadge({ error: true })); + expect(wrapper.html()).toMatchSnapshot(); + expect(wrapper.isEmptyRender()).toBe(true); + }); + + it("fail render", () => { + const wrapper = mount( + Provider( + { store }, + KeyboardBadge({ + score: SCORES.FAIL, + }) + ) + ); + + testBadge(wrapper); + }); + + it("warning render", () => { + const wrapper = mount( + Provider( + { store }, + KeyboardBadge({ + score: SCORES.WARNING, + }) + ) + ); + + testBadge(wrapper); + }); +}); diff --git a/devtools/client/locales/en-US/accessibility.properties b/devtools/client/locales/en-US/accessibility.properties index 10041e9c34fe..0d5ebe2a7ba4 100644 --- a/devtools/client/locales/en-US/accessibility.properties +++ b/devtools/client/locales/en-US/accessibility.properties @@ -181,6 +181,11 @@ accessibility.filter.contrast=Contrast # filters the tree based on text label and name accessibility failures within it. accessibility.filter.textLabel=Text Labels +# LOCALIZATION NOTE (accessibility.filter.keyboard): A title text for the filter +# that is rendered within the accessibility panel toolbar for a menu item that +# filters the tree based on keyboard accessibility failures within it. +accessibility.filter.keyboard=Keyboard + # LOCALIZATION NOTE (accessibility.badge.contrast): A title text for the badge # that is rendered within the accessible row in the accessibility tree for a # given accessible object that does not satisfy the WCAG guideline for colour @@ -193,6 +198,12 @@ accessibility.badge.contrast=contrast # WCAG guideline for colour contrast. accessibility.badge.contrast.warning=contrast warning +# LOCALIZATION NOTE (accessibility.badge.keyboard): A title text for the +# badge that is rendered within the accessible row in the accessibility tree for +# a given accessible object that does not satisfy the WCAG guideline for +# keyboard accessibility. +accessibility.badge.keyboard=keyboard + # LOCALIZATION NOTE (accessibility.badge.textLabel): A title text for the # badge that is rendered within the accessible row in the accessibility tree for # a given accessible object that does not satisfy the WCAG guideline for text @@ -205,6 +216,12 @@ accessibility.badge.textLabel=text label # satisfy the WCAG guideline for colour contrast. accessibility.badge.contrast.tooltip=Does not meet WCAG standards for accessible text. +# LOCALIZATION NOTE (accessibility.badge.keyboard.tooltip): A title text +# for the badge tooltip that is rendered on mouse hover over the badge in the +# accessible row in the accessibility tree for a given accessible object that +# does not satisfy the WCAG guideline for keyboard accessibility. +accessibility.badge.keyboard.tooltip=Does not meet WCAG standards for keyboard accessibility. + # LOCALIZATION NOTE (accessibility.badge.textLabel.tooltip): A title text # for the badge tooltip that is rendered on mouse hover over the badge in the # accessible row in the accessibility tree for a given accessible object that