lighthouse 12.8.1 → 12.8.2-dev.20250829

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/cli/test/smokehouse/config/exclusions.js +2 -0
  2. package/cli/test/smokehouse/frontends/lib.js +1 -3
  3. package/cli/test/smokehouse/frontends/smokehouse-bin.js +6 -2
  4. package/cli/test/smokehouse/report-assert.js +1 -2
  5. package/core/audits/accessibility/accesskeys.js +2 -2
  6. package/core/audits/accessibility/aria-allowed-attr.js +2 -2
  7. package/core/audits/accessibility/aria-hidden-body.js +2 -2
  8. package/core/audits/accessibility/aria-hidden-focus.js +2 -2
  9. package/core/audits/accessibility/aria-input-field-name.js +2 -2
  10. package/core/audits/accessibility/aria-required-attr.js +2 -2
  11. package/core/audits/accessibility/aria-required-children.js +2 -2
  12. package/core/audits/accessibility/aria-required-parent.js +2 -2
  13. package/core/audits/accessibility/aria-roles.js +2 -2
  14. package/core/audits/accessibility/aria-text.js +2 -2
  15. package/core/audits/accessibility/aria-toggle-field-name.js +2 -2
  16. package/core/audits/accessibility/aria-valid-attr-value.js +2 -2
  17. package/core/audits/accessibility/aria-valid-attr.js +2 -2
  18. package/core/audits/accessibility/button-name.js +2 -2
  19. package/core/audits/accessibility/bypass.js +2 -2
  20. package/core/audits/accessibility/color-contrast.js +2 -2
  21. package/core/audits/accessibility/definition-list.js +2 -2
  22. package/core/audits/accessibility/dlitem.js +2 -2
  23. package/core/audits/accessibility/document-title.js +2 -2
  24. package/core/audits/accessibility/duplicate-id-aria.js +2 -2
  25. package/core/audits/accessibility/empty-heading.js +2 -2
  26. package/core/audits/accessibility/form-field-multiple-labels.js +2 -2
  27. package/core/audits/accessibility/frame-title.js +2 -2
  28. package/core/audits/accessibility/heading-order.js +2 -2
  29. package/core/audits/accessibility/html-has-lang.js +2 -2
  30. package/core/audits/accessibility/html-lang-valid.js +2 -2
  31. package/core/audits/accessibility/html-xml-lang-mismatch.js +2 -2
  32. package/core/audits/accessibility/identical-links-same-purpose.js +2 -2
  33. package/core/audits/accessibility/image-alt.js +2 -2
  34. package/core/audits/accessibility/image-redundant-alt.js +2 -2
  35. package/core/audits/accessibility/input-button-name.js +2 -2
  36. package/core/audits/accessibility/input-image-alt.js +2 -2
  37. package/core/audits/accessibility/label-content-name-mismatch.js +2 -2
  38. package/core/audits/accessibility/label.js +2 -2
  39. package/core/audits/accessibility/landmark-one-main.js +2 -2
  40. package/core/audits/accessibility/link-in-text-block.js +2 -2
  41. package/core/audits/accessibility/link-name.js +2 -2
  42. package/core/audits/accessibility/list.js +2 -2
  43. package/core/audits/accessibility/listitem.js +2 -2
  44. package/core/audits/accessibility/meta-refresh.js +2 -2
  45. package/core/audits/accessibility/meta-viewport.js +2 -2
  46. package/core/audits/accessibility/object-alt.js +2 -2
  47. package/core/audits/accessibility/select-name.js +2 -2
  48. package/core/audits/accessibility/skip-link.js +2 -2
  49. package/core/audits/accessibility/tabindex.js +2 -2
  50. package/core/audits/accessibility/table-duplicate-name.js +2 -2
  51. package/core/audits/accessibility/table-fake-caption.js +2 -2
  52. package/core/audits/accessibility/target-size.js +2 -2
  53. package/core/audits/accessibility/td-has-header.js +2 -2
  54. package/core/audits/accessibility/td-headers-attr.js +2 -2
  55. package/core/audits/accessibility/th-has-data-cells.js +2 -2
  56. package/core/audits/accessibility/valid-lang.js +2 -2
  57. package/core/audits/accessibility/video-caption.js +2 -2
  58. package/core/audits/errors-in-console.js +6 -2
  59. package/core/audits/insights/image-delivery-insight.js +0 -5
  60. package/core/audits/insights/insight-audit.js +12 -1
  61. package/core/audits/non-composited-animations.d.ts +1 -0
  62. package/core/audits/non-composited-animations.js +43 -5
  63. package/core/lib/bf-cache-strings.js +5 -0
  64. package/core/lib/deprecations-strings.d.ts +54 -74
  65. package/core/lib/deprecations-strings.js +7 -29
  66. package/dist/report/bundle.esm.js +10 -10
  67. package/dist/report/flow.js +13 -13
  68. package/dist/report/standalone.js +11 -11
  69. package/package.json +19 -27
  70. package/shared/localization/locales/ar-XB.json +95 -20
  71. package/shared/localization/locales/ar.json +95 -20
  72. package/shared/localization/locales/bg.json +84 -9
  73. package/shared/localization/locales/ca.json +84 -9
  74. package/shared/localization/locales/cs.json +84 -9
  75. package/shared/localization/locales/da.json +84 -9
  76. package/shared/localization/locales/de.json +83 -8
  77. package/shared/localization/locales/el.json +85 -10
  78. package/shared/localization/locales/en-GB.json +83 -8
  79. package/shared/localization/locales/en-US.json +3 -6
  80. package/shared/localization/locales/en-XL.json +3 -6
  81. package/shared/localization/locales/es-419.json +83 -8
  82. package/shared/localization/locales/es.json +84 -9
  83. package/shared/localization/locales/fi.json +83 -8
  84. package/shared/localization/locales/fil.json +84 -9
  85. package/shared/localization/locales/fr.json +84 -9
  86. package/shared/localization/locales/he.json +105 -30
  87. package/shared/localization/locales/hi.json +84 -9
  88. package/shared/localization/locales/hr.json +84 -9
  89. package/shared/localization/locales/hu.json +84 -9
  90. package/shared/localization/locales/id.json +84 -9
  91. package/shared/localization/locales/it.json +83 -8
  92. package/shared/localization/locales/ja.json +84 -9
  93. package/shared/localization/locales/ko.json +84 -9
  94. package/shared/localization/locales/lt.json +84 -9
  95. package/shared/localization/locales/lv.json +84 -9
  96. package/shared/localization/locales/nl.json +83 -8
  97. package/shared/localization/locales/no.json +84 -9
  98. package/shared/localization/locales/pl.json +83 -8
  99. package/shared/localization/locales/pt-PT.json +84 -9
  100. package/shared/localization/locales/pt.json +84 -9
  101. package/shared/localization/locales/ro.json +84 -9
  102. package/shared/localization/locales/ru.json +84 -9
  103. package/shared/localization/locales/sk.json +83 -8
  104. package/shared/localization/locales/sl.json +84 -9
  105. package/shared/localization/locales/sr-Latn.json +85 -10
  106. package/shared/localization/locales/sr.json +85 -10
  107. package/shared/localization/locales/sv.json +84 -9
  108. package/shared/localization/locales/ta.json +84 -9
  109. package/shared/localization/locales/te.json +83 -8
  110. package/shared/localization/locales/th.json +92 -17
  111. package/shared/localization/locales/tr.json +84 -9
  112. package/shared/localization/locales/uk.json +84 -9
  113. package/shared/localization/locales/vi.json +83 -8
  114. package/shared/localization/locales/zh-HK.json +84 -9
  115. package/shared/localization/locales/zh-TW.json +84 -9
  116. package/shared/localization/locales/zh.json +85 -10
  117. package/third-party/chromium-synchronization/inspector-issueAdded-types-test.js +0 -1
  118. package/cli/test/smokehouse/core-tests.js +0 -140
  119. package/types/internal/node-fetch.d.ts +0 -4
@@ -40,6 +40,8 @@ for (const array of Object.values(exclusions)) {
40
40
  array.push('csp-block-all');
41
41
  // glitch is gone.
42
42
  array.push('issues-mixed-content');
43
+ // works most of the time, but since it uses a live site it can be flaky
44
+ array.push('trusted-types-directive-present');
43
45
  }
44
46
 
45
47
  export default exclusions;
@@ -10,8 +10,6 @@
10
10
  * Supports skipping and modifiying expectations to match the environment.
11
11
  */
12
12
 
13
- import {cloneDeep} from 'lodash-es';
14
-
15
13
  import smokeTests from '../core-tests.js';
16
14
  import {runSmokehouse, getShardedDefinitions} from '../smokehouse.js';
17
15
 
@@ -21,7 +19,7 @@ import {runSmokehouse, getShardedDefinitions} from '../smokehouse.js';
21
19
  async function smokehouse(options) {
22
20
  const {urlFilterRegex, skip, modify, shardArg, ...smokehouseOptions} = options;
23
21
 
24
- const clonedTests = cloneDeep(smokeTests);
22
+ const clonedTests = structuredClone(smokeTests);
25
23
  const modifiedTests = [];
26
24
  for (const test of clonedTests) {
27
25
  if (urlFilterRegex && !test.expectations.lhr.requestedUrl.match(urlFilterRegex)) {
@@ -14,7 +14,6 @@ import path from 'path';
14
14
  import fs from 'fs';
15
15
  import url from 'url';
16
16
 
17
- import {cloneDeep} from 'lodash-es';
18
17
  import yargs from 'yargs';
19
18
  import * as yargsHelpers from 'yargs/helpers';
20
19
  import log from 'lighthouse-logger';
@@ -92,7 +91,7 @@ function getDefinitionsToRun(allTestDefns, requestedIds, excludedTests) {
92
91
  function pruneExpectedNetworkRequests(testDefns, takeNetworkRequestUrls) {
93
92
  const pruneNetworkRequests = !takeNetworkRequestUrls;
94
93
 
95
- const clonedDefns = cloneDeep(testDefns);
94
+ const clonedDefns = structuredClone(testDefns);
96
95
  for (const {id, expectations, runSerially} of clonedDefns) {
97
96
  if (!runSerially && expectations.networkRequests) {
98
97
  throw new Error(`'${id}' must be set to 'runSerially: true' to assert 'networkRequests'`);
@@ -189,6 +188,11 @@ async function begin() {
189
188
  const {runLighthouse, setup} = await import(runnerPath);
190
189
  runLighthouse.runnerName = argv.runner;
191
190
 
191
+ if (!argv.testsPath && !fs.existsSync(coreTestDefnsPath)) {
192
+ console.error('Set --tests-path to provide the file that defines the smoke tests for your Lighthouse plugin. See https://github.com/GoogleChrome/lighthouse/blob/main/cli/test/smokehouse/readme.md for more information');
193
+ process.exit(1);
194
+ }
195
+
192
196
  // Find test definition file and filter by requestedTestIds.
193
197
  let testDefnPath = argv.testsPath || coreTestDefnsPath;
194
198
  testDefnPath = path.resolve(process.cwd(), testDefnPath);
@@ -9,7 +9,6 @@
9
9
  * against the results actually collected from Lighthouse.
10
10
  */
11
11
 
12
- import {cloneDeep} from 'lodash-es';
13
12
  import log from 'lighthouse-logger';
14
13
 
15
14
  import {LocalConsole} from './lib/local-console.js';
@@ -317,7 +316,7 @@ function pruneExpectations(localConsole, lhr, expected, reportOptions) {
317
316
  delete obj._excludeRunner;
318
317
  }
319
318
 
320
- const cloned = cloneDeep(expected);
319
+ const cloned = structuredClone(expected);
321
320
 
322
321
  pruneRecursively(cloned);
323
322
  return cloned;
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if the accesskey HTML attribute values are unique across all elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if the accesskey HTML attribute values are unique across all elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[accesskey]` values are unique',
18
- /** Title of an accesibility audit that evaluates if the ARIA HTML attributes are misaligned with the aria-role HTML attribute specificed on the element, such mismatches are invalid. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if the ARIA HTML attributes are misaligned with the aria-role HTML attribute specificed on the element, such mismatches are invalid. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[accesskey]` values are not unique',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Access keys let users quickly focus a part of the page. For proper ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if the ARIA HTML attributes are misaligned with the aria-role HTML attribute specificed on the element, such mismatches are invalid. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if the ARIA HTML attributes are misaligned with the aria-role HTML attribute specificed on the element, such mismatches are invalid. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[aria-*]` attributes match their roles',
18
- /** Title of an accesibility audit that evaluates if the ARIA HTML attributes are misaligned with the aria-role HTML attribute specificed on the element, such mismatches are invalid. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if the ARIA HTML attributes are misaligned with the aria-role HTML attribute specificed on the element, such mismatches are invalid. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[aria-*]` attributes do not match their roles',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Each ARIA `role` supports a specific subset of `aria-*` attributes. ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if the html <body> element does not have an aria-hidden attribute set on it. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if the html <body> element does not have an aria-hidden attribute set on it. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[aria-hidden="true"]` is not present on the document `<body>`',
18
- /** Title of an accesibility audit that checks if the html <body> element does not have an aria-hidden attribute set on it. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if the html <body> element does not have an aria-hidden attribute set on it. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[aria-hidden="true"]` is present on the document `<body>`',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Assistive technologies, like screen readers, work inconsistently when `aria-hidden="true"` is set on the document `<body>`. [Learn how `aria-hidden` affects the document body](https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if all elements that have an aria-hidden attribute do not contain focusable descendent elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if all elements that have an aria-hidden attribute do not contain focusable descendent elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[aria-hidden="true"]` elements do not contain focusable descendents',
18
- /** Title of an accesibility audit that checks if all elements that have an aria-hidden attribute do not contain focusable descendent elements. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if all elements that have an aria-hidden attribute do not contain focusable descendent elements. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[aria-hidden="true"]` elements contain focusable descendents',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Focusable descendents within an `[aria-hidden="true"]` element prevent those interactive elements from being available to users of assistive technologies like screen readers. [Learn how `aria-hidden` affects focusable elements](https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks that all ARIA input fields have an accessible name. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks that all ARIA input fields have an accessible name. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'ARIA input fields have accessible names',
18
- /** Title of an accesibility audit that checks that all ARIA input fields have an accessible name. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks that all ARIA input fields have an accessible name. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'ARIA input fields do not have accessible names',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'When an input field doesn\'t have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about input field labels](https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all elements with the aria-role attribute have the other corresponding ARIA attributes set as well. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all elements with the aria-role attribute have the other corresponding ARIA attributes set as well. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[role]`s have all required `[aria-*]` attributes',
18
- /** Title of an accesibility audit that evaluates if all elements with the aria-role attribute have the other corresponding ARIA attributes set as well. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all elements with the aria-role attribute have the other corresponding ARIA attributes set as well. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[role]`s do not have all required `[aria-*]` attributes',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Some ARIA roles have required attributes that describe the state ' +
@@ -14,10 +14,10 @@ import AxeAudit from './axe-audit.js';
14
14
  import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
- /** Title of an accesibility audit that evaluates if the elements with an aria-role that require child elements have the required children. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
+ /** Title of an accessibility audit that evaluates if the elements with an aria-role that require child elements have the required children. This title is descriptive of the successful state and is shown to users when no user action is required. */
18
18
  title: 'Elements with an ARIA `[role]` that require children to contain a specific ' +
19
19
  '`[role]` have all required children.',
20
- /** Title of an accesibility audit that evaluates if the elements with an aria-role that require child elements have the required children. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
20
+ /** Title of an accessibility audit that evaluates if the elements with an aria-role that require child elements have the required children. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
21
21
  failureTitle: 'Elements with an ARIA `[role]` that require children to contain a specific ' +
22
22
  '`[role]` are missing some or all of those required children.',
23
23
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
@@ -14,9 +14,9 @@ import AxeAudit from './axe-audit.js';
14
14
  import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
- /** Title of an accesibility audit that evaluates valid aria-role usage. Some ARIA roles require that elements must be a child of specific parent element. This audit checks that when those roles are used, the element with the role is in fact a child of the required parent. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
+ /** Title of an accessibility audit that evaluates valid aria-role usage. Some ARIA roles require that elements must be a child of specific parent element. This audit checks that when those roles are used, the element with the role is in fact a child of the required parent. This title is descriptive of the successful state and is shown to users when no user action is required. */
18
18
  title: '`[role]`s are contained by their required parent element',
19
- /** Title of an accesibility audit that evaluates valid aria-role usage. Some ARIA roles require that elements must be a child of specific parent element. This audit checks that when those roles are used, the element with the role is in fact a child of the required parent. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
+ /** Title of an accessibility audit that evaluates valid aria-role usage. Some ARIA roles require that elements must be a child of specific parent element. This audit checks that when those roles are used, the element with the role is in fact a child of the required parent. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
20
20
  failureTitle: '`[role]`s are not contained by their required parent element',
21
21
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
22
22
  description: 'Some ARIA child roles must be contained by specific parent roles to ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all elements have valid aria-role HTML attributes. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all elements have valid aria-role HTML attributes. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[role]` values are valid',
18
- /** Title of an accesibility audit that evaluates if all elements have valid aria-role HTML attributes. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all elements have valid aria-role HTML attributes. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[role]` values are not valid',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'ARIA roles must have valid values in order to perform their ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if elements with `role=text` have no focusable descendents. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if elements with `role=text` have no focusable descendents. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Elements with the `role=text` attribute do not have focusable descendents.',
18
- /** Title of an accesibility audit that evaluates if elements with `role=text` have focusable descendents. This title is descriptive of the successful state and is shown to users when no user action is required. */
18
+ /** Title of an accessibility audit that evaluates if elements with `role=text` have focusable descendents. This title is descriptive of the successful state and is shown to users when no user action is required. */
19
19
  failureTitle: 'Elements with the `role=text` attribute do have focusable descendents.',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Adding `role=text` around a text node split by markup enables VoiceOver to treat ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks that all ARIA toggle fields have an accessible name. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks that all ARIA toggle fields have an accessible name. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'ARIA toggle fields have accessible names',
18
- /** Title of an accesibility audit that checks that all ARIA toggle fields have an accessible name. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks that all ARIA toggle fields have an accessible name. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'ARIA toggle fields do not have accessible names',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'When a toggle field doesn\'t have an accessible name, screen readers announce it with a generic name, making it unusable for users who rely on screen readers. [Learn more about toggle fields](https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all elements that have an ARIA HTML attribute have a valid value for that attribute. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all elements that have an ARIA HTML attribute have a valid value for that attribute. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[aria-*]` attributes have valid values',
18
- /** Title of an accesibility audit that evaluates if all elements that have an ARIA HTML attribute have a valid value for that attribute. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all elements that have an ARIA HTML attribute have a valid value for that attribute. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[aria-*]` attributes do not have valid values',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Assistive technologies, like screen readers, can\'t interpret ARIA ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all elements with ARIA HTML attributes have spelled the name of attribute correctly. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all elements with ARIA HTML attributes have spelled the name of attribute correctly. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`[aria-*]` attributes are valid and not misspelled',
18
- /** Title of an accesibility audit that evaluates if all elements with ARIA HTML attributes have spelled the name of attribute correctly. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all elements with ARIA HTML attributes have spelled the name of attribute correctly. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`[aria-*]` attributes are not valid or misspelled',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Assistive technologies, like screen readers, can\'t interpret ARIA ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all button elements have names accessible to screen readers. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all button elements have names accessible to screen readers. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Buttons have an accessible name',
18
- /** Title of an accesibility audit that evaluates if all button elements have names accessible to screen readers. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all button elements have names accessible to screen readers. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Buttons do not have an accessible name',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'When a button doesn\'t have an accessible name, screen readers announce it ' +
@@ -14,9 +14,9 @@ import AxeAudit from './axe-audit.js';
14
14
  import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
- /** Title of an accesibility audit that evaluates if the page has elements that let screen reader users skip over repetitive content. `heading`, `skip link`, and `landmark region` are technical terms for the elements that enable quick page navigation. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
+ /** Title of an accessibility audit that evaluates if the page has elements that let screen reader users skip over repetitive content. `heading`, `skip link`, and `landmark region` are technical terms for the elements that enable quick page navigation. This title is descriptive of the successful state and is shown to users when no user action is required. */
18
18
  title: 'The page contains a heading, skip link, or landmark region',
19
- /** Title of an accesibility audit that evaluates if the page has elements that let screen reader users skip over repetitive content. `heading`, `skip link`, and `landmark region` are technical terms for the elements that enable quick page navigation. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
+ /** Title of an accessibility audit that evaluates if the page has elements that let screen reader users skip over repetitive content. `heading`, `skip link`, and `landmark region` are technical terms for the elements that enable quick page navigation. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
20
20
  failureTitle: 'The page does not contain a heading, skip link, or landmark region',
21
21
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
22
22
  description: 'Adding ways to bypass repetitive content lets keyboard users navigate the ' +
@@ -14,9 +14,9 @@ import AxeAudit from './axe-audit.js';
14
14
  import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
- /** Title of an accesibility audit that evaluates if all foreground colors are distinct enough from their background colors to be legible for users. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
+ /** Title of an accessibility audit that evaluates if all foreground colors are distinct enough from their background colors to be legible for users. This title is descriptive of the successful state and is shown to users when no user action is required. */
18
18
  title: 'Background and foreground colors have a sufficient contrast ratio',
19
- /** Title of an accesibility audit that evaluates if all foreground colors are distinct enough from their background colors to be legible for users. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
+ /** Title of an accessibility audit that evaluates if all foreground colors are distinct enough from their background colors to be legible for users. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
20
20
  failureTitle: 'Background and foreground colors do not have a ' +
21
21
  'sufficient contrast ratio.',
22
22
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
@@ -13,10 +13,10 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all the definition list elements have valid markup for screen readers. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all the definition list elements have valid markup for screen readers. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`<dl>`\'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, ' +
18
18
  '`<template>` or `<div>` elements.',
19
- /** Title of an accesibility audit that evaluates if all the definition list elements have valid markup for screen readers. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
+ /** Title of an accessibility audit that evaluates if all the definition list elements have valid markup for screen readers. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
20
20
  failureTitle: '`<dl>`\'s do not contain only properly-ordered `<dt>` and `<dd>` ' +
21
21
  'groups, `<script>`, `<template>` or `<div>` elements.',
22
22
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all definition list item elements (`<dt>`/`<dd>`) have a definition list parent element (`<dl>`). This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all definition list item elements (`<dt>`/`<dd>`) have a definition list parent element (`<dl>`). This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Definition list items are wrapped in `<dl>` elements',
18
- /** Title of an accesibility audit that evaluates if all definition list item elements (`<dt>`/`<dd>`) have a definition list parent element (`<dl>`). This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all definition list item elements (`<dt>`/`<dd>`) have a definition list parent element (`<dl>`). This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Definition list items are not wrapped in `<dl>` elements',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Definition list items (`<dt>` and `<dd>`) must be wrapped in a ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if the page has a <title> element that describes the page. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if the page has a <title> element that describes the page. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Document has a `<title>` element',
18
- /** Title of an accesibility audit that evaluates if the page has a <title> element that describes the page. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if the page has a <title> element that describes the page. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Document doesn\'t have a `<title>` element',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'The title gives screen reader users an overview of the page, and search ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if there are any duplicate ARIA IDs on the page. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if there are any duplicate ARIA IDs on the page. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'ARIA IDs are unique',
18
- /** Title of an accesibility audit that checks if there are any duplicate ARIA IDs on the page. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if there are any duplicate ARIA IDs on the page. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'ARIA IDs are not unique',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'The value of an ARIA ID must be unique to prevent other instances from being overlooked by assistive technologies. [Learn how to fix duplicate ARIA IDs](https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if all heading elements have content. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if all heading elements have content. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'All heading elements contain content.',
18
- /** Title of an accesibility audit that checks if all heading elements have content. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if all heading elements have content. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Heading elements do not contain content.',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'A heading with no content or inaccessible text prevent screen reader users from ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if any form fields have multiple label elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if any form fields have multiple label elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'No form fields have multiple labels',
18
- /** Title of an accesibility audit that checks if any form fields have multiple label elements. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if any form fields have multiple label elements. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Form fields have multiple labels',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Form fields with multiple labels can be confusingly announced by assistive technologies like screen readers which use either the first, the last, or all of the labels. [Learn how to use form labels](https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all `<frame>` and `<iframe>` elements on the page have a title HTML attribute to describe their contents. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all `<frame>` and `<iframe>` elements on the page have a title HTML attribute to describe their contents. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`<frame>` or `<iframe>` elements have a title',
18
- /** Title of an accesibility audit that evaluates if all `<frame>` and `<iframe>` elements on the page have a title HTML attribute to describe their contents. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all `<frame>` and `<iframe>` elements on the page have a title HTML attribute to describe their contents. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`<frame>` or `<iframe>` elements do not have a title',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Screen reader users rely on frame titles to describe the contents of frames. ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if heading elements (<h1>, <h2>, etc) appear in numeric order and only ever increase in steps of 1. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if heading elements (<h1>, <h2>, etc) appear in numeric order and only ever increase in steps of 1. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Heading elements appear in a sequentially-descending order',
18
- /** Title of an accesibility audit that checks if heading elements (<h1>, <h2>, etc) appear in numeric order and only ever increase in steps of 1. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if heading elements (<h1>, <h2>, etc) appear in numeric order and only ever increase in steps of 1. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Heading elements are not in a sequentially-descending order',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. [Learn more about heading order](https://dequeuniversity.com/rules/axe/4.10/heading-order).',
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if the root HTML tag has a lang attribute identifying the page's language. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if the root HTML tag has a lang attribute identifying the page's language. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`<html>` element has a `[lang]` attribute',
18
- /** Title of an accesibility audit that evaluates if the root HTML tag has a lang attribute identifying the page's language. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if the root HTML tag has a lang attribute identifying the page's language. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`<html>` element does not have a `[lang]` attribute',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'If a page doesn\'t specify a `lang` attribute, a screen reader assumes ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if the value for root HTML tag's lang attribute is a valid BCP 47 language. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if the value for root HTML tag's lang attribute is a valid BCP 47 language. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`<html>` element has a valid value for its `[lang]` attribute',
18
- /** Title of an accesibility audit that evaluates if the value for root HTML tag's lang attribute is a valid BCP 47 language. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if the value for root HTML tag's lang attribute is a valid BCP 47 language. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`<html>` element does not have a valid value for ' +
20
20
  'its `[lang]` attribute.',
21
21
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
@@ -14,10 +14,10 @@ import AxeAudit from './axe-audit.js';
14
14
  import * as i18n from '../../lib/i18n/i18n.js';
15
15
 
16
16
  const UIStrings = {
17
- /** Title of an accesibility audit that evaluates if the xml:lang attribute, if present, has the same base language as the `lang` attribute. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
+ /** Title of an accessibility audit that evaluates if the xml:lang attribute, if present, has the same base language as the `lang` attribute. This title is descriptive of the successful state and is shown to users when no user action is required. */
18
18
  title: '`<html>` element has an `[xml:lang]` attribute with the same base language as the ' +
19
19
  '`[lang]` attribute.',
20
- /** Title of an accesibility audit that evaluates if the xml:lang attribute, if present, has the same base language as the `lang` attribute. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
20
+ /** Title of an accessibility audit that evaluates if the xml:lang attribute, if present, has the same base language as the `lang` attribute. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
21
21
  failureTitle: '`<html>` element does not have an `[xml:lang]` attribute with the same base ' +
22
22
  'language as the `[lang]` attribute.',
23
23
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that checks if identical links have the same purpose. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that checks if identical links have the same purpose. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Identical links have the same purpose.',
18
- /** Title of an accesibility audit that checks if identical links have the same purpose. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that checks if identical links have the same purpose. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Identical links do not have the same purpose.',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Links with the same destination should have the same description, to help users ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all image elements have the alt HTML attribute to describe their contents. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all image elements have the alt HTML attribute to describe their contents. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Image elements have `[alt]` attributes',
18
- /** Title of an accesibility audit that evaluates if all image elements have the alt HTML attribute to describe their contents. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all image elements have the alt HTML attribute to describe their contents. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Image elements do not have `[alt]` attributes',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Informative elements should aim for short, descriptive alternate text. ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all image elements have the alt HTML attribute that is not redundant. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all image elements have the alt HTML attribute that is not redundant. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Image elements do not have `[alt]` attributes that are redundant text.',
18
- /** Title of an accesibility audit that evaluates if all image elements have the alt HTML attribute that is not redundant. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all image elements have the alt HTML attribute that is not redundant. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Image elements have `[alt]` attributes that are redundant text.',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Informative elements should aim for short, descriptive alternative text. ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all input buttons have discernible text. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all input buttons have discernible text. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Input buttons have discernible text.',
18
- /** Title of an accesibility audit that evaluates if all input buttons have discernible text. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all input buttons have discernible text. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Input buttons do not have discernible text.',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Adding discernable and accessible text to input buttons may help screen reader ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all input elements of type image have an alt HTML attribute to describe their contents. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all input elements of type image have an alt HTML attribute to describe their contents. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: '`<input type="image">` elements have `[alt]` text',
18
- /** Title of an accesibility audit that evaluates if all input elements of type image have an alt HTML attribute to describe their contents. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all input elements of type image have an alt HTML attribute to describe their contents. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: '`<input type="image">` elements do not have `[alt]` text',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'When an image is being used as an `<input>` button, providing alternative ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if elements labeled through their content have their visible text as part of their accessible name. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if elements labeled through their content have their visible text as part of their accessible name. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Elements with visible text labels have matching accessible names.',
18
- /** Title of an accesibility audit that evaluates if elements labeled through their content have their visible text as part of their accessible name. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if elements labeled through their content have their visible text as part of their accessible name. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Elements with visible text labels do not have matching accessible names.',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Visible text labels that do not match the accessible name can result in a ' +
@@ -13,9 +13,9 @@ import AxeAudit from './axe-audit.js';
13
13
  import * as i18n from '../../lib/i18n/i18n.js';
14
14
 
15
15
  const UIStrings = {
16
- /** Title of an accesibility audit that evaluates if all form elements have corresponding label elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
16
+ /** Title of an accessibility audit that evaluates if all form elements have corresponding label elements. This title is descriptive of the successful state and is shown to users when no user action is required. */
17
17
  title: 'Form elements have associated labels',
18
- /** Title of an accesibility audit that evaluates if all form elements have corresponding label elements. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
18
+ /** Title of an accessibility audit that evaluates if all form elements have corresponding label elements. This title is descriptive of the failing state and is shown to users when there is a failure that needs to be addressed. */
19
19
  failureTitle: 'Form elements do not have associated labels',
20
20
  /** Description of a Lighthouse audit that tells the user *why* they should try to pass. This is displayed after a user expands the section to see more. No character length limits. The last sentence starting with 'Learn' becomes link text to additional documentation. */
21
21
  description: 'Labels ensure that form controls are announced properly by assistive ' +