Lighthouse accessibility scoring

Published on Updated on

The Lighthouse Accessibility score is a weighted average of all accessibility audits. Weighting is based on axe user impact assessments.

Each accessibility audit is pass or fail. Unlike the Performance audits, a page doesn't get points for partially passing an accessibility audit. For example, if some buttons on a page have accessible names, but others don't, the page gets a 0 for the Buttons do not have an accessible name audit.

The following table shows the weighting for each accessibility audit. More heavily weighted audits have a bigger effect on your score. Manual audits aren't included in the table because they don't affect your score.

AuditWeight
[accesskey] values are unique3
[aria-*] attributes match their roles10
button, link, and menuitem elements have accessible names3
[aria-hidden="true"] is not present on the document <body>10
[aria-hidden="true"] elements do not contain focusable descendents3
ARIA input fields have accessible names3
ARIA meter elements have accessible names3
ARIA progressbar elements have accessible names3
[role]s have all required [aria-*] attributes10
Elements with an ARIA [role] that require children to contain a specific [role] have all required children.10
[role]s are contained by their required parent element10
[role] values are valid10
ARIA toggle fields have accessible names3
ARIA tooltip elements have accessible names3
ARIA treeitem elements have accessible names3
[aria-*] attributes have valid values10
[aria-*] attributes are valid and not misspelled10
Buttons have an accessible name10
The page contains a heading, skip link, or landmark region3
Background and foreground colors have a sufficient contrast ratio3
<dl>'s contain only properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements.3
Definition list items are wrapped in <dl> elements3
Document has a <title> element3
[id] attributes on active, focusable elements are unique3
ARIA IDs are unique10
No form fields have multiple labels2
<frame> or <iframe> elements have a title3
Heading elements appear in a sequentially-descending order2
<html> element has a [lang] attribute3
<html> element has a valid value for its [lang] attribute3
Image elements have [alt] attributes10
<input type="image"> elements have [alt] text10
Form elements have associated labels10
Links have a discernible name3
Lists contain only <li> elements and script supporting elements (<script> and <template>).3
List items (<li>) are contained within <ul>, <ol> or <menu> parent elements3
The document does not use <meta http-equiv="refresh">10
[user-scalable="no"] is not used in the <meta name="viewport"> element and the [maximum-scale] attribute is not less than 5.10
<object> elements have alternate text3
No element has a [tabindex] value greater than 03
Cells in a <table> element that use the [headers] attribute refer to table cells within the same table.3
<th> elements and elements with [role="columnheader"/"rowheader"] have data cells they describe.3
[lang] attributes have a valid value3
<video> elements contain a <track> element with [kind="captions"]10

Updated on Improve article

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.