findXpand
← All categories

Accessibility

← Back to Home

Checks that a page can be used by people relying on assistive technology — alt text, form labels, color contrast, and keyboard/semantic structure. Source: src/lib/htmlAudit.ts (analyzeA11y).

6 rules in this category.

IDRuleSeverityWeight
labelsN of N form fields have no associated labelMedium–High8–12 pts (scales with how much of the page is affected — see source)
button-namesN button(s) with no accessible nameHigh9 pts
langMissing lang attribute on <html>Medium8 pts
zoom-disabledPinch-to-zoom is disabledMedium8 pts
landmarksMissing landmark element(s): NMedium7 pts
decorative-altLikely decorative images have non-empty alt textLow4 pts

labels

N of N form fields have no associated label

SeverityWeightCategory
Medium–High8–12 pts (scales with how much of the page is affected — see source)Accessibility

What triggers it & why it matters: Inputs relying on placeholder text alone lose their hint on focus and are often skipped by screen readers.

How to fix it & effect on score: Add a <label for="..."> element (or aria-label) tied to every input. Fixing this removes the 8–12 pts (scales with how much of the page is affected — see source) deduction from the Accessibility category score on the next scan.

What a pass looks like: Form fields have associated labels


button-names

N button(s) with no accessible name

SeverityWeightCategory
High9 ptsAccessibility

What triggers it & why it matters: Buttons that show only an icon and expose no text or aria-label are announced as "button" with no purpose to screen reader users.

How to fix it & effect on score: Add an aria-label describing the action each icon-only button performs. Fixing this removes the 9 pts deduction from the Accessibility category score on the next scan.


lang

Missing lang attribute on <html>

SeverityWeightCategory
Medium8 ptsAccessibility

What triggers it & why it matters: Screen readers use this attribute to choose the correct pronunciation and voice; without it they default to guessing.

How to fix it & effect on score: Add a lang attribute, e.g. <html lang="en">. Fixing this removes the 8 pts deduction from the Accessibility category score on the next scan.

What a pass looks like: Page declares a language


zoom-disabled

Pinch-to-zoom is disabled

SeverityWeightCategory
Medium8 ptsAccessibility

What triggers it & why it matters: The viewport meta tag blocks zooming, which many low-vision users rely on to read content.

How to fix it & effect on score: Remove user-scalable=no and maximum-scale restrictions from the viewport meta tag. Fixing this removes the 8 pts deduction from the Accessibility category score on the next scan.


landmarks

Missing landmark element(s): N

SeverityWeightCategory
Medium7 ptsAccessibility

What triggers it & why it matters: Landmark regions let screen reader users jump directly to the main content, navigation, or footer instead of tabbing through everything.

How to fix it & effect on score: Wrap key regions in <main>, <nav>, and <footer> elements. Fixing this removes the 7 pts deduction from the Accessibility category score on the next scan.

What a pass looks like: Page uses main/nav/footer landmarks


decorative-alt

Likely decorative images have non-empty alt text

SeverityWeightCategory
Low4 ptsAccessibility

What triggers it & why it matters: Purely decorative images should have alt="" so screen readers skip them instead of reading a meaningless description.

How to fix it & effect on score: Set alt="" on purely decorative images. Fixing this removes the 4 pts deduction from the Accessibility category score on the next scan.