What this accessibility checker looks at
Website accessibility means people with disabilities can use your site: someone who is blind and uses a screen reader, someone who can't use a mouse, someone with low vision who zooms in, or someone who can't hear a video. Many of the most common problems are visible in a page's code, and those are what this checker reads:
- Page language and title: screen readers use the language to pick a voice, and read the title first.
- Images: whether each image has alt text (the words read out instead of the image), and whether image links say where they go.
- Links and buttons: whether each one has a name a screen reader can read, such as icon-only social media links and menu buttons. Links that only say “click here” or “read more” are noted.
- Form fields: whether each field has a label, not just grey hint text.
- Headings: a main heading (h1), and heading levels that don't skip (h2 to h4).
- Embedded frames: maps, videos and booking widgets need a title.
- Zoom on phones: whether the page stops people from pinch-zooming.
- Media that plays by itself: audio or video set to start on its own.
- Repeated ids and tables without header cells: smaller things that can confuse screen readers.
- Color contrast, but only for text whose text and background colors are both written into the HTML. Most colors come from style sheets, which need a browser to check.
Results are grouped into Needs fixing, Worth a look, Nothing found and Not checked by this tool. The last group is the list of things only a person can test, and it is on every result.
What an automated check can't tell you
No automated tool, including this one, can tell you that a website is accessible. Tools catch some of the common, easy-to-spot problems. Many important ones need a person:
- Keyboard use: press Tab to move through the page. You should always see where you are, reach every link, button and form field, and never get stuck.
- Screen reader testing: VoiceOver is built into iPhones and Macs, TalkBack into Android phones, and NVDA is free for Windows.
- Meaningful alt text: a tool can see that alt text exists, not whether it describes the image.
- Captions and transcripts: whether videos have accurate captions.
- Color contrast from your style sheets, text on top of photos, and focus outlines.
- Things scripts add after the page loads: chat widgets, booking forms, pop-ups and cookie banners.
The W3C, which writes the Web Content Accessibility Guidelines (WCAG), explains them in its WCAG overview, and has a short guide to easy checks you can do yourself. For a full review, hire a professional accessibility auditor; many test with people who use screen readers every day.
Accessibility and the law
We can't give legal advice, and this checker can't tell you whether your website meets the Americans with Disabilities Act (ADA) or any other law. WCAG is the standard most often used to measure website accessibility, but whether and how a law applies to your website is a question for a lawyer. If you have received a legal letter about your website, talk to a lawyer.
Be careful with any product that promises to make your site meet the law with one line of code. A toolbar or “overlay” widget runs on top of your page; it doesn't fix the problems in your page's own code, which is what this checker (and most others) read.
How to fix each issue
Menu names below are the ones we know from each builder's own settings. They can change between versions, so if you can't find one, search the builder's help pages for the same words.
Page language
The page should start with a tag like <html lang="en"> (or lang="es" for Spanish, and so on).
- WordPress: Settings → General → Site Language. Most themes then add it to every page. If it is still missing, the theme is out of date: update it, or ask its developer.
- Wix: Wix writes this part of the page itself, from your site's language settings. Check the site language in your dashboard settings; if the checker still flags it, contact Wix support.
- Squarespace: Squarespace sets it from your site language in Settings → Site Languages (older dashboards: Language & Region).
- Shopify: your theme sets it. In Online Store → Themes → … → Edit code, open
layout/theme.liquid: it should start with<html lang="{{ request.locale.iso_code }}". Shopify's own free themes already do this.
Page title
- WordPress: Settings → General → Site Title, and each page's own title. An SEO plugin such as Yoast SEO or Rank Math lets you set the title of each page.
- Wix: open the page's SEO settings (in the Pages panel, the page's … menu, then SEO basics) and fill in the title.
- Squarespace: click the gear icon next to the page, open the SEO tab and fill in the SEO title.
- Shopify: the home page title is in Online Store → Preferences; for products, collections and pages, edit the Search engine listing at the bottom of each one.
Alt text for images and image links
Write what matters about the image in a few words: “Chocolate birthday cake with candles”, not “cake.jpg”. If the image is a link or button, say where it goes: “Book an appointment”. If an image is only decoration (a background pattern, a divider), give it empty alt text so screen readers skip it; most builders do this when you leave the field empty and mark it as decorative.
- WordPress: click the image in the block editor and fill in Alternative text in the block settings on the right. In Media → Library each image also has an Alt Text field, but images already placed on a page may need updating in the block too.
- Wix: click the image in the Editor, open its Settings and fill in the field that asks what's in the image (that is Wix's alt text). Image buttons and icons have a similar field in their settings.
- Squarespace: edit the image block and fill in its alt text field. In some layouts Squarespace uses the image's file name or caption instead, so give images real names before you upload them.
- Shopify: for product images, open the product, click the image and choose Add alt text. Images in your theme (banners, slideshows) usually have an alt text field in the theme editor or in the Files area (Content → Files).
Links and buttons with no name
These are usually icon-only links and buttons: social media icons, phone, search, cart, or the menu button on phones. Each needs a short label that a screen reader reads out, like “Our Facebook page” or “Open menu”. In code it looks like <a href="…" aria-label="Our Facebook page">.
- WordPress: the Social Icons block has a label field for each icon in its settings. Page builders usually have a title or label field on icons. If the theme adds the icon (often the menu or search button), update the theme or ask its developer.
- Wix: look in the element's settings for a text or label field. Wix's Accessibility Wizard (in the Editor's Settings menu) can point out some of these.
- Squarespace: empty links often come from buttons or image blocks with a link but no text: add button text or alt text, or remove the link.
- Shopify: theme icons (cart, search, menu) are in your theme's code: update to the newest version of your theme, or ask its developer. A widget from an app: ask the app's developer.
Form fields without labels
Every field needs a label that says what to type, like “Your email”, and the label should stay visible. Grey hint text inside the box (a placeholder) is not enough: it disappears when people start typing.
- WordPress: form plugins give every field a label: fill it in and don't choose options like “hide label” or “placeholder only”. In Contact Form 7, wrap each field in a label, like
<label>Your email [email* your-email]</label>. - Wix: in the form's field settings, give every field a title and keep it shown.
- Squarespace: in the form block, every field has a label: fill them in.
- Shopify: the contact and newsletter forms come from your theme. If they are flagged, update the theme or ask its developer.
Headings
Use one Heading 1 that says what the page is about, then Heading 2 for each section and Heading 3 inside those. Pick the heading level by its place in the outline, not by how big it looks; change the size with styling instead.
- WordPress: the Heading block has a level picker (H1 to H6) in its toolbar. Many themes make the page title the H1, so start your sections with H2.
- Wix: select the text and choose a heading level (Heading 1 to Heading 6) in its text settings.
- Squarespace: choose Heading 1 to Heading 4 in the text block's format menu.
- Shopify: headings come from your theme's sections. A section's “heading size” setting may change only the size, not the level; ask the theme developer if the levels are wrong.
Repeated ids
An id is an internal name for one part of a page, and should be used once. Repeats usually come from the same embed code pasted twice (two forms, two widgets), or from a theme or app. Remove duplicate embeds where you can. Repeats only matter much when a label points to the repeated id, which is why those are under “Needs fixing”; otherwise this is a low priority. On Wix and Squarespace these ids are mostly written by the builder; ask their support if a label is affected.
Embedded frames without a title
Maps, videos and booking or review widgets are often embedded as frames. Add a short title to the embed code: <iframe src="…" title="Map of our shop on Google Maps">. Our free Google Maps Embed Generator adds a title to the map code it makes.
- WordPress: the Embed blocks for YouTube and Vimeo usually add a title for you. For code you pasted into a Custom HTML block, add the title yourself.
- Wix: for code you pasted into an Embed HTML element, add the title in the code. Frames that Wix adds itself can't be changed by you.
- Squarespace: in a Code or Embed block, add the title in the code.
- Shopify: in a Custom Liquid section or the theme code, add the title to the frame.
Zooming is blocked
The page's viewport tag should be <meta name="viewport" content="width=device-width, initial-scale=1">, without maximum-scale=1 or user-scalable=no.
- WordPress: the tag is in your theme (usually
header.php) or set by a theme or plugin option. Ask the theme developer, or change it in a child theme. - Wix and Squarespace: the builder writes this tag. If the checker flags it, contact their support.
- Shopify: in Online Store → Themes → … → Edit code, the tag is in
layout/theme.liquid.
Media that plays by itself
Never start sound by itself. Video that plays on its own should be muted and have a visible pause button, or not start at all.
- WordPress: the Video block has an Autoplay switch in its settings. For a YouTube embed, remove
autoplay=1from its address. - Wix: in the video player's settings, turn off autoplay.
- Squarespace: background videos play muted and on a loop; keep them short and calm, or use an image instead. For other videos, check the video block's settings for autoplay.
- Shopify: many themes' video sections have an autoplay setting: turn it off, or make sure the video has a pause button.
Links that say “click here” or “read more”
Make the link words say where the link goes: “See our menu” instead of “Click here”, or “Read more about our facials” instead of “Read more”. You can change link text in any builder's editor; a “Read more” added by a WordPress theme is often changed in the theme's settings.
Tables without header cells
If a table shows information (prices, opening hours, sizes), its first row or column should be header cells. In WordPress, turn on Header section in the Table block's settings. In code, use <th> instead of <td> for the headers. Opening hours also work well as a simple list.
Text that is hard to read
Normal text needs a contrast of at least 4.5 : 1 with its background, and large text at least 3 : 1. Make the text darker or the background lighter (or the other way round), and check the two colors with a free tool such as WebAIM's contrast checker.
- WordPress: the Color settings of each block (Text and Background), or your theme's global styles.
- Wix: the text's color in its settings, or your site's theme colors.
- Squarespace: Site Styles → Colors.
- Shopify: in the theme editor, Theme settings → Colors.
Your website builder's own accessibility help
- Wix has an Accessibility Wizard in the Editor's Settings menu that scans your site for some issues and walks you through fixes.
- WordPress: themes tagged “Accessibility Ready” in the WordPress.org theme directory have been reviewed for a set of accessibility basics. Plugins and page builders you add can still introduce problems.
- Squarespace: we're not aware of a built-in accessibility checker. Its help center has guidance on making sites more accessible.
- Shopify: Shopify's own free themes are designed with accessibility in mind; keep your theme updated, and check apps that add widgets to your store.
None of these settings, and no checker, make a site accessible on their own. They help you find and fix problems.
What this checker does, and its limits
- Reads the HTML of the one page you enter, from our server, following up to 5 redirects. It reads the page as served, before scripts run, so anything your site's scripts add later (chat widgets, booking forms, pop-ups) isn't checked.
- Reads only the page's own HTML and the style written directly into it, not your style sheets. That is why it checks color contrast only where both colors are written into the HTML.
- Checks one page. Other pages, PDFs and downloadable documents need their own checks.
- Is not an audit, a review by a person, or legal advice, and can't tell you whether your site meets any law or standard.
- Introduces itself as FlatRateChatBot. Some sites block automated checks; then the result says so instead of guessing.
- Up to 60 checks a day from one connection, and 30 a day of the same website. No report is saved: we keep only the counters for these daily limits and anonymous usage counts.
- Broken links are an accessibility problem too: everyone gets stuck on them. The free Broken Link Checker tests every link on your pages.
- Also free: the Broken Link Checker tests every link on your pages.
- Also free: the Sitemap Generator makes an XML sitemap of your pages and checks the one you have.
- Also free: the Google Maps Embed Generator makes the code to show your business on a Google map on your website.
- Also free: the WhatsApp Link Generator makes WhatsApp, click-to-call and text links, website buttons and a QR code.
- Also free: the Google Review Link Generator turns your Google review link into a QR code, a printable sign and ready-to-send messages.
- Also free: the Website Down Checker checks from our server whether a website answers right now, and why not.
- Also free: the Redirect Checker shows every redirect a web address goes through, step by step.
- Also free: the SSL Checker checks that your site opens securely on https and shows its certificate details.
- Also free: the Robots.txt Checker reads your robots.txt and shows whether it blocks Google, AI crawlers or your sitemap.
- Also free: the Robots.txt Generator makes a robots.txt file for your website and checks it as you type.
- Also free: the Meta Tag Checker shows the title, description and other tags Google reads on a page, with a search preview.
- Also free: the Open Graph Checker shows how a page will look when shared on Facebook, LinkedIn and X, and checks its og:image.
Questions
Is the Website Accessibility Checker free?
Yes. There is no signup, no email and no card. It is made by FlatRateChat, a website chatbot company, and it doesn't change anything on your site.
My page had no issues. Does that mean it meets the ADA?
No. This checker can't tell you that, and no automated tool can. A clean result means our checks didn't find the common problems they look for in the page's HTML. Many issues can only be found by a person, and whether a law applies to your website is a question for a lawyer.
What is WCAG?
The Web Content Accessibility Guidelines, written by the W3C. They describe what makes web content accessible, in levels A, AA and AAA; many organizations aim for level AA. The checks here are based on a few of the guidelines that can be tested from a page's code.
Will an accessibility widget fix these issues?
A toolbar or “overlay” widget runs on top of your page; it doesn't fix the problems in your page's own code, which is what this checker (and most others) read. Fixing them in your builder or theme is what helps visitors.
Why are my results different from another checker's?
Checkers test different things in different ways. Some run your page in a full browser, with its scripts and style sheets, and can check more (like contrast). This one reads the HTML as served, so it can miss things scripts add, and it never guesses about what it can't see.
I fixed it, but the result hasn't changed. Why?
On Wix, Squarespace and other builders, remember to publish your changes. Some sites and hosts also keep an older copy of the page for a while (caching); wait a few minutes and check again.