diff --git a/lighthouse-cli/test/cli/__snapshots__/index-test.js.snap b/lighthouse-cli/test/cli/__snapshots__/index-test.js.snap
index 1f34fbe163ea..19d1886f2778 100644
--- a/lighthouse-cli/test/cli/__snapshots__/index-test.js.snap
+++ b/lighthouse-cli/test/cli/__snapshots__/index-test.js.snap
@@ -129,6 +129,9 @@ Object {
Object {
"path": "manual/pwa-each-page-has-url",
},
+ Object {
+ "path": "accessibility/accesskeys",
+ },
Object {
"path": "accessibility/aria-allowed-attr",
},
@@ -231,9 +234,6 @@ Object {
Object {
"path": "accessibility/video-description",
},
- Object {
- "path": "accessibility/manual/accesskeys",
- },
Object {
"path": "accessibility/manual/custom-controls-labels",
},
@@ -376,6 +376,11 @@ Object {
"categories": Object {
"accessibility": Object {
"auditRefs": Array [
+ Object {
+ "group": "a11y-navigation",
+ "id": "accesskeys",
+ "weight": 3,
+ },
Object {
"group": "a11y-aria",
"id": "aria-allowed-attr",
@@ -412,17 +417,17 @@ Object {
"weight": 5,
},
Object {
- "group": "a11y-correct-attributes",
+ "group": "a11y-audio-video",
"id": "audio-caption",
"weight": 4,
},
Object {
- "group": "a11y-element-names",
+ "group": "a11y-names-labels",
"id": "button-name",
"weight": 10,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-navigation",
"id": "bypass",
"weight": 10,
},
@@ -432,27 +437,27 @@ Object {
"weight": 6,
},
Object {
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "definition-list",
"weight": 1,
},
Object {
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "dlitem",
"weight": 1,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "document-title",
"weight": 2,
},
Object {
- "group": "a11y-well-structured",
+ "group": "a11y-best-practices",
"id": "duplicate-id",
"weight": 5,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "frame-title",
"weight": 5,
},
@@ -467,67 +472,67 @@ Object {
"weight": 1,
},
Object {
- "group": "a11y-correct-attributes",
+ "group": "a11y-names-labels",
"id": "image-alt",
"weight": 8,
},
Object {
- "group": "a11y-correct-attributes",
+ "group": "a11y-names-labels",
"id": "input-image-alt",
"weight": 1,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "label",
"weight": 10,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-tables-lists",
"id": "layout-table",
"weight": 1,
},
Object {
- "group": "a11y-element-names",
+ "group": "a11y-names-labels",
"id": "link-name",
"weight": 9,
},
Object {
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "list",
"weight": 5,
},
Object {
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "listitem",
"weight": 4,
},
Object {
- "group": "a11y-meta",
+ "group": "a11y-best-practices",
"id": "meta-refresh",
"weight": 1,
},
Object {
- "group": "a11y-meta",
+ "group": "a11y-best-practices",
"id": "meta-viewport",
"weight": 3,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "object-alt",
"weight": 4,
},
Object {
- "group": "a11y-correct-attributes",
+ "group": "a11y-navigation",
"id": "tabindex",
"weight": 4,
},
Object {
- "group": "a11y-correct-attributes",
+ "group": "a11y-tables-lists",
"id": "td-headers-attr",
"weight": 1,
},
Object {
- "group": "a11y-correct-attributes",
+ "group": "a11y-tables-lists",
"id": "th-has-data-cells",
"weight": 1,
},
@@ -537,19 +542,15 @@ Object {
"weight": 1,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-audio-video",
"id": "video-caption",
"weight": 4,
},
Object {
- "group": "a11y-describe-contents",
+ "group": "a11y-audio-video",
"id": "video-description",
"weight": 3,
},
- Object {
- "id": "accesskeys",
- "weight": 0,
- },
Object {
"id": "logical-tab-order",
"weight": 0,
@@ -999,35 +1000,35 @@ Object {
"groups": Object {
"a11y-aria": Object {
"description": "These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.",
- "title": "ARIA Attributes Follow Best Practices",
- },
- "a11y-color-contrast": Object {
- "description": "These are opportunities to improve the legibility of your content.",
- "title": "Color Contrast Is Satisfactory",
+ "title": "ARIA",
},
- "a11y-correct-attributes": Object {
- "description": "These are opportunities to improve the configuration of your HTML elements.",
- "title": "Elements Use Attributes Correctly",
+ "a11y-audio-video": Object {
+ "description": "These are opportunities to provide alternative content for audio and video. This may improve the experience for users with hearing or vision impairments.",
+ "title": "Audio and video",
},
- "a11y-describe-contents": Object {
- "description": "These are opportunities to make your content easier to understand for a user of assistive technology, like a screen reader.",
- "title": "Elements Describe Contents Well",
+ "a11y-best-practices": Object {
+ "description": "These items highlight common accessibility best practices.",
+ "title": "Best practices",
},
- "a11y-element-names": Object {
- "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
- "title": "Elements Have Discernible Names",
+ "a11y-color-contrast": Object {
+ "description": "These are opportunities to improve the legibility of your content.",
+ "title": "Contrast",
},
"a11y-language": Object {
"description": "These are opportunities to improve the interpretation of your content by users in different locales.",
- "title": "Page Specifies Valid Language",
+ "title": "Internationalization and localization",
},
- "a11y-meta": Object {
- "description": "These are opportunities to improve the user experience of your site.",
- "title": "Meta Tags Used Properly",
+ "a11y-names-labels": Object {
+ "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
+ "title": "Names and labels",
+ },
+ "a11y-navigation": Object {
+ "description": "These are opportunities to improve keyboard navigation in your application.",
+ "title": "Navigation",
},
- "a11y-well-structured": Object {
- "description": "These are opportunities to make sure your HTML is appropriately structured.",
- "title": "Elements Are Well Structured",
+ "a11y-tables-lists": Object {
+ "description": "These are opportunities to to improve the experience of reading tabular or list data using assistive technology, like a screen reader.",
+ "title": "Tables and lists",
},
"diagnostics": Object {
"description": "More information about the performance of your application.",
@@ -1248,35 +1249,35 @@ Object {
"groups": Object {
"a11y-aria": Object {
"description": "These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.",
- "title": "ARIA Attributes Follow Best Practices",
- },
- "a11y-color-contrast": Object {
- "description": "These are opportunities to improve the legibility of your content.",
- "title": "Color Contrast Is Satisfactory",
+ "title": "ARIA",
},
- "a11y-correct-attributes": Object {
- "description": "These are opportunities to improve the configuration of your HTML elements.",
- "title": "Elements Use Attributes Correctly",
+ "a11y-audio-video": Object {
+ "description": "These are opportunities to provide alternative content for audio and video. This may improve the experience for users with hearing or vision impairments.",
+ "title": "Audio and video",
},
- "a11y-describe-contents": Object {
- "description": "These are opportunities to make your content easier to understand for a user of assistive technology, like a screen reader.",
- "title": "Elements Describe Contents Well",
+ "a11y-best-practices": Object {
+ "description": "These items highlight common accessibility best practices.",
+ "title": "Best practices",
},
- "a11y-element-names": Object {
- "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
- "title": "Elements Have Discernible Names",
+ "a11y-color-contrast": Object {
+ "description": "These are opportunities to improve the legibility of your content.",
+ "title": "Contrast",
},
"a11y-language": Object {
"description": "These are opportunities to improve the interpretation of your content by users in different locales.",
- "title": "Page Specifies Valid Language",
+ "title": "Internationalization and localization",
+ },
+ "a11y-names-labels": Object {
+ "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
+ "title": "Names and labels",
},
- "a11y-meta": Object {
- "description": "These are opportunities to improve the user experience of your site.",
- "title": "Meta Tags Used Properly",
+ "a11y-navigation": Object {
+ "description": "These are opportunities to improve keyboard navigation in your application.",
+ "title": "Navigation",
},
- "a11y-well-structured": Object {
- "description": "These are opportunities to make sure your HTML is appropriately structured.",
- "title": "Elements Are Well Structured",
+ "a11y-tables-lists": Object {
+ "description": "These are opportunities to to improve the experience of reading tabular or list data using assistive technology, like a screen reader.",
+ "title": "Tables and lists",
},
"diagnostics": Object {
"description": "More information about the performance of your application.",
diff --git a/lighthouse-cli/test/fixtures/a11y/a11y_tester.html b/lighthouse-cli/test/fixtures/a11y/a11y_tester.html
index cc7a20dbf5cd..4a8fbf988751 100644
--- a/lighthouse-cli/test/fixtures/a11y/a11y_tester.html
+++ b/lighthouse-cli/test/fixtures/a11y/a11y_tester.html
@@ -11,6 +11,11 @@
+ accesskeys
+
aria-allowed-attr
`) are contained within `
` or `` parent elements",
"description": "Title of an accesibility audit that evaluates if any list item elements do not have list parent elements. This title is descriptive of the successful state and is shown to users when no user action is required."
},
- "lighthouse-core/audits/accessibility/manual/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](https://dequeuniversity.com/rules/axe/3.1/accesskeys?application=lighthouse).",
- "description": "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. 'Learn More' becomes link text to additional documentation."
- },
- "lighthouse-core/audits/accessibility/manual/accesskeys.js | title": {
- "message": "`[accesskey]` values are unique",
- "description": "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."
- },
"lighthouse-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](https://dequeuniversity.com/rules/axe/3.1/meta-refresh?application=lighthouse).",
"description": "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. 'Learn More' becomes link text to additional documentation."
@@ -1028,12 +1032,28 @@
"description": "Description of the ARIA validity section within the Accessibility category. Within this section are audits with descriptive titles that highlight if whether all the aria- HTML attributes have been used properly."
},
"lighthouse-core/config/default-config.js | a11yAriaGroupTitle": {
- "message": "ARIA Attributes Follow Best Practices",
+ "message": "ARIA",
"description": "Title of the ARIA validity section within the Accessibility category. Within this section are audits with descriptive titles that highlight if whether all the aria- HTML attributes have been used properly."
},
+ "lighthouse-core/config/default-config.js | a11yAudioVideoGroupDescription": {
+ "message": "These are opportunities to provide alternative content for audio and video. This may improve the experience for users with hearing or vision impairments.",
+ "description": "Description of the navigation section within the Accessibility category. Within this section are audits with descriptive titles that highlight opportunities to provide alternative content for audio and video."
+ },
+ "lighthouse-core/config/default-config.js | a11yAudioVideoGroupTitle": {
+ "message": "Audio and video",
+ "description": "Title of the navigation section within the Accessibility category. Within this section are audits with descriptive titles that highlight opportunities to provide alternative content for audio and video."
+ },
+ "lighthouse-core/config/default-config.js | a11yBestPracticesGroupDescription": {
+ "message": "These items highlight common accessibility best practices.",
+ "description": "Description of the best practices section within the Accessibility category. Within this section are audits with descriptive titles that highlight common accessibility best practices."
+ },
+ "lighthouse-core/config/default-config.js | a11yBestPracticesGroupTitle": {
+ "message": "Best practices",
+ "description": "Title of the best practices section of the Accessibility category. Within this section are audits with descriptive titles that highlight common accessibility best practices."
+ },
"lighthouse-core/config/default-config.js | a11yCategoryDescription": {
"message": "These checks highlight opportunities to [improve the accessibility of your web app](https://developers.google.com/web/fundamentals/accessibility). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged.",
- "description": "Description of the Accessibility category. This is displayed at the top of a list of audits focused on making web content accessible to users with disabilities. No character length limits. 'improve the accessibility of your web app' becomes link text to additional documentation."
+ "description": "Description of the Accessibility category. This is displayed at the top of a list of audits focused on making web content accessible to all users. No character length limits. 'improve the accessibility of your web app' becomes link text to additional documentation."
},
"lighthouse-core/config/default-config.js | a11yCategoryManualDescription": {
"message": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://developers.google.com/web/fundamentals/accessibility/how-to-review).",
@@ -1041,63 +1061,47 @@
},
"lighthouse-core/config/default-config.js | a11yCategoryTitle": {
"message": "Accessibility",
- "description": "Title of the Accessibility category of audits. This section contains audits focused on making web content accessible to users with disabilities. Also used as a label of a score gauge; try to limit to 20 characters."
+ "description": "Title of the Accessibility category of audits. This section contains audits focused on making web content accessible to all users. Also used as a label of a score gauge; try to limit to 20 characters."
},
"lighthouse-core/config/default-config.js | a11yColorContrastGroupDescription": {
"message": "These are opportunities to improve the legibility of your content.",
"description": "Description of the color contrast section within the Accessibility category. Within this section are audits with descriptive titles that highlight the color and vision aspects of the page's accessibility that are passing or failing."
},
"lighthouse-core/config/default-config.js | a11yColorContrastGroupTitle": {
- "message": "Color Contrast Is Satisfactory",
+ "message": "Contrast",
"description": "Title of the color contrast section within the Accessibility category. Within this section are audits with descriptive titles that highlight the color and vision aspects of the page's accessibility that are passing or failing."
},
- "lighthouse-core/config/default-config.js | a11yCorrectAttributesGroupDescription": {
- "message": "These are opportunities to improve the configuration of your HTML elements.",
- "description": "Description of the HTML attribute validity section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the HTML attribute values on the page are used correctly."
- },
- "lighthouse-core/config/default-config.js | a11yCorrectAttributesGroupTitle": {
- "message": "Elements Use Attributes Correctly",
- "description": "Title of the HTML attribute validity section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the HTML attribute values on the page are used correctly. 'Elements' refers to HTML elements."
- },
- "lighthouse-core/config/default-config.js | a11yDescribeContentsGroupDescription": {
- "message": "These are opportunities to make your content easier to understand for a user of assistive technology, like a screen reader.",
- "description": "Description of the screen reader annotation section within the Accessibility category. Within this section are audits with descriptive titles that highlight the screen reader readability aspects of the page's accessibility that are passing or failing."
- },
- "lighthouse-core/config/default-config.js | a11yDescribeContentsGroupTitle": {
- "message": "Elements Describe Contents Well",
- "description": "Title of the screen reader annotation section within the Accessibility category. Within this section are audits with descriptive titles that highlight the screen reader readability aspects of the page's accessibility that are passing or failing. 'Elements' refers to HTML elements."
- },
- "lighthouse-core/config/default-config.js | a11yElementNamesGroupDescription": {
- "message": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
- "description": "Description of the HTML element naming section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the non-textual HTML elements on the page have names discernible by a screen reader."
- },
- "lighthouse-core/config/default-config.js | a11yElementNamesGroupTitle": {
- "message": "Elements Have Discernible Names",
- "description": "Title of the HTML element naming section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the non-textual HTML elements on the page have names discernible by a screen reader."
- },
"lighthouse-core/config/default-config.js | a11yLanguageGroupDescription": {
"message": "These are opportunities to improve the interpretation of your content by users in different locales.",
"description": "Description of the language section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the language has been annotated in the correct HTML attributes on the page."
},
"lighthouse-core/config/default-config.js | a11yLanguageGroupTitle": {
- "message": "Page Specifies Valid Language",
+ "message": "Internationalization and localization",
"description": "Title of the language section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the language has been annotated in the correct HTML attributes on the page."
},
- "lighthouse-core/config/default-config.js | a11yMetaGroupDescription": {
- "message": "These are opportunities to improve the user experience of your site.",
- "description": "Description of the meta tag section within the Accessibility category. Within this section are audits with descriptive titles that highlight if meta tags on the page have been used properly and if any important ones are missing."
+ "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupDescription": {
+ "message": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
+ "description": "Description of the HTML element naming section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the non-textual HTML elements on the page have names discernible by a screen reader."
+ },
+ "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupTitle": {
+ "message": "Names and labels",
+ "description": "Title of the HTML element naming section within the Accessibility category. Within this section are audits with descriptive titles that highlight if the non-textual HTML elements on the page have names discernible by a screen reader."
+ },
+ "lighthouse-core/config/default-config.js | a11yNavigationGroupDescription": {
+ "message": "These are opportunities to improve keyboard navigation in your application.",
+ "description": "Description of the navigation section within the Accessibility category. Within this section are audits with descriptive titles that highlight opportunities to improve keyboard navigation."
},
- "lighthouse-core/config/default-config.js | a11yMetaGroupTitle": {
- "message": "Meta Tags Used Properly",
- "description": "Title of the meta tag section within the Accessibility category. Within this section are audits with descriptive titles that highlight if meta tags on the page have been used properly and if any important ones are missing."
+ "lighthouse-core/config/default-config.js | a11yNavigationGroupTitle": {
+ "message": "Navigation",
+ "description": "Title of the navigation section within the Accessibility category. Within this section are audits with descriptive titles that highlight opportunities to improve keyboard navigation."
},
- "lighthouse-core/config/default-config.js | a11yWellStructuredGroupDescription": {
- "message": "These are opportunities to make sure your HTML is appropriately structured.",
- "description": "Description of the HTML validity section within the Accessibility category. Within this section are audits with descriptive titles that highlight structural HTML aspects of the page's accessibility that are passing or failing."
+ "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupDescription": {
+ "message": "These are opportunities to to improve the experience of reading tabular or list data using assistive technology, like a screen reader.",
+ "description": "Description of the navigation section within the Accessibility category. Within this section are audits with descriptive titles that highlight opportunities to improve the experience of reading tabular or list data using assistive technology."
},
- "lighthouse-core/config/default-config.js | a11yWellStructuredGroupTitle": {
- "message": "Elements Are Well Structured",
- "description": "Title of the HTML validity section within the Accessibility category. Within this section are audits with descriptive titles that highlight structural HTML aspects of the page's accessibility that are passing or failing (i.e. that list items are contained within list parents, etc). 'Elements' refers to HTML elements."
+ "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupTitle": {
+ "message": "Tables and lists",
+ "description": "Title of the navigation section within the Accessibility category. Within this section are audits with descriptive titles that highlight opportunities to improve the experience of reading tabular or list data using assistive technology."
},
"lighthouse-core/config/default-config.js | diagnosticsGroupDescription": {
"message": "More information about the performance of your application.",
diff --git a/lighthouse-core/test/report/html/renderer/category-renderer-test.js b/lighthouse-core/test/report/html/renderer/category-renderer-test.js
index b02215e90046..209b8ea4eafb 100644
--- a/lighthouse-core/test/report/html/renderer/category-renderer-test.js
+++ b/lighthouse-core/test/report/html/renderer/category-renderer-test.js
@@ -201,7 +201,7 @@ describe('CategoryRenderer', () => {
const categoryDOM = renderer.render(category, sampleResults.categoryGroups);
const gauge = categoryDOM.querySelector('.lh-gauge__percentage');
- assert.equal(gauge.textContent.trim(), '33', 'score is 0-100');
+ assert.equal(gauge.textContent.trim(), '36', 'score is 0-100');
const score = categoryDOM.querySelector('.lh-category-header');
const value = categoryDOM.querySelector('.lh-gauge__percentage');
diff --git a/lighthouse-core/test/results/sample_v2.json b/lighthouse-core/test/results/sample_v2.json
index 5eb5ab45d7b2..c0315003d8ca 100644
--- a/lighthouse-core/test/results/sample_v2.json
+++ b/lighthouse-core/test/results/sample_v2.json
@@ -1448,6 +1448,19 @@
"scoreDisplayMode": "manual",
"rawValue": false
},
+ "accesskeys": {
+ "id": "accesskeys",
+ "title": "`[accesskey]` values are unique",
+ "description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more](https://dequeuniversity.com/rules/axe/3.1/accesskeys?application=lighthouse).",
+ "score": 1,
+ "scoreDisplayMode": "binary",
+ "rawValue": true,
+ "details": {
+ "type": "table",
+ "headings": [],
+ "items": []
+ }
+ },
"aria-allowed-attr": {
"id": "aria-allowed-attr",
"title": "`[aria-*]` attributes match their roles",
@@ -2002,14 +2015,6 @@
"scoreDisplayMode": "notApplicable",
"rawValue": true
},
- "accesskeys": {
- "id": "accesskeys",
- "title": "`[accesskey]` values are unique",
- "description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more](https://dequeuniversity.com/rules/axe/3.1/accesskeys?application=lighthouse).",
- "score": null,
- "scoreDisplayMode": "manual",
- "rawValue": false
- },
"custom-controls-labels": {
"id": "custom-controls-labels",
"title": "Custom controls have associated labels",
@@ -3364,6 +3369,11 @@
"description": "These checks highlight opportunities to [improve the accessibility of your web app](https://developers.google.com/web/fundamentals/accessibility). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged.",
"manualDescription": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://developers.google.com/web/fundamentals/accessibility/how-to-review).",
"auditRefs": [
+ {
+ "id": "accesskeys",
+ "weight": 3,
+ "group": "a11y-navigation"
+ },
{
"id": "aria-allowed-attr",
"weight": 0,
@@ -3402,17 +3412,17 @@
{
"id": "audio-caption",
"weight": 0,
- "group": "a11y-correct-attributes"
+ "group": "a11y-audio-video"
},
{
"id": "button-name",
"weight": 0,
- "group": "a11y-element-names"
+ "group": "a11y-names-labels"
},
{
"id": "bypass",
"weight": 10,
- "group": "a11y-describe-contents"
+ "group": "a11y-navigation"
},
{
"id": "color-contrast",
@@ -3422,27 +3432,27 @@
{
"id": "definition-list",
"weight": 0,
- "group": "a11y-well-structured"
+ "group": "a11y-tables-lists"
},
{
"id": "dlitem",
"weight": 0,
- "group": "a11y-well-structured"
+ "group": "a11y-tables-lists"
},
{
"id": "document-title",
"weight": 2,
- "group": "a11y-describe-contents"
+ "group": "a11y-names-labels"
},
{
"id": "duplicate-id",
"weight": 5,
- "group": "a11y-well-structured"
+ "group": "a11y-best-practices"
},
{
"id": "frame-title",
"weight": 0,
- "group": "a11y-describe-contents"
+ "group": "a11y-names-labels"
},
{
"id": "html-has-lang",
@@ -3457,67 +3467,67 @@
{
"id": "image-alt",
"weight": 8,
- "group": "a11y-correct-attributes"
+ "group": "a11y-names-labels"
},
{
"id": "input-image-alt",
"weight": 0,
- "group": "a11y-correct-attributes"
+ "group": "a11y-names-labels"
},
{
"id": "label",
"weight": 10,
- "group": "a11y-describe-contents"
+ "group": "a11y-names-labels"
},
{
"id": "layout-table",
"weight": 0,
- "group": "a11y-describe-contents"
+ "group": "a11y-tables-lists"
},
{
"id": "link-name",
"weight": 9,
- "group": "a11y-element-names"
+ "group": "a11y-names-labels"
},
{
"id": "list",
"weight": 0,
- "group": "a11y-well-structured"
+ "group": "a11y-tables-lists"
},
{
"id": "listitem",
"weight": 0,
- "group": "a11y-well-structured"
+ "group": "a11y-tables-lists"
},
{
"id": "meta-refresh",
"weight": 0,
- "group": "a11y-meta"
+ "group": "a11y-best-practices"
},
{
"id": "meta-viewport",
"weight": 3,
- "group": "a11y-meta"
+ "group": "a11y-best-practices"
},
{
"id": "object-alt",
"weight": 4,
- "group": "a11y-describe-contents"
+ "group": "a11y-names-labels"
},
{
"id": "tabindex",
"weight": 0,
- "group": "a11y-correct-attributes"
+ "group": "a11y-navigation"
},
{
"id": "td-headers-attr",
"weight": 0,
- "group": "a11y-correct-attributes"
+ "group": "a11y-tables-lists"
},
{
"id": "th-has-data-cells",
"weight": 0,
- "group": "a11y-correct-attributes"
+ "group": "a11y-tables-lists"
},
{
"id": "valid-lang",
@@ -3527,16 +3537,12 @@
{
"id": "video-caption",
"weight": 0,
- "group": "a11y-describe-contents"
+ "group": "a11y-audio-video"
},
{
"id": "video-description",
"weight": 0,
- "group": "a11y-describe-contents"
- },
- {
- "id": "accesskeys",
- "weight": 0
+ "group": "a11y-audio-video"
},
{
"id": "logical-tab-order",
@@ -3584,7 +3590,7 @@
}
],
"id": "accessibility",
- "score": 0.33
+ "score": 0.36
},
"best-practices": {
"title": "Best Practices",
@@ -3829,37 +3835,37 @@
"pwa-optimized": {
"title": "PWA Optimized"
},
+ "a11y-best-practices": {
+ "title": "Best practices",
+ "description": "These items highlight common accessibility best practices."
+ },
"a11y-color-contrast": {
- "title": "Color Contrast Is Satisfactory",
+ "title": "Contrast",
"description": "These are opportunities to improve the legibility of your content."
},
- "a11y-describe-contents": {
- "title": "Elements Describe Contents Well",
- "description": "These are opportunities to make your content easier to understand for a user of assistive technology, like a screen reader."
+ "a11y-names-labels": {
+ "title": "Names and labels",
+ "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader."
},
- "a11y-well-structured": {
- "title": "Elements Are Well Structured",
- "description": "These are opportunities to make sure your HTML is appropriately structured."
+ "a11y-navigation": {
+ "title": "Navigation",
+ "description": "These are opportunities to improve keyboard navigation in your application."
},
"a11y-aria": {
- "title": "ARIA Attributes Follow Best Practices",
+ "title": "ARIA",
"description": "These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader."
},
- "a11y-correct-attributes": {
- "title": "Elements Use Attributes Correctly",
- "description": "These are opportunities to improve the configuration of your HTML elements."
- },
- "a11y-element-names": {
- "title": "Elements Have Discernible Names",
- "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader."
- },
"a11y-language": {
- "title": "Page Specifies Valid Language",
+ "title": "Internationalization and localization",
"description": "These are opportunities to improve the interpretation of your content by users in different locales."
},
- "a11y-meta": {
- "title": "Meta Tags Used Properly",
- "description": "These are opportunities to improve the user experience of your site."
+ "a11y-audio-video": {
+ "title": "Audio and video",
+ "description": "These are opportunities to provide alternative content for audio and video. This may improve the experience for users with hearing or vision impairments."
+ },
+ "a11y-tables-lists": {
+ "title": "Tables and lists",
+ "description": "These are opportunities to to improve the experience of reading tabular or list data using assistive technology, like a screen reader."
},
"seo-mobile": {
"title": "Mobile Friendly",
@@ -4296,6 +4302,12 @@
"duration": 100,
"entryType": "measure"
},
+ {
+ "startTime": 0,
+ "name": "lh:audit:accesskeys",
+ "duration": 100,
+ "entryType": "measure"
+ },
{
"startTime": 0,
"name": "lh:audit:aria-allowed-attr",
@@ -4500,12 +4512,6 @@
"duration": 100,
"entryType": "measure"
},
- {
- "startTime": 0,
- "name": "lh:audit:accesskeys",
- "duration": 100,
- "entryType": "measure"
- },
{
"startTime": 0,
"name": "lh:audit:custom-controls-labels",
@@ -5052,6 +5058,12 @@
"lighthouse-core/audits/network-server-latency.js | description": [
"audits[network-server-latency].description"
],
+ "lighthouse-core/audits/accessibility/accesskeys.js | title": [
+ "audits.accesskeys.title"
+ ],
+ "lighthouse-core/audits/accessibility/accesskeys.js | description": [
+ "audits.accesskeys.description"
+ ],
"lighthouse-core/audits/accessibility/aria-allowed-attr.js | title": [
"audits[aria-allowed-attr].title"
],
@@ -5264,12 +5276,6 @@
"lighthouse-core/audits/accessibility/video-description.js | description": [
"audits[video-description].description"
],
- "lighthouse-core/audits/accessibility/manual/accesskeys.js | title": [
- "audits.accesskeys.title"
- ],
- "lighthouse-core/audits/accessibility/manual/accesskeys.js | description": [
- "audits.accesskeys.description"
- ],
"lighthouse-core/audits/byte-efficiency/uses-long-cache-ttl.js | failureTitle": [
"audits[uses-long-cache-ttl].title"
],
@@ -5556,23 +5562,29 @@
"lighthouse-core/config/default-config.js | pwaOptimizedGroupTitle": [
"categoryGroups[pwa-optimized].title"
],
+ "lighthouse-core/config/default-config.js | a11yBestPracticesGroupTitle": [
+ "categoryGroups[a11y-best-practices].title"
+ ],
+ "lighthouse-core/config/default-config.js | a11yBestPracticesGroupDescription": [
+ "categoryGroups[a11y-best-practices].description"
+ ],
"lighthouse-core/config/default-config.js | a11yColorContrastGroupTitle": [
"categoryGroups[a11y-color-contrast].title"
],
"lighthouse-core/config/default-config.js | a11yColorContrastGroupDescription": [
"categoryGroups[a11y-color-contrast].description"
],
- "lighthouse-core/config/default-config.js | a11yDescribeContentsGroupTitle": [
- "categoryGroups[a11y-describe-contents].title"
+ "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupTitle": [
+ "categoryGroups[a11y-names-labels].title"
],
- "lighthouse-core/config/default-config.js | a11yDescribeContentsGroupDescription": [
- "categoryGroups[a11y-describe-contents].description"
+ "lighthouse-core/config/default-config.js | a11yNamesLabelsGroupDescription": [
+ "categoryGroups[a11y-names-labels].description"
],
- "lighthouse-core/config/default-config.js | a11yWellStructuredGroupTitle": [
- "categoryGroups[a11y-well-structured].title"
+ "lighthouse-core/config/default-config.js | a11yNavigationGroupTitle": [
+ "categoryGroups[a11y-navigation].title"
],
- "lighthouse-core/config/default-config.js | a11yWellStructuredGroupDescription": [
- "categoryGroups[a11y-well-structured].description"
+ "lighthouse-core/config/default-config.js | a11yNavigationGroupDescription": [
+ "categoryGroups[a11y-navigation].description"
],
"lighthouse-core/config/default-config.js | a11yAriaGroupTitle": [
"categoryGroups[a11y-aria].title"
@@ -5580,29 +5592,23 @@
"lighthouse-core/config/default-config.js | a11yAriaGroupDescription": [
"categoryGroups[a11y-aria].description"
],
- "lighthouse-core/config/default-config.js | a11yCorrectAttributesGroupTitle": [
- "categoryGroups[a11y-correct-attributes].title"
- ],
- "lighthouse-core/config/default-config.js | a11yCorrectAttributesGroupDescription": [
- "categoryGroups[a11y-correct-attributes].description"
- ],
- "lighthouse-core/config/default-config.js | a11yElementNamesGroupTitle": [
- "categoryGroups[a11y-element-names].title"
- ],
- "lighthouse-core/config/default-config.js | a11yElementNamesGroupDescription": [
- "categoryGroups[a11y-element-names].description"
- ],
"lighthouse-core/config/default-config.js | a11yLanguageGroupTitle": [
"categoryGroups[a11y-language].title"
],
"lighthouse-core/config/default-config.js | a11yLanguageGroupDescription": [
"categoryGroups[a11y-language].description"
],
- "lighthouse-core/config/default-config.js | a11yMetaGroupTitle": [
- "categoryGroups[a11y-meta].title"
+ "lighthouse-core/config/default-config.js | a11yAudioVideoGroupTitle": [
+ "categoryGroups[a11y-audio-video].title"
+ ],
+ "lighthouse-core/config/default-config.js | a11yAudioVideoGroupDescription": [
+ "categoryGroups[a11y-audio-video].description"
+ ],
+ "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupTitle": [
+ "categoryGroups[a11y-tables-lists].title"
],
- "lighthouse-core/config/default-config.js | a11yMetaGroupDescription": [
- "categoryGroups[a11y-meta].description"
+ "lighthouse-core/config/default-config.js | a11yTablesListsVideoGroupDescription": [
+ "categoryGroups[a11y-tables-lists].description"
]
}
}
diff --git a/proto/sample_v2_round_trip.json b/proto/sample_v2_round_trip.json
index ee6b196f0a1f..3e1c5d4c846a 100644
--- a/proto/sample_v2_round_trip.json
+++ b/proto/sample_v2_round_trip.json
@@ -2,9 +2,14 @@
"audits": {
"accesskeys": {
"description": "Access keys let users quickly focus a part of the page. For proper navigation, each access key must be unique. [Learn more](https://dequeuniversity.com/rules/axe/3.1/accesskeys?application=lighthouse).",
+ "details": {
+ "headings": [],
+ "items": [],
+ "type": "table"
+ },
"id": "accesskeys",
- "score": null,
- "scoreDisplayMode": "manual",
+ "score": 1.0,
+ "scoreDisplayMode": "binary",
"title": "`[accesskey]` values are unique"
},
"appcache-manifest": {
@@ -2997,6 +3002,11 @@
"categories": {
"accessibility": {
"auditRefs": [
+ {
+ "group": "a11y-navigation",
+ "id": "accesskeys",
+ "weight": 3.0
+ },
{
"group": "a11y-aria",
"id": "aria-allowed-attr",
@@ -3033,17 +3043,17 @@
"weight": 0.0
},
{
- "group": "a11y-correct-attributes",
+ "group": "a11y-audio-video",
"id": "audio-caption",
"weight": 0.0
},
{
- "group": "a11y-element-names",
+ "group": "a11y-names-labels",
"id": "button-name",
"weight": 0.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-navigation",
"id": "bypass",
"weight": 10.0
},
@@ -3053,27 +3063,27 @@
"weight": 6.0
},
{
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "definition-list",
"weight": 0.0
},
{
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "dlitem",
"weight": 0.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "document-title",
"weight": 2.0
},
{
- "group": "a11y-well-structured",
+ "group": "a11y-best-practices",
"id": "duplicate-id",
"weight": 5.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "frame-title",
"weight": 0.0
},
@@ -3088,67 +3098,67 @@
"weight": 0.0
},
{
- "group": "a11y-correct-attributes",
+ "group": "a11y-names-labels",
"id": "image-alt",
"weight": 8.0
},
{
- "group": "a11y-correct-attributes",
+ "group": "a11y-names-labels",
"id": "input-image-alt",
"weight": 0.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "label",
"weight": 10.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-tables-lists",
"id": "layout-table",
"weight": 0.0
},
{
- "group": "a11y-element-names",
+ "group": "a11y-names-labels",
"id": "link-name",
"weight": 9.0
},
{
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "list",
"weight": 0.0
},
{
- "group": "a11y-well-structured",
+ "group": "a11y-tables-lists",
"id": "listitem",
"weight": 0.0
},
{
- "group": "a11y-meta",
+ "group": "a11y-best-practices",
"id": "meta-refresh",
"weight": 0.0
},
{
- "group": "a11y-meta",
+ "group": "a11y-best-practices",
"id": "meta-viewport",
"weight": 3.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-names-labels",
"id": "object-alt",
"weight": 4.0
},
{
- "group": "a11y-correct-attributes",
+ "group": "a11y-navigation",
"id": "tabindex",
"weight": 0.0
},
{
- "group": "a11y-correct-attributes",
+ "group": "a11y-tables-lists",
"id": "td-headers-attr",
"weight": 0.0
},
{
- "group": "a11y-correct-attributes",
+ "group": "a11y-tables-lists",
"id": "th-has-data-cells",
"weight": 0.0
},
@@ -3158,19 +3168,15 @@
"weight": 0.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-audio-video",
"id": "video-caption",
"weight": 0.0
},
{
- "group": "a11y-describe-contents",
+ "group": "a11y-audio-video",
"id": "video-description",
"weight": 0.0
},
- {
- "id": "accesskeys",
- "weight": 0.0
- },
{
"id": "logical-tab-order",
"weight": 0.0
@@ -3219,7 +3225,7 @@
"description": "These checks highlight opportunities to [improve the accessibility of your web app](https://developers.google.com/web/fundamentals/accessibility). Only a subset of accessibility issues can be automatically detected so manual testing is also encouraged.",
"id": "accessibility",
"manualDescription": "These items address areas which an automated testing tool cannot cover. Learn more in our guide on [conducting an accessibility review](https://developers.google.com/web/fundamentals/accessibility/how-to-review).",
- "score": 0.33,
+ "score": 0.36,
"title": "Accessibility"
},
"best-practices": {
@@ -3630,35 +3636,35 @@
"categoryGroups": {
"a11y-aria": {
"description": "These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.",
- "title": "ARIA Attributes Follow Best Practices"
+ "title": "ARIA"
},
- "a11y-color-contrast": {
- "description": "These are opportunities to improve the legibility of your content.",
- "title": "Color Contrast Is Satisfactory"
+ "a11y-audio-video": {
+ "description": "These are opportunities to provide alternative content for audio and video. This may improve the experience for users with hearing or vision impairments.",
+ "title": "Audio and video"
},
- "a11y-correct-attributes": {
- "description": "These are opportunities to improve the configuration of your HTML elements.",
- "title": "Elements Use Attributes Correctly"
+ "a11y-best-practices": {
+ "description": "These items highlight common accessibility best practices.",
+ "title": "Best practices"
},
- "a11y-describe-contents": {
- "description": "These are opportunities to make your content easier to understand for a user of assistive technology, like a screen reader.",
- "title": "Elements Describe Contents Well"
- },
- "a11y-element-names": {
- "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
- "title": "Elements Have Discernible Names"
+ "a11y-color-contrast": {
+ "description": "These are opportunities to improve the legibility of your content.",
+ "title": "Contrast"
},
"a11y-language": {
"description": "These are opportunities to improve the interpretation of your content by users in different locales.",
- "title": "Page Specifies Valid Language"
+ "title": "Internationalization and localization"
},
- "a11y-meta": {
- "description": "These are opportunities to improve the user experience of your site.",
- "title": "Meta Tags Used Properly"
+ "a11y-names-labels": {
+ "description": "These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.",
+ "title": "Names and labels"
},
- "a11y-well-structured": {
- "description": "These are opportunities to make sure your HTML is appropriately structured.",
- "title": "Elements Are Well Structured"
+ "a11y-navigation": {
+ "description": "These are opportunities to improve keyboard navigation in your application.",
+ "title": "Navigation"
+ },
+ "a11y-tables-lists": {
+ "description": "These are opportunities to to improve the experience of reading tabular or list data using assistive technology, like a screen reader.",
+ "title": "Tables and lists"
},
"diagnostics": {
"description": "More information about the performance of your application.",
@@ -4151,6 +4157,12 @@
"name": "lh:audit:pwa-each-page-has-url",
"startTime": 0.0
},
+ {
+ "duration": 100.0,
+ "entryType": "measure",
+ "name": "lh:audit:accesskeys",
+ "startTime": 0.0
+ },
{
"duration": 100.0,
"entryType": "measure",
@@ -4355,12 +4367,6 @@
"name": "lh:audit:video-description",
"startTime": 0.0
},
- {
- "duration": 100.0,
- "entryType": "measure",
- "name": "lh:audit:accesskeys",
- "startTime": 0.0
- },
{
"duration": 100.0,
"entryType": "measure",