Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.DLandmark StructureActionNo landmarksFIX
No landmarks detected
Screen reader users have no way to navigate by region.
Screen reader users cannot quickly navigate to the primary content. Wrap your main content in <main>.
Without a <main> landmark, screen-reader users can't skip past the navigation to the page content — every page starts with re-reading the menu.
Learn more ▾ ▴
The <main> element marks the page's primary content area. Assistive tech offers a 'jump to main' shortcut — but only if <main> exists. Without it, every page navigation forces re-reading the header. Wrap your primary content in a single <main>.
Source: WAI-ARIA / WCAG 2.4.1
Add a skip link as the first focusable element so keyboard users can bypass repeated navigation.
Without a skip-nav link, keyboard users tab through every nav item before reaching content — every page, every visit.
Learn more ▾ ▴
WCAG 2.4.1 (Bypass Blocks) requires a mechanism to skip past repeated content. The standard implementation is a 'Skip to main content' link that's the first focusable element, visually hidden until focused. Three lines of HTML + four of CSS.
Source: WCAG 2.1 SC 2.4.1
FFavicon & BrandingAction2 icon(s) detectedFIX
DWeb ManifestActionNot foundFIX
No web manifest found.
DPrint StylesheetActionNo print stylesFIX
DLighthouse Accessibility AuditsActionScore 65/100 — 5 failing, 9 passedFIX
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
Names and labels
Link text (and alternate text for images, when used as links) that is discernible, unique, and focusable improves the navigation experience for screen reader users. Learn how to make links accessible.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
body > div#spec > h1#semantic-versioning-200 > a.anchor-link body > div#spec > h1#semantic-versioning-200 > a.anchor-link |
body > div#spec > h2#summary > a.anchor-link body > div#spec > h2#summary > a.anchor-link |
body > div#spec > h2#introduction > a.anchor-link body > div#spec > h2#introduction > a.anchor-link |
body > div#spec > h2#semantic-versioning-specification-semver > a.anchor-link body > div#spec > h2#semantic-versioning-specification-semver > a.anchor-link |
div#spec > ol > li#spec-item-1 > a.anchor-link div#spec > ol > li#spec-item-1 > a.anchor-link |
div#spec > ol > li#spec-item-2 > a.anchor-link div#spec > ol > li#spec-item-2 > a.anchor-link |
div#spec > ol > li#spec-item-3 > a.anchor-link div#spec > ol > li#spec-item-3 > a.anchor-link |
div#spec > ol > li#spec-item-4 > a.anchor-link div#spec > ol > li#spec-item-4 > a.anchor-link |
div#spec > ol > li#spec-item-5 > a.anchor-link div#spec > ol > li#spec-item-5 > a.anchor-link |
div#spec > ol > li#spec-item-6 > a.anchor-link div#spec > ol > li#spec-item-6 > a.anchor-link |
div#spec > ol > li#spec-item-7 > a.anchor-link div#spec > ol > li#spec-item-7 > a.anchor-link |
div#spec > ol > li#spec-item-8 > a.anchor-link div#spec > ol > li#spec-item-8 > a.anchor-link |
div#spec > ol > li#spec-item-9 > a.anchor-link div#spec > ol > li#spec-item-9 > a.anchor-link |
div#spec > ol > li#spec-item-10 > a.anchor-link div#spec > ol > li#spec-item-10 > a.anchor-link |
div#spec > ol > li#spec-item-11 > a.anchor-link div#spec > ol > li#spec-item-11 > a.anchor-link |
body > div#spec > h2#backusnaur-form-grammar-for-valid-semver-versions > a.anchor-link body > div#spec > h2#backusnaur-form-grammar-for-valid-semver-versions > a.anchor-link |
body > div#spec > h2#why-use-semantic-versioning > a.anchor-link body > div#spec > h2#why-use-semantic-versioning > a.anchor-link |
body > div#spec > h2#faq > a.anchor-link body > div#spec > h2#faq > a.anchor-link |
body > div#spec > h3#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase > a.anchor-link body > div#spec > h3#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase > a.anchor-link |
body > div#spec > h3#how-do-i-know-when-to-release-100 > a.anchor-link body > div#spec > h3#how-do-i-know-when-to-release-100 > a.anchor-link |
body > div#spec > h3#doesnt-this-discourage-rapid-development-and-fast-iteration > a.anchor-link body > div#spec > h3#doesnt-this-discourage-rapid-development-and-fast-iteration > a.anchor-link |
body > div#spec > h3#if-even-the-tiniest-backward-incompatible-changes-to-the-public-api-require-a-major-version-bump-wont-i-end-up-at-version-4200-very-rapidly > a.anchor-link body > div#spec > h3#if-even-the-tiniest-backward-incompatible-changes-to-the-public-api-require-a-major-version-bump-wont-i-end-up-at-version-4200-very-rapidly > a.anchor-link |
body > div#spec > h3#documenting-the-entire-public-api-is-too-much-work > a.anchor-link body > div#spec > h3#documenting-the-entire-public-api-is-too-much-work > a.anchor-link |
body > div#spec > h3#what-do-i-do-if-i-accidentally-release-a-backward-incompatible-change-as-a-minor-version > a.anchor-link body > div#spec > h3#what-do-i-do-if-i-accidentally-release-a-backward-incompatible-change-as-a-minor-version > a.anchor-link |
body > div#spec > h3#what-should-i-do-if-i-update-my-own-dependencies-without-changing-the-public-api > a.anchor-link body > div#spec > h3#what-should-i-do-if-i-update-my-own-dependencies-without-changing-the-public-api > a.anchor-link |
body > div#spec > h3#what-if-i-inadvertently-alter-the-public-api-in-a-way-that-is-not-compliant-with-the-version-number-change-ie-the-code-incorrectly-introduces-a-major-breaking-change-in-a-patch-release > a.anchor-link body > div#spec > h3#what-if-i-inadvertently-alter-the-public-api-in-a-way-that-is-not-compliant-with-the-version-number-change-ie-the-code-incorrectly-introduces-a-major-breaking-change-in-a-patch-release > a.anchor-link |
body > div#spec > h3#how-should-i-handle-deprecating-functionality > a.anchor-link body > div#spec > h3#how-should-i-handle-deprecating-functionality > a.anchor-link |
body > div#spec > h3#does-semver-have-a-size-limit-on-the-version-string > a.anchor-link body > div#spec > h3#does-semver-have-a-size-limit-on-the-version-string > a.anchor-link |
body > div#spec > h3#is-v123-a-semantic-version > a.anchor-link body > div#spec > h3#is-v123-a-semantic-version > a.anchor-link |
body > div#spec > h3#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string > a.anchor-link body > div#spec > h3#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string > a.anchor-link |
body > div#spec > h2#about > a.anchor-link body > div#spec > h2#about > a.anchor-link |
body > div#spec > h2#license > a.anchor-link body > div#spec > h2#license > a.anchor-link |
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.
Best practices
Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. Learn more about the viewport meta tag.
Informational: a Permissions-Policy directive showing feature -> allowed origins.
Source: MDN Permissions-Policy
| Failing Elements |
|---|
head > meta head > meta |
Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. Learn more about touch targets.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
العربية (ar) body > ul.nav > li.language > a |
বাংলা (bn) body > ul.nav > li.language > a |
čeština (cs) body > ul.nav > li.language > a |
Dansk (da) body > ul.nav > li.language > a |
Deutsch (de) body > ul.nav > li.language > a |
Ελληνικά (el) body > ul.nav > li.language > a |
English (en) body > ul.nav > li.language > a |
español (es) body > ul.nav > li.language > a |
فارسی (fa) body > ul.nav > li.language > a |
français (fr) body > ul.nav > li.language > a |
עברית (he) body > ul.nav > li.language > a |
हिन्दी (hin) body > ul.nav > li.language > a |
hrvatski (hr) body > ul.nav > li.language > a |
magyar (hu) body > ul.nav > li.language > a |
Հայերեն (hy) body > ul.nav > li.language > a |
日本語 (ja) body > ul.nav > li.language > a |
ქართული (ka) body > ul.nav > li.language > a |
한국어 (ko) body > ul.nav > li.language > a |
Nederlands (nl) body > ul.nav > li.language > a |
polski (pl) body > ul.nav > li.language > a |
pyccкий (ru) body > ul.nav > li.language > a |
slovensky (sk) body > ul.nav > li.language > a |
slovenščina (sl) body > ul.nav > li.language > a |
српски (sr-Cyrl) body > ul.nav > li.language > a |
srpski (sr-Latn) body > ul.nav > li.language > a |
українська (uk) body > ul.nav > li.language > a |
Tiếng Việt (vi) body > ul.nav > li.language > a |
简体中文 (zh-CN) body > ul.nav > li.language > a |
繁體中文 (zh-TW) body > ul.nav > li.language > a |
One main landmark helps screen reader users navigate a web page. Learn more about landmarks.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
html html |
These items highlight common accessibility best practices.
Internationalization and localization
Specifying a valid BCP 47 language on elements helps ensure that text is pronounced correctly by a screen reader. Learn how to use the `lang` attribute.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
हिन्दी (hin) body > ul.nav > li.language > a |
These are opportunities to improve the interpretation of your content by users in different locales.
BLink & Button Quality32 issue(s) across 81 links and 0 buttonsREVIEW
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| #semantic-versioning-200 | (empty) | empty | Add link text or aria-label |
| #summary | (empty) | empty | Add link text or aria-label |
| #introduction | (empty) | empty | Add link text or aria-label |
| #semantic-versioning-specification-semve… | (empty) | empty | Add link text or aria-label |
| #spec-item-1 | (empty) | empty | Add link text or aria-label |
| #spec-item-2 | (empty) | empty | Add link text or aria-label |
| #spec-item-3 | (empty) | empty | Add link text or aria-label |
| #spec-item-4 | (empty) | empty | Add link text or aria-label |
| #spec-item-5 | (empty) | empty | Add link text or aria-label |
| #spec-item-6 | (empty) | empty | Add link text or aria-label |
| #spec-item-7 | (empty) | empty | Add link text or aria-label |
| #spec-item-8 | (empty) | empty | Add link text or aria-label |
| #spec-item-9 | (empty) | empty | Add link text or aria-label |
| #spec-item-10 | (empty) | empty | Add link text or aria-label |
| #spec-item-11 | (empty) | empty | Add link text or aria-label |
| #backusnaur-form-grammar-for-valid-semve… | (empty) | empty | Add link text or aria-label |
| #why-use-semantic-versioning | (empty) | empty | Add link text or aria-label |
| #faq | (empty) | empty | Add link text or aria-label |
| #how-should-i-deal-with-revisions-in-the… | (empty) | empty | Add link text or aria-label |
| #how-do-i-know-when-to-release-100 | (empty) | empty | Add link text or aria-label |
| #doesnt-this-discourage-rapid-developmen… | (empty) | empty | Add link text or aria-label |
| #if-even-the-tiniest-backward-incompatib… | (empty) | empty | Add link text or aria-label |
| #documenting-the-entire-public-api-is-to… | (empty) | empty | Add link text or aria-label |
| #what-do-i-do-if-i-accidentally-release-… | (empty) | empty | Add link text or aria-label |
| #what-should-i-do-if-i-update-my-own-dep… | (empty) | empty | Add link text or aria-label |
| #what-if-i-inadvertently-alter-the-publi… | (empty) | empty | Add link text or aria-label |
| #how-should-i-handle-deprecating-functio… | (empty) | empty | Add link text or aria-label |
| #does-semver-have-a-size-limit-on-the-ve… | (empty) | empty | Add link text or aria-label |
| #is-v123-a-semantic-version | (empty) | empty | Add link text or aria-label |
| #is-there-a-suggested-regular-expression… | (empty) | empty | Add link text or aria-label |
| #about | (empty) | empty | Add link text or aria-label |
| #license | (empty) | empty | Add link text or aria-label |
Links without text are announced as raw URLs by screen readers.
#semantic-versioning-200; #summary; #introduction; #semantic-versioning-specification-semver; #spec-item-1; #spec-item-2; #spec-item-3; #spec-item-4; #spec-item-5; #spec-item-6 (+22 more)
Links with no accessible text (empty <a></a>, image-only no alt, icon-only no aria-label) are unidentifiable to screen readers.
Source: WCAG 2.1 SC 2.4.4
B404 Error PageHTTP 404, custom pageREVIEW
BDark Mode SupportDark mode detectedREVIEW
Detection limited to meta tags and inline styles.
A+Heading Hierarchy21 headingsPASS
- H1 Semantic Versioning 2.0.0
- H2 Summary
- H2 Introduction
- H2 Semantic Versioning Specification (SemVer)
- H2 Backus–Naur Form Grammar for Valid SemVer Versions
- H2 Why Use Semantic Versioning?
- H2 FAQ
- H3 How should I deal with revisions in the 0.y.z initial development phase?
- H3 How do I know when to release 1.0.0?
- H3 Doesn’t this discourage rapid development and fast iteration?
- H3 If even the tiniest backward incompatible changes to the public API require a major version bump, won’t I end up at version 42.0.0 very rapidly?
- H3 Documenting the entire public API is too much work!
- H3 What do I do if I accidentally release a backward incompatible change as a minor version?
- H3 What should I do if I update my own dependencies without changing the public API?
- H3 What if I inadvertently alter the public API in a way that is not compliant with the version number change (i.e. the code incorrectly introduces a major breaking change in a patch release)?
- H3 How should I handle deprecating functionality?
- H3 Does SemVer have a size limit on the version string?
- H3 Is “v1.2.3” a semantic version?
- H3 Is there a suggested regular expression (RegEx) to check a SemVer string?
- H2 About
- H2 License
A+Alt Text QualityNo imagesPASS
A+Form AccessibilityNo form controlsPASS
A+Color Contrast (Screenshot)20 text elements analyzed, 0 fail WCAG AAPASS
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
Show all checked elements (20)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h1 Semantic Versioning … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Summary | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Introduction | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Semantic Versioning … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Backus–Naur Form G… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 Why Use Semantic Ver… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 FAQ | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 About | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h2 License | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 How should I deal wi… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 How do I know when t… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Doesn’t this disco… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 If even the tiniest … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Documenting the enti… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 What do I do if I ac… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 What should I do if … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 What if I inadverten… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 How should I handle … | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Does SemVer have a s… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Is “v1.2.3” a se… | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
Methodology: The top 20 text elements by font size were checked. Background color was sampled from the desktop screenshot using a 5-point pattern. WCAG 2.1 AA requires 4.5:1 for normal text and 3:1 for large text.