lighthouse
Version:
Automated auditing, performance metrics, and best practices for the web.
44 lines (37 loc) • 1.89 kB
JavaScript
/**
* @license
* Copyright 2019 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @fileoverview Ensures every `id` attribute value used in ARIA and in labels is unique.
* See base class in axe-audit.js for audit() implementation.
*/
import AxeAudit from './axe-audit.js';
import * as i18n from '../../lib/i18n/i18n.js';
const UIStrings = {
/** 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. */
title: 'ARIA IDs are unique',
/** 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. */
failureTitle: 'ARIA IDs are not unique',
/** 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. */
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.11/duplicate-id-aria).',
};
const str_ = i18n.createIcuMessageFn(import.meta.url, UIStrings);
class DuplicateIdAria extends AxeAudit {
/**
* @return {LH.Audit.Meta}
*/
static get meta() {
return {
id: 'duplicate-id-aria',
title: str_(UIStrings.title),
failureTitle: str_(UIStrings.failureTitle),
description: str_(UIStrings.description),
scoreDisplayMode: AxeAudit.SCORING_MODES.INFORMATIVE,
requiredArtifacts: ['Accessibility'],
};
}
}
export default DuplicateIdAria;
export {UIStrings};