UNPKG

chrome-devtools-frontend

Version:
794 lines 206 kB
{ "core/audits/accessibility/accesskeys.js | description": { "message": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more about access keys](https://dequeuniversity.com/rules/axe/4.7/accesskeys)." }, "core/audits/accessibility/accesskeys.js | failureTitle": { "message": "`[accesskey]` values are not unique" }, "core/audits/accessibility/accesskeys.js | title": { "message": "`[accesskey]` values are unique" }, "core/audits/accessibility/aria-allowed-attr.js | description": { "message": "Each ARIA `role` supports a specific subset of `aria-*` attributes. Mismatching these invalidates the `aria-*` attributes. [Learn how to match ARIA attributes to their roles](https://dequeuniversity.com/rules/axe/4.7/aria-allowed-attr)." }, "core/audits/accessibility/aria-allowed-attr.js | failureTitle": { "message": "`[aria-*]` attributes do not match their roles" }, "core/audits/accessibility/aria-allowed-attr.js | title": { "message": "`[aria-*]` attributes match their roles" }, "core/audits/accessibility/aria-command-name.js | description": { "message": "When an element 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 how to make command elements more accessible](https://dequeuniversity.com/rules/axe/4.7/aria-command-name)." }, "core/audits/accessibility/aria-command-name.js | failureTitle": { "message": "`button`, `link` and `menuitem` elements do not have accessible names." }, "core/audits/accessibility/aria-command-name.js | title": { "message": "`button`, `link` and `menuitem` elements have accessible names" }, "core/audits/accessibility/aria-hidden-body.js | description": { "message": "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.7/aria-hidden-body)." }, "core/audits/accessibility/aria-hidden-body.js | failureTitle": { "message": "`[aria-hidden=\"true\"]` is present on the document `<body>`" }, "core/audits/accessibility/aria-hidden-body.js | title": { "message": "`[aria-hidden=\"true\"]` is not present on the document `<body>`" }, "core/audits/accessibility/aria-hidden-focus.js | description": { "message": "Focusable descendants 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.7/aria-hidden-focus)." }, "core/audits/accessibility/aria-hidden-focus.js | failureTitle": { "message": "`[aria-hidden=\"true\"]` elements contain focusable descendents" }, "core/audits/accessibility/aria-hidden-focus.js | title": { "message": "`[aria-hidden=\"true\"]` elements do not contain focusable descendents" }, "core/audits/accessibility/aria-input-field-name.js | description": { "message": "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.7/aria-input-field-name)." }, "core/audits/accessibility/aria-input-field-name.js | failureTitle": { "message": "ARIA input fields do not have accessible names" }, "core/audits/accessibility/aria-input-field-name.js | title": { "message": "ARIA input fields have accessible names" }, "core/audits/accessibility/aria-meter-name.js | description": { "message": "When a meter element 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 how to name `meter` elements](https://dequeuniversity.com/rules/axe/4.7/aria-meter-name)." }, "core/audits/accessibility/aria-meter-name.js | failureTitle": { "message": "ARIA `meter` elements do not have accessible names." }, "core/audits/accessibility/aria-meter-name.js | title": { "message": "ARIA `meter` elements have accessible names" }, "core/audits/accessibility/aria-progressbar-name.js | description": { "message": "When a `progressbar` element 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 how to label `progressbar` elements](https://dequeuniversity.com/rules/axe/4.7/aria-progressbar-name)." }, "core/audits/accessibility/aria-progressbar-name.js | failureTitle": { "message": "ARIA `progressbar` elements do not have accessible names." }, "core/audits/accessibility/aria-progressbar-name.js | title": { "message": "ARIA `progressbar` elements have accessible names" }, "core/audits/accessibility/aria-required-attr.js | description": { "message": "Some ARIA roles have required attributes that describe the state of the element to screen readers. [Learn more about roles and required attributes](https://dequeuniversity.com/rules/axe/4.7/aria-required-attr)." }, "core/audits/accessibility/aria-required-attr.js | failureTitle": { "message": "`[role]`s do not have all required `[aria-*]` attributes" }, "core/audits/accessibility/aria-required-attr.js | title": { "message": "`[role]`s have all required `[aria-*]` attributes" }, "core/audits/accessibility/aria-required-children.js | description": { "message": "Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. [Learn more about roles and required children elements](https://dequeuniversity.com/rules/axe/4.7/aria-required-children)." }, "core/audits/accessibility/aria-required-children.js | failureTitle": { "message": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` are missing some or all of those required children." }, "core/audits/accessibility/aria-required-children.js | title": { "message": "Elements with an ARIA `[role]` that require children to contain a specific `[role]` have all required children." }, "core/audits/accessibility/aria-required-parent.js | description": { "message": "Some ARIA child roles must be contained by specific parent roles to properly perform their intended accessibility functions. [Learn more about ARIA roles and required parent element](https://dequeuniversity.com/rules/axe/4.7/aria-required-parent)." }, "core/audits/accessibility/aria-required-parent.js | failureTitle": { "message": "`[role]`s are not contained by their required parent element" }, "core/audits/accessibility/aria-required-parent.js | title": { "message": "`[role]`s are contained by their required parent element" }, "core/audits/accessibility/aria-roles.js | description": { "message": "ARIA roles must have valid values in order to perform their intended accessibility functions. [Learn more about valid ARIA roles](https://dequeuniversity.com/rules/axe/4.7/aria-roles)." }, "core/audits/accessibility/aria-roles.js | failureTitle": { "message": "`[role]` values are not valid" }, "core/audits/accessibility/aria-roles.js | title": { "message": "`[role]` values are valid" }, "core/audits/accessibility/aria-toggle-field-name.js | description": { "message": "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.7/aria-toggle-field-name)." }, "core/audits/accessibility/aria-toggle-field-name.js | failureTitle": { "message": "ARIA toggle fields do not have accessible names" }, "core/audits/accessibility/aria-toggle-field-name.js | title": { "message": "ARIA toggle fields have accessible names" }, "core/audits/accessibility/aria-tooltip-name.js | description": { "message": "When a tooltip element 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 how to name `tooltip` elements](https://dequeuniversity.com/rules/axe/4.7/aria-tooltip-name)." }, "core/audits/accessibility/aria-tooltip-name.js | failureTitle": { "message": "ARIA `tooltip` elements do not have accessible names." }, "core/audits/accessibility/aria-tooltip-name.js | title": { "message": "ARIA `tooltip` elements have accessible names" }, "core/audits/accessibility/aria-treeitem-name.js | description": { "message": "When a `treeitem` element 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 labelling `treeitem` elements](https://dequeuniversity.com/rules/axe/4.7/aria-treeitem-name)." }, "core/audits/accessibility/aria-treeitem-name.js | failureTitle": { "message": "ARIA `treeitem` elements do not have accessible names." }, "core/audits/accessibility/aria-treeitem-name.js | title": { "message": "ARIA `treeitem` elements have accessible names" }, "core/audits/accessibility/aria-valid-attr-value.js | description": { "message": "Assistive technologies, such as screen readers, can't interpret ARIA attributes with invalid values. [Learn more about valid values for ARIA attributes](https://dequeuniversity.com/rules/axe/4.7/aria-valid-attr-value)." }, "core/audits/accessibility/aria-valid-attr-value.js | failureTitle": { "message": "`[aria-*]` attributes do not have valid values" }, "core/audits/accessibility/aria-valid-attr-value.js | title": { "message": "`[aria-*]` attributes have valid values" }, "core/audits/accessibility/aria-valid-attr.js | description": { "message": "Assistive technologies, such as screen readers, can't interpret ARIA attributes with invalid names. [Learn more about valid ARIA attributes](https://dequeuniversity.com/rules/axe/4.7/aria-valid-attr)." }, "core/audits/accessibility/aria-valid-attr.js | failureTitle": { "message": "`[aria-*]` attributes are not valid or misspelled" }, "core/audits/accessibility/aria-valid-attr.js | title": { "message": "`[aria-*]` attributes are valid and not misspelled" }, "core/audits/accessibility/axe-audit.js | failingElementsHeader": { "message": "Failing elements" }, "core/audits/accessibility/button-name.js | description": { "message": "When a button doesn't have an accessible name, screen readers announce it as 'button', making it unusable for users who rely on screen readers. [Learn how to make buttons more accessible](https://dequeuniversity.com/rules/axe/4.7/button-name)." }, "core/audits/accessibility/button-name.js | failureTitle": { "message": "Buttons do not have an accessible name" }, "core/audits/accessibility/button-name.js | title": { "message": "Buttons have an accessible name" }, "core/audits/accessibility/bypass.js | description": { "message": "Adding ways to bypass repetitive content lets keyboard users navigate the page more efficiently. [Learn more about bypass blocks](https://dequeuniversity.com/rules/axe/4.7/bypass)." }, "core/audits/accessibility/bypass.js | failureTitle": { "message": "The page does not contain a heading, skip link or landmark region" }, "core/audits/accessibility/bypass.js | title": { "message": "The page contains a heading, skip link or landmark region" }, "core/audits/accessibility/color-contrast.js | description": { "message": "Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient colour contrast](https://dequeuniversity.com/rules/axe/4.7/color-contrast)." }, "core/audits/accessibility/color-contrast.js | failureTitle": { "message": "Background and foreground colours do not have a sufficient contrast ratio." }, "core/audits/accessibility/color-contrast.js | title": { "message": "Background and foreground colours have a sufficient contrast ratio" }, "core/audits/accessibility/definition-list.js | description": { "message": "When definition lists are not properly marked up, screen readers may produce confusing or inaccurate output. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.7/definition-list)." }, "core/audits/accessibility/definition-list.js | failureTitle": { "message": "`<dl>`'s do not contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements." }, "core/audits/accessibility/definition-list.js | title": { "message": "`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements." }, "core/audits/accessibility/dlitem.js | description": { "message": "Definition list items (`<dt>` and `<dd>`) must be wrapped in a parent `<dl>` element to ensure that screen readers can properly announce them. [Learn how to structure definition lists correctly](https://dequeuniversity.com/rules/axe/4.7/dlitem)." }, "core/audits/accessibility/dlitem.js | failureTitle": { "message": "Definition list items are not wrapped in `<dl>` elements" }, "core/audits/accessibility/dlitem.js | title": { "message": "Definition list items are wrapped in `<dl>` elements" }, "core/audits/accessibility/document-title.js | description": { "message": "The title gives screen reader users an overview of the page, and search engine users rely on it heavily to determine if a page is relevant to their search. [Learn more about document titles](https://dequeuniversity.com/rules/axe/4.7/document-title)." }, "core/audits/accessibility/document-title.js | failureTitle": { "message": "Document doesn't have a `<title>` element" }, "core/audits/accessibility/document-title.js | title": { "message": "Document has a `<title>` element" }, "core/audits/accessibility/duplicate-id-active.js | description": { "message": "All focusable elements must have a unique `id` to ensure that they're visible to assistive technologies. [Learn how to fix duplicate `id`s](https://dequeuniversity.com/rules/axe/4.7/duplicate-id-active)." }, "core/audits/accessibility/duplicate-id-active.js | failureTitle": { "message": "`[id]` attributes on active, focusable elements are not unique" }, "core/audits/accessibility/duplicate-id-active.js | title": { "message": "`[id]` attributes on active, focusable elements are unique" }, "core/audits/accessibility/duplicate-id-aria.js | description": { "message": "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.7/duplicate-id-aria)." }, "core/audits/accessibility/duplicate-id-aria.js | failureTitle": { "message": "ARIA IDs are not unique" }, "core/audits/accessibility/duplicate-id-aria.js | title": { "message": "ARIA IDs are unique" }, "core/audits/accessibility/form-field-multiple-labels.js | description": { "message": "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.7/form-field-multiple-labels)." }, "core/audits/accessibility/form-field-multiple-labels.js | failureTitle": { "message": "Form fields have multiple labels" }, "core/audits/accessibility/form-field-multiple-labels.js | title": { "message": "No form fields have multiple labels" }, "core/audits/accessibility/frame-title.js | description": { "message": "Screen reader users rely on frame titles to describe the contents of frames. [Learn more about frame titles](https://dequeuniversity.com/rules/axe/4.7/frame-title)." }, "core/audits/accessibility/frame-title.js | failureTitle": { "message": "`<frame>` or `<iframe>` elements do not have a title" }, "core/audits/accessibility/frame-title.js | title": { "message": "`<frame>` or `<iframe>` elements have a title" }, "core/audits/accessibility/heading-order.js | description": { "message": "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.7/heading-order)." }, "core/audits/accessibility/heading-order.js | failureTitle": { "message": "Heading elements are not in a sequentially-descending order" }, "core/audits/accessibility/heading-order.js | title": { "message": "Heading elements appear in a sequentially-descending order" }, "core/audits/accessibility/html-has-lang.js | description": { "message": "If a page doesn't specify a `lang` attribute, a screen reader assumes that the page is in the default language that the user chose when setting up the screen reader. If the page isn't actually in the default language, then the screen reader might not announce the page's text correctly. [Learn more about the `lang` attribute](https://dequeuniversity.com/rules/axe/4.7/html-has-lang)." }, "core/audits/accessibility/html-has-lang.js | failureTitle": { "message": "`<html>` element does not have a `[lang]` attribute" }, "core/audits/accessibility/html-has-lang.js | title": { "message": "`<html>` element has a `[lang]` attribute" }, "core/audits/accessibility/html-lang-valid.js | description": { "message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) helps screen readers announce text properly. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.7/html-lang-valid)." }, "core/audits/accessibility/html-lang-valid.js | failureTitle": { "message": "`<html>` element does not have a valid value for its `[lang]` attribute." }, "core/audits/accessibility/html-lang-valid.js | title": { "message": "`<html>` element has a valid value for its `[lang]` attribute" }, "core/audits/accessibility/image-alt.js | description": { "message": "Informative elements should aim for short, descriptive alternative text. Decorative elements can be ignored with an empty alt attribute. [Learn more about the `alt` attribute](https://dequeuniversity.com/rules/axe/4.7/image-alt)." }, "core/audits/accessibility/image-alt.js | failureTitle": { "message": "Image elements do not have `[alt]` attributes" }, "core/audits/accessibility/image-alt.js | title": { "message": "Image elements have `[alt]` attributes" }, "core/audits/accessibility/input-image-alt.js | description": { "message": "When an image is being used as an `<input>` button, providing alternative text can help screen reader users understand the purpose of the button. [Learn about input image alt text](https://dequeuniversity.com/rules/axe/4.7/input-image-alt)." }, "core/audits/accessibility/input-image-alt.js | failureTitle": { "message": "`<input type=\"image\">` elements do not have `[alt]` text" }, "core/audits/accessibility/input-image-alt.js | title": { "message": "`<input type=\"image\">` elements have `[alt]` text" }, "core/audits/accessibility/label.js | description": { "message": "Labels ensure that form controls are announced properly by assistive technologies, such as screen readers. [Learn more about form element labels](https://dequeuniversity.com/rules/axe/4.7/label)." }, "core/audits/accessibility/label.js | failureTitle": { "message": "Form elements do not have associated labels" }, "core/audits/accessibility/label.js | title": { "message": "Form elements have associated labels" }, "core/audits/accessibility/link-name.js | description": { "message": "Link text (and alternative text for images, when used as links) that is discernible, unique and focusable improves the navigation experience for screen reader users. [Learn how to make links accessible](https://dequeuniversity.com/rules/axe/4.7/link-name)." }, "core/audits/accessibility/link-name.js | failureTitle": { "message": "Links do not have a discernible name" }, "core/audits/accessibility/link-name.js | title": { "message": "Links have a discernible name" }, "core/audits/accessibility/list.js | description": { "message": "Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.7/list)." }, "core/audits/accessibility/list.js | failureTitle": { "message": "Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)." }, "core/audits/accessibility/list.js | title": { "message": "Lists contain only `<li>` elements and script supporting elements (`<script>` and `<template>`)." }, "core/audits/accessibility/listitem.js | description": { "message": "Screen readers require list items (`<li>`) to be contained within a parent `<ul>`, `<ol>` or `<menu>` to be announced properly. [Learn more about proper list structure](https://dequeuniversity.com/rules/axe/4.7/listitem)." }, "core/audits/accessibility/listitem.js | failureTitle": { "message": "List items (`<li>`) are not contained within `<ul>`, `<ol>` or `<menu>` parent elements." }, "core/audits/accessibility/listitem.js | title": { "message": "List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements" }, "core/audits/accessibility/meta-refresh.js | description": { "message": "Users do not expect a page to refresh automatically and doing so will move focus back to the top of the page. This may create a frustrating or confusing experience. [Learn more about the refresh meta tag](https://dequeuniversity.com/rules/axe/4.7/meta-refresh)." }, "core/audits/accessibility/meta-refresh.js | failureTitle": { "message": "The document uses `<meta http-equiv=\"refresh\">`" }, "core/audits/accessibility/meta-refresh.js | title": { "message": "The document does not use `<meta http-equiv=\"refresh\">`" }, "core/audits/accessibility/meta-viewport.js | description": { "message": "Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. [Learn more about the viewport meta tag](https://dequeuniversity.com/rules/axe/4.7/meta-viewport)." }, "core/audits/accessibility/meta-viewport.js | failureTitle": { "message": "`[user-scalable=\"no\"]` is used in the `<meta name=\"viewport\">` element or the `[maximum-scale]` attribute is less than 5." }, "core/audits/accessibility/meta-viewport.js | title": { "message": "`[user-scalable=\"no\"]` is not used in the `<meta name=\"viewport\">` element and the `[maximum-scale]` attribute is not less than 5." }, "core/audits/accessibility/object-alt.js | description": { "message": "Screen readers cannot translate non-text content. Adding alternative text to `<object>` elements helps screen readers convey meaning to users. [Learn more about alt text for `object` elements](https://dequeuniversity.com/rules/axe/4.7/object-alt)." }, "core/audits/accessibility/object-alt.js | failureTitle": { "message": "`<object>` elements do not have alternative text" }, "core/audits/accessibility/object-alt.js | title": { "message": "`<object>` elements have alternative text" }, "core/audits/accessibility/tabindex.js | description": { "message": "A value greater than 0 implies an explicit navigation ordering. Although technically valid, this often creates frustrating experiences for users who rely on assistive technologies. [Learn more about the `tabindex` attribute](https://dequeuniversity.com/rules/axe/4.7/tabindex)." }, "core/audits/accessibility/tabindex.js | failureTitle": { "message": "Some elements have a `[tabindex]` value greater than 0" }, "core/audits/accessibility/tabindex.js | title": { "message": "No element has a `[tabindex]` value greater than 0" }, "core/audits/accessibility/td-headers-attr.js | description": { "message": "Screen readers have features to make navigating tables easier. Ensuring that`<td>` cells using the `[headers]` attribute only refer to other cells in the same table may improve the experience for screen reader users. [Learn more about the `headers` attribute](https://dequeuniversity.com/rules/axe/4.7/td-headers-attr)." }, "core/audits/accessibility/td-headers-attr.js | failureTitle": { "message": "Cells in a `<table>` element that use the `[headers]` attribute refer to an element `id` not found within the same table." }, "core/audits/accessibility/td-headers-attr.js | title": { "message": "Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table." }, "core/audits/accessibility/th-has-data-cells.js | description": { "message": "Screen readers have features to make navigating tables easier. Ensuring that table headers always refer to some set of cells may improve the experience for screen reader users. [Learn more about table headers](https://dequeuniversity.com/rules/axe/4.7/th-has-data-cells)." }, "core/audits/accessibility/th-has-data-cells.js | failureTitle": { "message": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` do not have data cells they describe." }, "core/audits/accessibility/th-has-data-cells.js | title": { "message": "`<th>` elements and elements with `[role=\"columnheader\"/\"rowheader\"]` have data cells they describe." }, "core/audits/accessibility/valid-lang.js | description": { "message": "Specifying a valid [BCP 47 language](https://www.w3.org/International/questions/qa-choosing-language-tags#question) on elements helps ensure that text is pronounced correctly by a screen reader. [Learn how to use the `lang` attribute](https://dequeuniversity.com/rules/axe/4.7/valid-lang)." }, "core/audits/accessibility/valid-lang.js | failureTitle": { "message": "`[lang]` attributes do not have a valid value" }, "core/audits/accessibility/valid-lang.js | title": { "message": "`[lang]` attributes have a valid value" }, "core/audits/accessibility/video-caption.js | description": { "message": "When a video provides a caption it is easier for deaf and hearing-impaired users to access its information. [Learn more about video captions](https://dequeuniversity.com/rules/axe/4.7/video-caption)." }, "core/audits/accessibility/video-caption.js | failureTitle": { "message": "`<video>` elements do not contain a `<track>` element with `[kind=\"captions\"]`." }, "core/audits/accessibility/video-caption.js | title": { "message": "`<video>` elements contain a `<track>` element with `[kind=\"captions\"]`" }, "core/audits/autocomplete.js | columnCurrent": { "message": "Current value" }, "core/audits/autocomplete.js | columnSuggestions": { "message": "Suggested token" }, "core/audits/autocomplete.js | description": { "message": "`autocomplete` helps users submit forms more quickly. To reduce user effort, consider enabling by setting the `autocomplete` attribute to a valid value. [Learn more about `autocomplete` in forms](https://developers.google.com/web/fundamentals/design-and-ux/input/forms#use_metadata_to_enable_auto-complete)" }, "core/audits/autocomplete.js | failureTitle": { "message": "`<input>` elements do not have correct `autocomplete` attributes" }, "core/audits/autocomplete.js | manualReview": { "message": "Requires manual review" }, "core/audits/autocomplete.js | reviewOrder": { "message": "Review order of tokens" }, "core/audits/autocomplete.js | title": { "message": "`<input>` elements correctly use `autocomplete`" }, "core/audits/autocomplete.js | warningInvalid": { "message": "`autocomplete` token(s): '{token}' is invalid in {snippet}" }, "core/audits/autocomplete.js | warningOrder": { "message": "Review order of tokens: '{tokens}' in {snippet}" }, "core/audits/bf-cache.js | actionableFailureType": { "message": "Actionable" }, "core/audits/bf-cache.js | description": { "message": "Many navigations are performed by going back to a previous page, or forwards again. The back-forward cache (bfcache) can speed up these return navigations. [Learn more about the bfcache](https://developer.chrome.com/docs/lighthouse/performance/bf-cache/)" }, "core/audits/bf-cache.js | displayValue": { "message": "{itemCount,plural, =1{1 failure reason}other{# failure reasons}}" }, "core/audits/bf-cache.js | failureReasonColumn": { "message": "Reason for failure" }, "core/audits/bf-cache.js | failureTitle": { "message": "Page prevented back-forward cache restoration" }, "core/audits/bf-cache.js | failureTypeColumn": { "message": "Failure type" }, "core/audits/bf-cache.js | notActionableFailureType": { "message": "Not actionable" }, "core/audits/bf-cache.js | supportPendingFailureType": { "message": "Pending browser support" }, "core/audits/bf-cache.js | title": { "message": "Page didn't prevent back-forward cache restoration" }, "core/audits/bootup-time.js | chromeExtensionsWarning": { "message": "Chrome extensions negatively affected this page's load performance. Try auditing the page in incognito mode or from a Chrome profile without extensions." }, "core/audits/bootup-time.js | columnScriptEval": { "message": "Script Evaluation" }, "core/audits/bootup-time.js | columnScriptParse": { "message": "Script Parse" }, "core/audits/bootup-time.js | columnTotal": { "message": "Total CPU Time" }, "core/audits/bootup-time.js | description": { "message": "Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. [Learn how to reduce Javascript execution time](https://developer.chrome.com/docs/lighthouse/performance/bootup-time/)." }, "core/audits/bootup-time.js | failureTitle": { "message": "Reduce JavaScript execution time" }, "core/audits/bootup-time.js | title": { "message": "JavaScript execution time" }, "core/audits/byte-efficiency/duplicated-javascript.js | description": { "message": "Remove large, duplicate JavaScript modules from bundles to reduce unnecessary bytes consumed by network activity. " }, "core/audits/byte-efficiency/duplicated-javascript.js | title": { "message": "Remove duplicate modules in JavaScript bundles" }, "core/audits/byte-efficiency/efficient-animated-content.js | description": { "message": "Large GIFs are inefficient for delivering animated content. Consider using MPEG4/WebM videos for animations and PNG/WebP for static images instead of GIF to save network bytes. [Learn more about efficient video formats](https://developer.chrome.com/docs/lighthouse/performance/efficient-animated-content/)" }, "core/audits/byte-efficiency/efficient-animated-content.js | title": { "message": "Use video formats for animated content" }, "core/audits/byte-efficiency/legacy-javascript.js | description": { "message": "Polyfills and transforms enable legacy browsers to use new JavaScript features. However, many aren't necessary for modern browsers. For your bundled JavaScript, adopt a modern script deployment strategy using module/nomodule feature detection to reduce the amount of code delivered to modern browsers, while retaining support for legacy browsers. [Learn how to use modern JavaScript](https://web.dev/publish-modern-javascript/)" }, "core/audits/byte-efficiency/legacy-javascript.js | title": { "message": "Avoid serving legacy JavaScript to modern browsers" }, "core/audits/byte-efficiency/modern-image-formats.js | description": { "message": "Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/)." }, "core/audits/byte-efficiency/modern-image-formats.js | title": { "message": "Serve images in next-gen formats" }, "core/audits/byte-efficiency/offscreen-images.js | description": { "message": "Consider lazy loading offscreen and hidden images after all critical resources have finished loading to lower Time to Interactive. [Learn how to defer offscreen images](https://developer.chrome.com/docs/lighthouse/performance/offscreen-images/)." }, "core/audits/byte-efficiency/offscreen-images.js | title": { "message": "Defer off-screen images" }, "core/audits/byte-efficiency/render-blocking-resources.js | description": { "message": "Resources are blocking the first paint of your page. Consider delivering critical JS/CSS inline and deferring all non-critical JS/styles. [Learn how to eliminate render-blocking resources](https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources/)." }, "core/audits/byte-efficiency/render-blocking-resources.js | title": { "message": "Eliminate render-blocking resources" }, "core/audits/byte-efficiency/total-byte-weight.js | description": { "message": "Large network payloads cost users real money and are highly correlated with long load times. [Learn how to reduce payload sizes](https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight/)." }, "core/audits/byte-efficiency/total-byte-weight.js | displayValue": { "message": "Total size was {totalBytes, number, bytes} KiB" }, "core/audits/byte-efficiency/total-byte-weight.js | failureTitle": { "message": "Avoid enormous network payloads" }, "core/audits/byte-efficiency/total-byte-weight.js | title": { "message": "Avoids enormous network payloads" }, "core/audits/byte-efficiency/unminified-css.js | description": { "message": "Minifying CSS files can reduce network payload sizes. [Learn how to minify CSS](https://developer.chrome.com/docs/lighthouse/performance/unminified-css/)." }, "core/audits/byte-efficiency/unminified-css.js | title": { "message": "Minify CSS" }, "core/audits/byte-efficiency/unminified-javascript.js | description": { "message": "Minifying JavaScript files can reduce payload sizes and script parse time. [Learn how to minify JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript/)." }, "core/audits/byte-efficiency/unminified-javascript.js | title": { "message": "Minify JavaScript" }, "core/audits/byte-efficiency/unused-css-rules.js | description": { "message": "Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/)." }, "core/audits/byte-efficiency/unused-css-rules.js | title": { "message": "Reduce unused CSS" }, "core/audits/byte-efficiency/unused-javascript.js | description": { "message": "Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/)." }, "core/audits/byte-efficiency/unused-javascript.js | title": { "message": "Reduce unused JavaScript" }, "core/audits/byte-efficiency/uses-long-cache-ttl.js | description": { "message": "A long cache lifetime can speed up repeat visits to your page. [Learn more about efficient cache policies](https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl/)." }, "core/audits/byte-efficiency/uses-long-cache-ttl.js | displayValue": { "message": "{itemCount,plural, =1{1 resource found}other{# resources found}}" }, "core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": { "message": "Serve static assets with an efficient cache policy" }, "core/audits/byte-efficiency/uses-long-cache-ttl.js | title": { "message": "Uses efficient cache policy on static assets" }, "core/audits/byte-efficiency/uses-optimized-images.js | description": { "message": "Optimised images load faster and consume less mobile data. [Learn how to efficiently encode images](https://developer.chrome.com/docs/lighthouse/performance/uses-optimized-images/)." }, "core/audits/byte-efficiency/uses-optimized-images.js | title": { "message": "Efficiently encode images" }, "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnActualDimensions": { "message": "Actual dimensions" }, "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | columnDisplayedDimensions": { "message": "Displayed dimensions" }, "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | failureTitle": { "message": "Images were larger than their displayed size" }, "core/audits/byte-efficiency/uses-responsive-images-snapshot.js | title": { "message": "Images were appropriate for their displayed size" }, "core/audits/byte-efficiency/uses-responsive-images.js | description": { "message": "Serve images that are appropriately-sized to save mobile data and improve load time. [Learn how to size images](https://developer.chrome.com/docs/lighthouse/performance/uses-responsive-images/)." }, "core/audits/byte-efficiency/uses-responsive-images.js | title": { "message": "Properly size images" }, "core/audits/byte-efficiency/uses-text-compression.js | description": { "message": "Text-based resources should be served with compression (gzip, deflate or brotli) to minimise total network bytes. [Learn more about text compression](https://developer.chrome.com/docs/lighthouse/performance/uses-text-compression/)." }, "core/audits/byte-efficiency/uses-text-compression.js | title": { "message": "Enable text compression" }, "core/audits/content-width.js | description": { "message": "If the width of your app's content doesn't match the width of the viewport, your app might not be optimised for mobile screens. [Learn how to size content for the viewport](https://developer.chrome.com/docs/lighthouse/pwa/content-width/)." }, "core/audits/content-width.js | explanation": { "message": "The viewport size of {innerWidth}px does not match the window size of {outerWidth}px." }, "core/audits/content-width.js | failureTitle": { "message": "Content is not sized correctly for the viewport" }, "core/audits/content-width.js | title": { "message": "Content is sized correctly for the viewport" }, "core/audits/critical-request-chains.js | description": { "message": "The critical request chains below show you what resources are loaded with a high priority. Consider reducing the length of chains, reducing the download size of resources or deferring the download of unnecessary resources to improve page load. [Learn how to avoid chaining critical requests](https://developer.chrome.com/docs/lighthouse/performance/critical-request-chains/)." }, "core/audits/critical-request-chains.js | displayValue": { "message": "{itemCount,plural, =1{1 chain found}other{# chains found}}" }, "core/audits/critical-request-chains.js | title": { "message": "Avoid chaining critical requests" }, "core/audits/csp-xss.js | columnDirective": { "message": "Directive" }, "core/audits/csp-xss.js | columnSeverity": { "message": "Severity" }, "core/audits/csp-xss.js | description": { "message": "A strong Content Security Policy (CSP) significantly reduces the risk of cross-site scripting (XSS) attacks. [Learn how to use a CSP to prevent XSS](https://developer.chrome.com/docs/lighthouse/best-practices/csp-xss/)" }, "core/audits/csp-xss.js | itemSeveritySyntax": { "message": "Syntax" }, "core/audits/csp-xss.js | metaTagMessage": { "message": "The page contains a CSP defined in a <meta> tag. Consider moving the CSP to an HTTP header or defining another strict CSP in an HTTP header." }, "core/audits/csp-xss.js | noCsp": { "message": "No CSP found in enforcement mode" }, "core/audits/csp-xss.js | title": { "message": "Ensure CSP is effective against XSS attacks" }, "core/audits/deprecations.js | columnDeprecate": { "message": "Deprecation/Warning" }, "core/audits/deprecations.js | columnLine": { "message": "Line" }, "core/audits/deprecations.js | description": { "message": "Deprecated APIs will eventually be removed from the browser. [Learn more about deprecated APIs](https://developer.chrome.com/docs/lighthouse/best-practices/deprecations/)." }, "core/audits/deprecations.js | displayValue": { "message": "{itemCount,plural, =1{1 warning found}other{# warnings found}}" }, "core/audits/deprecations.js | failureTitle": { "message": "Uses deprecated APIs" }, "core/audits/deprecations.js | title": { "message": "Avoids deprecated APIs" }, "core/audits/dobetterweb/charset.js | description": { "message": "A character encoding declaration is required. It can be done with a `<meta>` tag in the first 1,024 bytes of the HTML or in the Content-Type HTTP response header. [Learn more about declaring the character encoding](https://developer.chrome.com/docs/lighthouse/best-practices/charset/)." }, "core/audits/dobetterweb/charset.js | failureTitle": { "message": "Charset declaration is missing or occurs too late in the HTML" }, "core/audits/dobetterweb/charset.js | title": { "message": "Properly defines charset" }, "core/audits/dobetterweb/doctype.js | description": { "message": "Specifying a DOCTYPE prevents the browser from switching to quirks mode. [Learn more about the doctype declaration](https://developer.chrome.com/docs/lighthouse/best-practices/doctype/)." }, "core/audits/dobetterweb/doctype.js | explanationBadDoctype": { "message": "Doctype name must be the string `html`" }, "core/audits/dobetterweb/doctype.js | explanationLimitedQuirks": { "message": "Document contains a `doctype` that triggers `limited-quirks-mode`" }, "core/audits/dobetterweb/doctype.js | explanationNoDoctype": { "message": "Document must contain a doctype" }, "core/audits/dobetterweb/doctype.js | explanationPublicId": { "message": "Expected publicId to be an empty string" }, "core/audits/dobetterweb/doctype.js | explanationSystemId": { "message": "Expected systemId to be an empty string" }, "core/audits/dobetterweb/doctype.js | explanationWrongDoctype": { "message": "Document contains a `doctype` that triggers `quirks-mode`" }, "core/audits/dobetterweb/doctype.js | failureTitle": { "message": "Page lacks the HTML doctype, thus triggering quirks mode" }, "core/audits/dobetterweb/doctype.js | title": { "message": "Page has the HTML doctype" }, "core/audits/dobetterweb/dom-size.js | columnStatistic": { "message": "Statistic" }, "core/audits/dobetterweb/dom-size.js | columnValue": { "message": "Value" }, "core/audits/dobetterweb/dom-size.js | description": { "message": "A large DOM will increase memory usage, cause longer [style calculations](https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations) and produce costly [layout reflows](https://developers.google.com/speed/articles/reflow). [Learn how to avoid an excessive DOM size](https://developer.chrome.com/docs/lighthouse/performance/dom-size/)." }, "core/audits/dobetterweb/dom-size.js | displayValue": { "message": "{itemCount,plural, =1{1 element}other{# elements}}" }, "core/audits/dobetterweb/dom-size.js | failureTitle": { "message": "Avoid an excessive DOM size" }, "core/audits/dobetterweb/dom-size.js | statisticDOMDepth": { "message": "Maximum DOM Depth" }, "core/audits/dobetterweb/dom-size.js | statisticDOMElements": { "message": "Total DOM Elements" }, "core/audits/dobetterweb/dom-size.js | statisticDOMWidth": { "message": "Maximum Child Elements" }, "core/audits/dobetterweb/dom-size.js | title": { "message": "Avoids an excessive DOM size" }, "core/audits/dobetterweb/geolocation-on-start.js | description": { "message": "Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to a user action instead. [Learn more about the geolocation permission](https://developer.chrome.com/docs/lighthouse/best-practices/geolocation-on-start/)." }, "core/audits/dobetterweb/geolocation-on-start.js | failureTitle": { "message": "Requests the geolocation permission on page load" }, "core/audits/dobetterweb/geolocation-on-start.js | title": { "message": "Avoids requesting the geolocation permission on page load" }, "core/audits/dobetterweb/inspector-issues.js | columnIssueType": { "message": "Issue type" }, "core/audits/dobetterweb/inspector-issues.js | description": { "message": "Issues logged to the `Issues` panel in Chrome DevTools indicate unresolved problems. They can come from network request failures, insufficient security controls and other browser concerns. Open up the Issues panel in Chrome DevTools for more details on each issue." }, "core/audits/dobetterweb/inspector-issues.js | failureTitle": { "message": "Issues were logged in the `Issues` panel in Chrome DevTools" }, "core/audits/dobetterweb/inspector-issues.js | issueTypeBlockedByResponse": { "message": "Blocked by cross-origin policy" }, "core/audits/dobetterweb/inspector-issues.js | issueTypeHeavyAds": { "message": "Heavy resource usage by ads" }, "core/audits/dobetterweb/inspector-issues.js | title": { "message": "No issues in the `Issues` panel in Chrome DevTools" }, "core/audits/dobetterweb/js-libraries.js | columnVersion": { "message": "Version" }, "core/audits/dobetterweb/js-libraries.js | description": { "message": "All front-end JavaScript libraries detected on the page. [Learn more about this JavaScript library detection diagnostic audit](https://developer.chrome.com/docs/lighthouse/best-practices/js-libraries/)." }, "core/audits/dobetterweb/js-libraries.js | title": { "message": "Detected JavaScript libraries" }, "core/audits/dobetterweb/no-document-write.js | description": { "message": "For users on slow connections, external scripts dynamically injected via `document.write()` can delay page load by tens of seconds. [Learn how to avoid document.write()](https://developer.chrome.com/docs/lighthouse/best-practices/no-document-write/)." }, "core/audits/dobetterweb/no-document-write.js | failureTitle": { "message": "Avoid `document.write()`" }, "core/audits/dobetterweb/no-document-write.js | title": { "message": "Avoids `document.write()`" }, "core/audits/dobetterweb/notification-on-start.js | description": { "message": "Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. [Learn more about responsibly getting permission for notifications](https://developer.chrome.com/docs/lighthouse/best-practices/notification-on-start/)." }, "core/audits/dobetterweb/notification-on-start.js | failureTitle": { "message": "Requests the notification permission on page load" }, "core/audits/dobetterweb/notification-on-start.js | title": { "message": "Avoids requesting the notification permission on page load" }, "core/audits/dobetterweb/paste-preventing-inputs.js | description": { "message": "Preventing input pasting is bad practice for the UX and weakens security by blocking password managers.[Learn more about user-friendly input fields](https://developer.chrome.com/docs/lighthouse/best-practices/paste-preventing-inputs/)." }, "core/audits/dobetterweb/paste-preventing-inputs.js | failureTitle": { "message": "Prevents users from pasting into input fields" }, "core/audits/dobetterweb/paste-preventing-inputs.js | title": { "message": "Allows users to paste into input fields" }, "core/audits/dobetterweb/uses-http2.js | columnProtocol": { "message": "Protocol" }, "core/audits/dobetterweb/uses-http2.js | description": { "message": "HTTP/2 offers many benefits over HTTP/1.1, including binary headers and multiplexing. [Learn more about HTTP/2](https://developer.chrome.com/docs/lighthouse/best-practices/uses-http2/)." }, "core/audits/dobetterweb/uses-http2.js | displayValue": { "message": "{itemCount,plural, =1{1 request not served via HTTP/2}other{# requests not served via HTTP/2}}" }, "core/audits/dobetterweb/uses-http2.js | title": { "message": "Use HTTP/2" }, "core/audits/dobetterweb/uses-passive-event-listeners.js | description": { "message": "Consider marking your touch and wheel event listeners as `passive` to improve your page's scroll performance. [Learn more about adopting passive event listeners](https://developer.chrome.com/docs/lighthouse/best-practices/uses-passive-event-listeners/)." }, "core/audits/dobetterweb/uses-passive-event-listeners.js | failureTitle": { "message": "Does not use passive listeners to improve scrolling performance" }, "core/audits/dobetterweb/uses-passive-event-listeners.js | title":