Structured data 29
#JSON-LD parse error
IssueMedium prioritystructured_data.jsonld_parse_error
A <script type="application/ld+json"> block is not valid JSON, so search engines ignore all of it. The usual culprits: a trailing comma, an unescaped quote, a template variable left empty.
How to fix. Validate the block with a JSON linter or the Rich Results Test, and fix the template that produces it.
#Incomplete microdata
WarningLow prioritystructured_data.microdata_unparsable
The page has microdata that cannot be read as items: an itemscope with no itemtype, or itemprop attributes outside any itemscope.
How to fix. Give every itemscope an itemtype from schema.org and keep each itemprop inside its item's itemscope. Or switch to JSON-LD.
#No structured data
OpportunityLow prioritystructured_data.none
The page has no JSON-LD or microdata. Structured data helps search engines and AI assistants understand what the page describes, such as a business, product, article or event.
How to fix. Add JSON-LD for the page's main entity. At minimum, Organization or LocalBusiness on the homepage and the matching type on content pages.
#Non-schema.org vocabulary
WarningLow prioritystructured_data.non_schema_org
An item uses a vocabulary other than schema.org (e.g. the retired data-vocabulary.org). Search engines only support schema.org.
How to fix. Rewrite the markup with schema.org types and a "@context": "https://schema.org".
#Duplicate JSON-LD blocks
WarningLow prioritystructured_data.duplicate_blocks
Two or more JSON-LD blocks on the page are identical, usually a theme and a plugin both emitting the same markup.
How to fix. Output each block once; disable the duplicate source.
#Organization: missing required properties
IssueMedium prioritystructured_data.organization.missing_required
A Organization item lacks properties it must have (name, url). Without them the item is not eligible for Organization rich results.
How to fix. Add the missing properties to the Organization markup. Google's structured data documentation for Organization lists them; test the page with the Rich Results Test.
#Organization: missing recommended properties
OpportunityLow prioritystructured_data.organization.missing_recommended
A Organization item lacks properties that are optional but recommended (logo, sameAs, contactPoint). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for Organization describes each one.
#LocalBusiness: missing required properties
IssueMedium prioritystructured_data.local_business.missing_required
A LocalBusiness item lacks properties it must have (name, address). Without them the item is not eligible for LocalBusiness rich results.
How to fix. Add the missing properties to the LocalBusiness markup. Google's structured data documentation for LocalBusiness lists them; test the page with the Rich Results Test.
#LocalBusiness: missing recommended properties
OpportunityLow prioritystructured_data.local_business.missing_recommended
A LocalBusiness item lacks properties that are optional but recommended (telephone, openingHoursSpecification, geo, url, image). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for LocalBusiness describes each one.
#Product: missing required properties
IssueMedium prioritystructured_data.product.missing_required
A Product item lacks properties it must have (name, offers). Without them the item is not eligible for Product rich results.
How to fix. Add the missing properties to the Product markup. Google's structured data documentation for Product lists them; test the page with the Rich Results Test.
#Product: missing recommended properties
OpportunityLow prioritystructured_data.product.missing_recommended
A Product item lacks properties that are optional but recommended (image, description, brand, sku, aggregateRating). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for Product describes each one.
#Article: missing required properties
IssueMedium prioritystructured_data.article.missing_required
A Article item lacks properties it must have (headline, author, datePublished). Without them the item is not eligible for Article rich results.
How to fix. Add the missing properties to the Article markup. Google's structured data documentation for Article lists them; test the page with the Rich Results Test.
#Article: missing recommended properties
OpportunityLow prioritystructured_data.article.missing_recommended
A Article item lacks properties that are optional but recommended (image, dateModified, publisher). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for Article describes each one.
#FAQPage: missing required properties
IssueMedium prioritystructured_data.faq_page.missing_required
A FAQPage item lacks properties it must have (mainEntity). Without them the item is not eligible for FAQPage rich results.
How to fix. Add the missing properties to the FAQPage markup. Google's structured data documentation for FAQPage lists them; test the page with the Rich Results Test.
#BreadcrumbList: missing required properties
IssueMedium prioritystructured_data.breadcrumb_list.missing_required
A BreadcrumbList item lacks properties it must have (itemListElement). Without them the item is not eligible for BreadcrumbList rich results.
How to fix. Add the missing properties to the BreadcrumbList markup. Google's structured data documentation for BreadcrumbList lists them; test the page with the Rich Results Test.
#WebSite: missing required properties
IssueMedium prioritystructured_data.website.missing_required
A WebSite item lacks properties it must have (name, url). Without them the item is not eligible for WebSite rich results.
How to fix. Add the missing properties to the WebSite markup. Google's structured data documentation for WebSite lists them; test the page with the Rich Results Test.
#WebSite: missing recommended properties
OpportunityLow prioritystructured_data.website.missing_recommended
A WebSite item lacks properties that are optional but recommended (alternateName). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for WebSite describes each one.
#Event: missing required properties
IssueMedium prioritystructured_data.event.missing_required
A Event item lacks properties it must have (name, startDate, location). Without them the item is not eligible for Event rich results.
How to fix. Add the missing properties to the Event markup. Google's structured data documentation for Event lists them; test the page with the Rich Results Test.
#Event: missing recommended properties
OpportunityLow prioritystructured_data.event.missing_recommended
A Event item lacks properties that are optional but recommended (description, endDate, image, offers, organizer, eventStatus). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for Event describes each one.
#Recipe: missing required properties
IssueMedium prioritystructured_data.recipe.missing_required
A Recipe item lacks properties it must have (name, image). Without them the item is not eligible for Recipe rich results.
How to fix. Add the missing properties to the Recipe markup. Google's structured data documentation for Recipe lists them; test the page with the Rich Results Test.
#Recipe: missing recommended properties
OpportunityLow prioritystructured_data.recipe.missing_recommended
A Recipe item lacks properties that are optional but recommended (author, recipeIngredient, recipeInstructions, totalTime, nutrition, aggregateRating). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for Recipe describes each one.
#VideoObject: missing required properties
IssueMedium prioritystructured_data.video_object.missing_required
A VideoObject item lacks properties it must have (name, thumbnailUrl, uploadDate). Without them the item is not eligible for VideoObject rich results.
How to fix. Add the missing properties to the VideoObject markup. Google's structured data documentation for VideoObject lists them; test the page with the Rich Results Test.
#VideoObject: missing recommended properties
OpportunityLow prioritystructured_data.video_object.missing_recommended
A VideoObject item lacks properties that are optional but recommended (description, duration, contentUrl or embedUrl). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for VideoObject describes each one.
#JobPosting: missing required properties
IssueMedium prioritystructured_data.job_posting.missing_required
A JobPosting item lacks properties it must have (title, description, datePosted, hiringOrganization, jobLocation or applicantLocationRequirements). Without them the item is not eligible for JobPosting rich results.
How to fix. Add the missing properties to the JobPosting markup. Google's structured data documentation for JobPosting lists them; test the page with the Rich Results Test.
#JobPosting: missing recommended properties
OpportunityLow prioritystructured_data.job_posting.missing_recommended
A JobPosting item lacks properties that are optional but recommended (validThrough, baseSalary, employmentType, identifier). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for JobPosting describes each one.
#Review: missing required properties
IssueMedium prioritystructured_data.review.missing_required
A Review item lacks properties it must have (itemReviewed, author, reviewRating). Without them the item is not eligible for Review rich results.
How to fix. Add the missing properties to the Review markup. Google's structured data documentation for Review lists them; test the page with the Rich Results Test.
#Review: missing recommended properties
OpportunityLow prioritystructured_data.review.missing_recommended
A Review item lacks properties that are optional but recommended (datePublished, reviewBody, name). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for Review describes each one.
#HowTo: missing required properties
IssueMedium prioritystructured_data.how_to.missing_required
A HowTo item lacks properties it must have (name, step). Google no longer shows HowTo rich results, but other consumers still read valid markup.
How to fix. Add the missing properties to the HowTo markup. Google's structured data documentation for HowTo lists them; test the page with the Rich Results Test.
#HowTo: missing recommended properties
OpportunityLow prioritystructured_data.how_to.missing_recommended
A HowTo item lacks properties that are optional but recommended (totalTime, supply, tool, image). They make the item more complete for search engines and AI assistants.
How to fix. Add the recommended properties you can fill truthfully. Google's structured data documentation for HowTo describes each one.
Accessibility 89
#Accesskey attribute value should be unique
IssueHigh priorityNeeds renderingaccessibility.accesskeys
Ensure every accesskey attribute value is unique. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "accesskeys") in the rendered page.
How to fix. Open the page, find the elements axe reports for "accesskeys", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/accesskeys
#Active <area> elements must have alternative text
IssueHigh priorityNeeds renderingaccessibility.area_alt
Ensure <area> elements of image maps have alternative text. WCAG success criteria: 2.4.4, 4.1.2. Checked by axe-core 4.11.4 (rule "area-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "area-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/area-alt
#Elements must only use supported ARIA attributes
IssueHigh priorityNeeds renderingaccessibility.aria_allowed_attr
Ensure an element's role supports its ARIA attributes. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-allowed-attr") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-allowed-attr", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-allowed-attr
#ARIA role should be appropriate for the element
OpportunityLow priorityNeeds renderingaccessibility.aria_allowed_role
Ensure role attribute has an appropriate value for the element. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "aria-allowed-role") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-allowed-role", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-allowed-role
#Aria-braille attributes must have a non-braille equivalent
IssueHigh priorityNeeds renderingaccessibility.aria_braille_equivalent
Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-braille-equivalent") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-braille-equivalent", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-braille-equivalent
#ARIA commands must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_command_name
Ensure every ARIA button, link and menuitem has an accessible name. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-command-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-command-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-command-name
#ARIA attributes must be used as specified for the element's role
IssueHigh priorityNeeds renderingaccessibility.aria_conditional_attr
Ensure ARIA attributes are used as described in the specification of the element's role. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-conditional-attr") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-conditional-attr", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-conditional-attr
#Deprecated ARIA roles must not be used
OpportunityLow priorityNeeds renderingaccessibility.aria_deprecated_role
Ensure elements do not use deprecated roles. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-deprecated-role") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-deprecated-role", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-deprecated-role
#ARIA dialog and alertdialog nodes should have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_dialog_name
Ensure every ARIA dialog and alertdialog node has an accessible name. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "aria-dialog-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-dialog-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-dialog-name
#Aria-hidden="true" must not be present on the document body
IssueHigh priorityNeeds renderingaccessibility.aria_hidden_body
Ensure aria-hidden="true" is not present on the document body. WCAG success criteria: 1.3.1, 4.1.2. Checked by axe-core 4.11.4 (rule "aria-hidden-body") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-hidden-body", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-hidden-body
#ARIA hidden element must not be focusable or contain focusable elements
IssueHigh priorityNeeds renderingaccessibility.aria_hidden_focus
Ensure aria-hidden elements are not focusable nor contain focusable elements. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-hidden-focus") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-hidden-focus", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-hidden-focus
#ARIA input fields must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_input_field_name
Ensure every ARIA input field has an accessible name. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-input-field-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-input-field-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-input-field-name
#ARIA meter nodes must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_meter_name
Ensure every ARIA meter node has an accessible name. WCAG success criteria: 1.1.1. Checked by axe-core 4.11.4 (rule "aria-meter-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-meter-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-meter-name
#ARIA progressbar nodes must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_progressbar_name
Ensure every ARIA progressbar node has an accessible name. WCAG success criteria: 1.1.1. Checked by axe-core 4.11.4 (rule "aria-progressbar-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-progressbar-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-progressbar-name
#Elements must only use permitted ARIA attributes
IssueHigh priorityNeeds renderingaccessibility.aria_prohibited_attr
Ensure ARIA attributes are not prohibited for an element's role. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-prohibited-attr") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-prohibited-attr", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-prohibited-attr
#Required ARIA attributes must be provided
IssueHigh priorityNeeds renderingaccessibility.aria_required_attr
Ensure elements with ARIA roles have all required ARIA attributes. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-required-attr") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-required-attr", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-required-attr
#Certain ARIA roles must contain particular children
IssueHigh priorityNeeds renderingaccessibility.aria_required_children
Ensure elements with an ARIA role that require child roles contain them. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "aria-required-children") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-required-children", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-required-children
#Certain ARIA roles must be contained by particular parents
IssueHigh priorityNeeds renderingaccessibility.aria_required_parent
Ensure elements with an ARIA role that require parent roles are contained by them. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "aria-required-parent") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-required-parent", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-required-parent
#ARIA roles used must conform to valid values
IssueHigh priorityNeeds renderingaccessibility.aria_roles
Ensure all elements with a role attribute use a valid value. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-roles") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-roles", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-roles
#"role=text" should have no focusable descendants
IssueHigh priorityNeeds renderingaccessibility.aria_text
Ensure role="text" is used on elements with no focusable descendants. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "aria-text") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-text", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-text
#ARIA toggle fields must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_toggle_field_name
Ensure every ARIA toggle field has an accessible name. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-toggle-field-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-toggle-field-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-toggle-field-name
#ARIA tooltip nodes must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_tooltip_name
Ensure every ARIA tooltip node has an accessible name. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-tooltip-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-tooltip-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-tooltip-name
#ARIA treeitem nodes should have an accessible name
IssueHigh priorityNeeds renderingaccessibility.aria_treeitem_name
Ensure every ARIA treeitem node has an accessible name. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "aria-treeitem-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-treeitem-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-treeitem-name
#ARIA attributes must conform to valid names
IssueHigh priorityNeeds renderingaccessibility.aria_valid_attr
Ensure attributes that begin with aria- are valid ARIA attributes. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-valid-attr") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-valid-attr", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr
#ARIA attributes must conform to valid values
IssueHigh priorityNeeds renderingaccessibility.aria_valid_attr_value
Ensure all ARIA attributes have valid values. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "aria-valid-attr-value") in the rendered page.
How to fix. Open the page, find the elements axe reports for "aria-valid-attr-value", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/aria-valid-attr-value
#Autocomplete attribute must be used correctly
IssueHigh priorityNeeds renderingaccessibility.autocomplete_valid
Ensure the autocomplete attribute is correct and suitable for the form field. WCAG success criteria: 1.3.5. Checked by axe-core 4.11.4 (rule "autocomplete-valid") in the rendered page.
How to fix. Open the page, find the elements axe reports for "autocomplete-valid", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/autocomplete-valid
#Inline text spacing must be adjustable with custom stylesheets
IssueHigh priorityNeeds renderingaccessibility.avoid_inline_spacing
Ensure that text spacing set through style attributes can be adjusted with custom stylesheets. WCAG success criteria: 1.4.12. Checked by axe-core 4.11.4 (rule "avoid-inline-spacing") in the rendered page.
How to fix. Open the page, find the elements axe reports for "avoid-inline-spacing", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/avoid-inline-spacing
#<blink> elements are deprecated and must not be used
IssueHigh priorityNeeds renderingaccessibility.blink
Ensure <blink> elements are not used. WCAG success criteria: 2.2.2. Checked by axe-core 4.11.4 (rule "blink") in the rendered page.
How to fix. Open the page, find the elements axe reports for "blink", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/blink
#Buttons must have discernible text
IssueHigh priorityNeeds renderingaccessibility.button_name
Ensure buttons have discernible text. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "button-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "button-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/button-name
#Page must have means to bypass repeated blocks
IssueHigh priorityNeeds renderingaccessibility.bypass
Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content. WCAG success criteria: 2.4.1. Checked by axe-core 4.11.4 (rule "bypass") in the rendered page.
How to fix. Open the page, find the elements axe reports for "bypass", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/bypass
#Elements must meet minimum color contrast ratio thresholds
IssueHigh priorityNeeds renderingaccessibility.color_contrast
Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds. WCAG success criteria: 1.4.3. Checked by axe-core 4.11.4 (rule "color-contrast") in the rendered page.
How to fix. Open the page, find the elements axe reports for "color-contrast", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/color-contrast
#<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements
IssueHigh priorityNeeds renderingaccessibility.definition_list
Ensure <dl> elements are structured correctly. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "definition-list") in the rendered page.
How to fix. Open the page, find the elements axe reports for "definition-list", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/definition-list
#<dt> and <dd> elements must be contained by a <dl>
IssueHigh priorityNeeds renderingaccessibility.dlitem
Ensure <dt> and <dd> elements are contained by a <dl>. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "dlitem") in the rendered page.
How to fix. Open the page, find the elements axe reports for "dlitem", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/dlitem
#Documents must have <title> element to aid in navigation
IssueHigh priorityNeeds renderingaccessibility.document_title
Ensure each HTML document contains a non-empty <title> element. WCAG success criteria: 2.4.2. Checked by axe-core 4.11.4 (rule "document-title") in the rendered page.
How to fix. Open the page, find the elements axe reports for "document-title", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/document-title
#IDs used in ARIA and labels must be unique
IssueHigh priorityNeeds renderingaccessibility.duplicate_id_aria
Ensure every id attribute value used in ARIA and in labels is unique. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "duplicate-id-aria") in the rendered page.
How to fix. Open the page, find the elements axe reports for "duplicate-id-aria", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/duplicate-id-aria
#Headings should not be empty
OpportunityLow priorityNeeds renderingaccessibility.empty_heading
Ensure headings have discernible text. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "empty-heading") in the rendered page.
How to fix. Open the page, find the elements axe reports for "empty-heading", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/empty-heading
#Form field must not have multiple label elements
WarningMedium priorityNeeds renderingaccessibility.form_field_multiple_labels
Ensure form field does not have multiple label elements. WCAG success criteria: 3.3.2. Checked by axe-core 4.11.4 (rule "form-field-multiple-labels") in the rendered page.
How to fix. Open the page, find the elements axe reports for "form-field-multiple-labels", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/form-field-multiple-labels
#Frames with focusable content must not have tabindex=-1
IssueHigh priorityNeeds renderingaccessibility.frame_focusable_content
Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1. WCAG success criteria: 2.1.1. Checked by axe-core 4.11.4 (rule "frame-focusable-content") in the rendered page.
How to fix. Open the page, find the elements axe reports for "frame-focusable-content", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/frame-focusable-content
#Frames should be tested with axe-core
IssueHigh priorityNeeds renderingaccessibility.frame_tested
Ensure <iframe> and <frame> elements contain the axe-core script. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "frame-tested") in the rendered page.
How to fix. Open the page, find the elements axe reports for "frame-tested", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/frame-tested
#Frames must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.frame_title
Ensure <iframe> and <frame> elements have an accessible name. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "frame-title") in the rendered page.
How to fix. Open the page, find the elements axe reports for "frame-title", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/frame-title
#Frames must have a unique title attribute
IssueHigh priorityNeeds renderingaccessibility.frame_title_unique
Ensure <iframe> and <frame> elements contain a unique title attribute. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "frame-title-unique") in the rendered page.
How to fix. Open the page, find the elements axe reports for "frame-title-unique", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/frame-title-unique
#Heading levels should only increase by one
WarningMedium priorityNeeds renderingaccessibility.heading_order
Ensure the order of headings is semantically correct. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "heading-order") in the rendered page.
How to fix. Open the page, find the elements axe reports for "heading-order", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/heading-order
#<html> element must have a lang attribute
IssueHigh priorityNeeds renderingaccessibility.html_has_lang
Ensure every HTML document has a lang attribute. WCAG success criteria: 3.1.1. Checked by axe-core 4.11.4 (rule "html-has-lang") in the rendered page.
How to fix. Open the page, find the elements axe reports for "html-has-lang", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/html-has-lang
#<html> element must have a valid value for the lang attribute
IssueHigh priorityNeeds renderingaccessibility.html_lang_valid
Ensure the lang attribute of the <html> element has a valid value. WCAG success criteria: 3.1.1. Checked by axe-core 4.11.4 (rule "html-lang-valid") in the rendered page.
How to fix. Open the page, find the elements axe reports for "html-lang-valid", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/html-lang-valid
#HTML elements with lang and xml:lang must have the same base language
WarningMedium priorityNeeds renderingaccessibility.html_xml_lang_mismatch
Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page. WCAG success criteria: 3.1.1. Checked by axe-core 4.11.4 (rule "html-xml-lang-mismatch") in the rendered page.
How to fix. Open the page, find the elements axe reports for "html-xml-lang-mismatch", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/html-xml-lang-mismatch
#Images must have alternative text
IssueHigh priorityNeeds renderingaccessibility.image_alt
Ensure <img> elements have alternative text or a role of none or presentation. WCAG success criteria: 1.1.1. Checked by axe-core 4.11.4 (rule "image-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "image-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/image-alt
#Alternative text of images should not be repeated as text
OpportunityLow priorityNeeds renderingaccessibility.image_redundant_alt
Ensure image alternative is not repeated as text. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "image-redundant-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "image-redundant-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/image-redundant-alt
#Input buttons must have discernible text
IssueHigh priorityNeeds renderingaccessibility.input_button_name
Ensure input buttons have discernible text. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "input-button-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "input-button-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/input-button-name
#Image buttons must have alternative text
IssueHigh priorityNeeds renderingaccessibility.input_image_alt
Ensure <input type="image"> elements have alternative text. WCAG success criteria: 1.1.1, 4.1.2. Checked by axe-core 4.11.4 (rule "input-image-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "input-image-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/input-image-alt
#Form elements must have labels
IssueHigh priorityNeeds renderingaccessibility.label
Ensure every form element has a label. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "label") in the rendered page.
How to fix. Open the page, find the elements axe reports for "label", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/label
#Form elements should have a visible label
IssueHigh priorityNeeds renderingaccessibility.label_title_only
Ensure that every form element has a visible label and is not solely labeled using hidden labels, or the title or aria-describedby attributes. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "label-title-only") in the rendered page.
How to fix. Open the page, find the elements axe reports for "label-title-only", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/label-title-only
#Banner landmark should not be contained in another landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_banner_is_top_level
Ensure the banner landmark is at top level. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-banner-is-top-level") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-banner-is-top-level", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-banner-is-top-level
#Aside should not be contained in another landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_complementary_is_top_level
Ensure the complementary landmark or aside is at top level. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-complementary-is-top-level") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-complementary-is-top-level", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-complementary-is-top-level
#Contentinfo landmark should not be contained in another landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_contentinfo_is_top_level
Ensure the contentinfo landmark is at top level. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-contentinfo-is-top-level") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-contentinfo-is-top-level", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-contentinfo-is-top-level
#Main landmark should not be contained in another landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_main_is_top_level
Ensure the main landmark is at top level. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-main-is-top-level") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-main-is-top-level", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-main-is-top-level
#Document should not have more than one banner landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_no_duplicate_banner
Ensure the document has at most one banner landmark. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-no-duplicate-banner") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-no-duplicate-banner", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-no-duplicate-banner
#Document should not have more than one contentinfo landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_no_duplicate_contentinfo
Ensure the document has at most one contentinfo landmark. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-no-duplicate-contentinfo") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-no-duplicate-contentinfo", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-no-duplicate-contentinfo
#Document should not have more than one main landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_no_duplicate_main
Ensure the document has at most one main landmark. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-no-duplicate-main") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-no-duplicate-main", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-no-duplicate-main
#Document should have one main landmark
WarningMedium priorityNeeds renderingaccessibility.landmark_one_main
Ensure the document has a main landmark. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-one-main") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-one-main", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-one-main
#Landmarks should have a unique role or role/label/title (i.e. accessible name) combination
WarningMedium priorityNeeds renderingaccessibility.landmark_unique
Ensure landmarks are unique. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "landmark-unique") in the rendered page.
How to fix. Open the page, find the elements axe reports for "landmark-unique", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/landmark-unique
#Links must be distinguishable without relying on color
IssueHigh priorityNeeds renderingaccessibility.link_in_text_block
Ensure links are distinguished from surrounding text in a way that does not rely on color. WCAG success criteria: 1.4.1. Checked by axe-core 4.11.4 (rule "link-in-text-block") in the rendered page.
How to fix. Open the page, find the elements axe reports for "link-in-text-block", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/link-in-text-block
#Links must have discernible text
IssueHigh priorityNeeds renderingaccessibility.link_name
Ensure links have discernible text. WCAG success criteria: 2.4.4, 4.1.2. Checked by axe-core 4.11.4 (rule "link-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "link-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/link-name
#<ul> and <ol> must only directly contain <li>, <script> or <template> elements
IssueHigh priorityNeeds renderingaccessibility.list
Ensure that lists are structured correctly. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "list") in the rendered page.
How to fix. Open the page, find the elements axe reports for "list", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/list
#<li> elements must be contained in a <ul> or <ol>
IssueHigh priorityNeeds renderingaccessibility.listitem
Ensure <li> elements are used semantically. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "listitem") in the rendered page.
How to fix. Open the page, find the elements axe reports for "listitem", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/listitem
#<marquee> elements are deprecated and must not be used
IssueHigh priorityNeeds renderingaccessibility.marquee
Ensure <marquee> elements are not used. WCAG success criteria: 2.2.2. Checked by axe-core 4.11.4 (rule "marquee") in the rendered page.
How to fix. Open the page, find the elements axe reports for "marquee", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/marquee
#Delayed refresh under 20 hours must not be used
IssueHigh priorityNeeds renderingaccessibility.meta_refresh
Ensure <meta http-equiv="refresh"> is not used for delayed refresh. WCAG success criteria: 2.2.1. Checked by axe-core 4.11.4 (rule "meta-refresh") in the rendered page.
How to fix. Open the page, find the elements axe reports for "meta-refresh", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/meta-refresh
#Zooming and scaling must not be disabled
WarningMedium priorityNeeds renderingaccessibility.meta_viewport
Ensure <meta name="viewport"> does not disable text scaling and zooming. WCAG success criteria: 1.4.4. Checked by axe-core 4.11.4 (rule "meta-viewport") in the rendered page.
How to fix. Open the page, find the elements axe reports for "meta-viewport", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/meta-viewport
#Users should be able to zoom and scale the text up to 500%
OpportunityLow priorityNeeds renderingaccessibility.meta_viewport_large
Ensure <meta name="viewport"> can scale a significant amount. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "meta-viewport-large") in the rendered page.
How to fix. Open the page, find the elements axe reports for "meta-viewport-large", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/meta-viewport-large
#Interactive controls must not be nested
IssueHigh priorityNeeds renderingaccessibility.nested_interactive
Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "nested-interactive") in the rendered page.
How to fix. Open the page, find the elements axe reports for "nested-interactive", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/nested-interactive
#<video> or <audio> elements must not play automatically
WarningMedium priorityNeeds renderingaccessibility.no_autoplay_audio
Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio. WCAG success criteria: 1.4.2. Checked by axe-core 4.11.4 (rule "no-autoplay-audio") in the rendered page.
How to fix. Open the page, find the elements axe reports for "no-autoplay-audio", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/no-autoplay-audio
#<object> elements must have alternative text
IssueHigh priorityNeeds renderingaccessibility.object_alt
Ensure <object> elements have alternative text. WCAG success criteria: 1.1.1. Checked by axe-core 4.11.4 (rule "object-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "object-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/object-alt
#Page should contain a level-one heading
WarningMedium priorityNeeds renderingaccessibility.page_has_heading_one
Ensure that the page, or at least one of its frames contains a level-one heading. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "page-has-heading-one") in the rendered page.
How to fix. Open the page, find the elements axe reports for "page-has-heading-one", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/page-has-heading-one
#Elements marked as presentational should be consistently ignored
OpportunityLow priorityNeeds renderingaccessibility.presentation_role_conflict
Ensure elements marked as presentational do not have global ARIA or tabindex so that all screen readers ignore them. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "presentation-role-conflict") in the rendered page.
How to fix. Open the page, find the elements axe reports for "presentation-role-conflict", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/presentation-role-conflict
#All page content should be contained by landmarks
WarningMedium priorityNeeds renderingaccessibility.region
Ensure all page content is contained by landmarks. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "region") in the rendered page.
How to fix. Open the page, find the elements axe reports for "region", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/region
#[role="img"] elements must have alternative text
IssueHigh priorityNeeds renderingaccessibility.role_img_alt
Ensure [role="img"] elements have alternative text. WCAG success criteria: 1.1.1. Checked by axe-core 4.11.4 (rule "role-img-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "role-img-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/role-img-alt
#Scope attribute should be used correctly
WarningMedium priorityNeeds renderingaccessibility.scope_attr_valid
Ensure the scope attribute is used correctly on tables. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "scope-attr-valid") in the rendered page.
How to fix. Open the page, find the elements axe reports for "scope-attr-valid", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/scope-attr-valid
#Scrollable region must have keyboard access
IssueHigh priorityNeeds renderingaccessibility.scrollable_region_focusable
Ensure elements that have scrollable content are accessible by keyboard in Safari. WCAG success criteria: 2.1.1, 2.1.3. Checked by axe-core 4.11.4 (rule "scrollable-region-focusable") in the rendered page.
How to fix. Open the page, find the elements axe reports for "scrollable-region-focusable", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/scrollable-region-focusable
#Select element must have an accessible name
IssueHigh priorityNeeds renderingaccessibility.select_name
Ensure select element has an accessible name. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "select-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "select-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/select-name
#Server-side image maps must not be used
OpportunityLow priorityNeeds renderingaccessibility.server_side_image_map
Ensure that server-side image maps are not used. WCAG success criteria: 2.1.1. Checked by axe-core 4.11.4 (rule "server-side-image-map") in the rendered page.
How to fix. Open the page, find the elements axe reports for "server-side-image-map", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/server-side-image-map
#The skip-link target should exist and be focusable
WarningMedium priorityNeeds renderingaccessibility.skip_link
Ensure all skip links have a focusable target. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "skip-link") in the rendered page.
How to fix. Open the page, find the elements axe reports for "skip-link", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/skip-link
#Summary elements must have discernible text
IssueHigh priorityNeeds renderingaccessibility.summary_name
Ensure summary elements have discernible text. WCAG success criteria: 4.1.2. Checked by axe-core 4.11.4 (rule "summary-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "summary-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/summary-name
#<svg> elements with an img role must have alternative text
IssueHigh priorityNeeds renderingaccessibility.svg_img_alt
Ensure <svg> elements with an img, graphics-document or graphics-symbol role have accessible text. WCAG success criteria: 1.1.1. Checked by axe-core 4.11.4 (rule "svg-img-alt") in the rendered page.
How to fix. Open the page, find the elements axe reports for "svg-img-alt", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/svg-img-alt
#Elements should not have tabindex greater than zero
IssueHigh priorityNeeds renderingaccessibility.tabindex
Ensure tabindex attribute values are not greater than 0. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "tabindex") in the rendered page.
How to fix. Open the page, find the elements axe reports for "tabindex", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/tabindex
#Tables should not have the same summary and caption
OpportunityLow priorityNeeds renderingaccessibility.table_duplicate_name
Ensure the <caption> element does not contain the same text as the summary attribute. An axe-core best practice, not a WCAG requirement. Checked by axe-core 4.11.4 (rule "table-duplicate-name") in the rendered page.
How to fix. Open the page, find the elements axe reports for "table-duplicate-name", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/table-duplicate-name
#Table headers in a data table must refer to data cells
IssueHigh priorityNeeds renderingaccessibility.th_has_data_cells
Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe. WCAG success criteria: 1.3.1. Checked by axe-core 4.11.4 (rule "th-has-data-cells") in the rendered page.
How to fix. Open the page, find the elements axe reports for "th-has-data-cells", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/th-has-data-cells
#Lang attribute must have a valid value
IssueHigh priorityNeeds renderingaccessibility.valid_lang
Ensure lang attributes have valid values. WCAG success criteria: 3.1.2. Checked by axe-core 4.11.4 (rule "valid-lang") in the rendered page.
How to fix. Open the page, find the elements axe reports for "valid-lang", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/valid-lang
#<video> elements must have captions
IssueHigh priorityNeeds renderingaccessibility.video_caption
Ensure <video> elements have captions. WCAG success criteria: 1.2.2. Checked by axe-core 4.11.4 (rule "video-caption") in the rendered page.
How to fix. Open the page, find the elements axe reports for "video-caption", and fix each one. Deque's guide to this rule, with examples: https://dequeuniversity.com/rules/axe/4.11/video-caption
Performance 25
#Render-blocking resources
OpportunityHigh priorityNeeds a Lighthouse runperformance.render_blocking_resources
Stylesheets or scripts in the <head> hold up the first paint until they have downloaded and run. From the page's Lighthouse run.
How to fix. Inline the CSS the first screen needs and load the rest asynchronously; add defer or async to scripts that do not have to run before the page shows.
#Unused CSS
OpportunityMedium priorityNeeds a Lighthouse runperformance.unused_css
The page downloads CSS rules it never applies, which delays rendering and wastes bytes. From the page's Lighthouse run.
How to fix. Remove unused rules or split stylesheets per page or component, and load non-critical CSS later.
#Unused JavaScript
OpportunityMedium priorityNeeds a Lighthouse runperformance.unused_javascript
The page downloads JavaScript that never runs during the load, which costs bytes and main-thread time. From the page's Lighthouse run.
How to fix. Split bundles so each page loads only its own code, and defer code that is not needed until a user interacts.
#Unminified CSS
OpportunityLow priorityNeeds a Lighthouse runperformance.unminified_css
Stylesheets are served with whitespace and comments a minifier would remove. From the page's Lighthouse run.
How to fix. Minify CSS in the build step (most bundlers do it in production mode).
#Unminified JavaScript
OpportunityLow priorityNeeds a Lighthouse runperformance.unminified_javascript
Scripts are served with whitespace and comments a minifier would remove. From the page's Lighthouse run.
How to fix. Minify JavaScript in the build step and check that production builds are what the server sends.
#Images without explicit width and height
OpportunityMedium priorityNeeds a Lighthouse runperformance.unsized_images
Images without width and height attributes make the layout jump as they load, which counts against Cumulative Layout Shift. From the page's Lighthouse run.
How to fix. Give every <img> width and height attributes (or a CSS aspect-ratio) matching its intrinsic size.
#Offscreen images loaded up front
OpportunityMedium priorityNeeds a Lighthouse runperformance.offscreen_images
Images below the fold are downloaded during the initial load, competing with what the visitor sees first. Lighthouse 13 no longer reports this audit; the rule fires only on runs that include it. From the page's Lighthouse run.
How to fix. Add loading="lazy" to images below the fold, and never to the main image at the top.
#Images not efficiently encoded
OpportunityMedium priorityNeeds a Lighthouse runperformance.efficiently_encode_images
Images could be compressed further without visible loss of quality. On Lighthouse 13 this reads the image delivery insight, which also covers sizing and format. From the page's Lighthouse run.
How to fix. Re-encode images at a sensible quality (around 80 for JPEG and WebP) or serve them through an image CDN that does it for you.
#Images larger than displayed
OpportunityMedium priorityNeeds a Lighthouse runperformance.properly_size_images
Images are downloaded at a larger size than the page displays them, wasting bytes on phones in particular. From the page's Lighthouse run.
How to fix. Serve responsive images with srcset and sizes so each screen downloads the size it shows.
#Images not in a next-gen format
OpportunityLow priorityNeeds a Lighthouse runperformance.next_gen_image_formats
JPEG and PNG images that would be smaller as WebP or AVIF. From the page's Lighthouse run.
How to fix. Serve WebP or AVIF, with a <picture> fallback for older browsers, or let an image CDN negotiate the format.
#Text not compressed
OpportunityHigh priorityNeeds a Lighthouse runperformance.text_compression
HTML, CSS or JavaScript is served without gzip or Brotli compression. From the page's Lighthouse run.
How to fix. Turn on Brotli (or gzip) for text responses at the server or CDN.
#Short cache lifetimes for static assets
OpportunityMedium priorityNeeds a Lighthouse runperformance.efficient_cache_policy
Static files are served with a short or missing Cache-Control lifetime, so repeat visitors download them again. From the page's Lighthouse run.
How to fix. Serve fingerprinted static assets with Cache-Control: max-age=31536000, immutable.
#Multiple page redirects
OpportunityHigh priorityNeeds a Lighthouse runperformance.multiple_redirects
The page is reached through redirects, each adding a round trip before anything loads. From the page's Lighthouse run.
How to fix. Link directly to the final URL and collapse redirect chains into a single hop.
#Server response over 600 ms
OpportunityHigh priorityNeeds a Lighthouse runperformance.server_response_over_600ms
The document took more than 600 ms to start arriving (time to first byte), which delays everything after it. From the page's Lighthouse run.
How to fix. Cache rendered pages at the server or CDN, speed up slow database or API calls, and check hosting capacity.
#Missing preconnect to required origins
OpportunityLow priorityNeeds a Lighthouse runperformance.preconnect_required_origins
The page fetches critical resources from other origins without opening those connections early. From the page's Lighthouse run.
How to fix. Add <link rel="preconnect"> for the one or two third-party origins the first screen depends on.
#Excessive DOM size
OpportunityMedium priorityNeeds a Lighthouse runperformance.excessive_dom_size
The page has a very large number of elements, which slows style calculation, layout and every interaction. From the page's Lighthouse run.
How to fix. Paginate or virtualise long lists, remove hidden markup, and flatten deeply nested wrappers.
#Long JavaScript execution time
OpportunityMedium priorityNeeds a Lighthouse runperformance.javascript_execution_time
Parsing, compiling and running scripts takes a long time on a mid-range phone. From the page's Lighthouse run.
How to fix. Ship less JavaScript, defer non-critical scripts, and audit third-party tags.
#Too much main-thread work
OpportunityMedium priorityNeeds a Lighthouse runperformance.main_thread_work
The browser's main thread is busy for a long time during load, so the page responds late to input. From the page's Lighthouse run.
How to fix. Reduce JavaScript, break long tasks up, and move heavy work off the main thread.
#Large network payload
OpportunityMedium priorityNeeds a Lighthouse runperformance.large_network_payload
The page downloads a large total number of bytes, which is slow and costly on mobile connections. From the page's Lighthouse run.
How to fix. Compress and resize images, drop unused code and fonts, and lazy-load what is below the fold.
#Largest Contentful Paint over 2.5 s
OpportunityHigh priorityNeeds a Lighthouse runperformance.lcp_over_2_5s
The main content element took more than 2.5 seconds to render in the lab run. Google's "good" threshold is 2.5 s. From the page's Lighthouse run.
How to fix. Speed up the server response, preload the LCP image, and remove render-blocking resources in front of it.
#Cumulative Layout Shift over 0.1
OpportunityHigh priorityNeeds a Lighthouse runperformance.cls_over_0_1
Content moved around while the page loaded. Google's "good" threshold is 0.1. From the page's Lighthouse run.
How to fix. Reserve space for images, ads and embeds, and avoid inserting content above what is already on screen.
#Interaction to Next Paint over 200 ms
OpportunityHigh priorityNeeds a Lighthouse runperformance.inp_over_200ms
Real visitors (Chrome UX Report field data) waited more than 200 ms for the page to respond to their input. Only reported when PSI returns field data for the page. From the page's Lighthouse run.
How to fix. Break up long JavaScript tasks, defer work that runs on input, and keep event handlers small.
#First Contentful Paint over 1.8 s
OpportunityMedium priorityNeeds a Lighthouse runperformance.fcp_over_1_8s
The first text or image took more than 1.8 seconds to appear in the lab run. Google's "good" threshold is 1.8 s. From the page's Lighthouse run.
How to fix. Cut server response time and remove render-blocking CSS and scripts.
#Total Blocking Time over 200 ms
OpportunityMedium priorityNeeds a Lighthouse runperformance.tbt_over_200ms
Long main-thread tasks blocked input for more than 200 ms in total during load. From the page's Lighthouse run.
How to fix. Split long tasks, defer non-critical JavaScript, and remove unused third-party scripts.
#Speed Index over 3.4 s
OpportunityLow priorityNeeds a Lighthouse runperformance.speed_index_over_3_4s
The page's visible content filled in slowly in the lab run. Lighthouse's "good" threshold on mobile is 3.4 s. From the page's Lighthouse run.
How to fix. Improve the first render: server response, render-blocking resources and the size of what loads first.