Replit is a browser-based development platform whose AI feature, Replit Agent, can turn a plain-English description into a working full-stack web app, scaffolding the frontend, backend, and database for you. It has become a favorite of non-developers and solo founders because the entire build, hosting, and deployment loop lives in one tab. The catch is the same one that affects every AI builder: the person prompting the Agent usually cannot read the code it writes, so they have no way to tell whether the markup is accessible. In practice the generated frontend leans on clickable div and span elements instead of real buttons and links, labels form fields with placeholder text alone, uses light utility-class colors that fail contrast, and ships images without alt text. Because the AI optimizes for a result that looks right in the preview, keyboard and screen reader behavior never surfaces visually and goes unnoticed. The advantage Replit gives you over a closed builder is that the full source sits right there in the editor, so you can both prompt the Agent to fix issues and run real linters and scanners against the code. Replit apps are frequently genuine commercial products that take payments and store user data, which brings them under the European Accessibility Act and the ADA. This checklist covers the highest-impact issues in Replit Agent's output and how to correct them.

Common Accessibility Issues

critical

Clickable divs Instead of Native Buttons and Links

WCAG 2.1.1

Replit Agent frequently renders interactive elements as div or span tags with an onClick handler rather than real button or anchor elements. They work with a mouse but are absent from the tab order, ignore Enter and Space, and are announced by screen readers as plain text with no hint that they do anything.

How to fix:

Prompt the Agent to 'replace every clickable div and span with a native <button> for actions or an <a> for navigation, and remove onClick handlers from non-interactive elements.' Then Tab through the running app in the preview window and confirm every clickable thing is reachable and activatable from the keyboard.

Before
<div class="btn" onclick="submitForm()">
  Continue
</div>
After
<button type="button" class="btn" onclick="submitForm()">
  Continue
</button>
critical

Form Inputs Labeled Only by Placeholder Text

WCAG 3.3.2

AI-generated forms in Replit typically use the placeholder attribute as the only label. Placeholder text vanishes the moment a user types, is read inconsistently by screen readers, and usually fails contrast because of its light gray styling, so users who rely on assistive technology may reach a field with no idea what it is for.

How to fix:

Ask the Agent to 'add a visible <label> associated with every input via the for and id attributes, keeping any placeholder only as a supplementary hint.' Verify each field has a persistent label beside or above it.

Before
<input type="text" placeholder="Full name">
After
<label for="name">Full name</label>
<input id="name" type="text" placeholder="Jane Doe">
serious

Low-Contrast Generated Color Schemes

WCAG 1.4.3

The Agent tends to pick trendy palettes with light gray body text, pale secondary labels, and saturated buttons whose text is hard to read. These pairings often fall below the 4.5:1 ratio WCAG requires for normal text, hurting readability for low-vision users and anyone on a bright screen.

How to fix:

Prompt the Agent to 'audit all text colors against WCAG AA and replace any pairing below 4.5:1 with a darker value,' then confirm with a contrast checker on the live preview, paying attention to muted text, placeholders, and button labels.

critical

Images and Icon Controls Without Text Alternatives

WCAG 1.1.1

Generated img tags routinely lack an alt attribute, and icon-only controls such as a hamburger menu, close X, or search glyph carry no accessible name. Screen reader users hear nothing, or hear a raw file name read aloud.

How to fix:

Ask the Agent to 'add descriptive alt text to every informative image, set alt to an empty string for decorative images, and give every icon-only button an aria-label.' Review the descriptions yourself, since AI-written alt text is often vague or wrong.

serious

Custom Modals and Menus Without Focus Management

WCAG 2.4.3

When Replit Agent builds a modal, dropdown, or off-canvas menu from scratch, it usually omits focus management: focus is not moved into the dialog, not trapped, and not returned to the trigger on close, and Escape often does nothing. Keyboard and screen reader users can get stranded behind the open element.

How to fix:

Ask the Agent to 'use an accessible component library or pattern for all dialogs and menus, with focus moved in on open, trapped inside, returned to the trigger on close, and Escape-to-close wired up.' Test by opening each one with the keyboard and confirming Escape closes it and focus returns sensibly.

Replit-Specific Tips

  • Replit's biggest advantage for accessibility is that you have the full source in the editor. Open the Shell and run an automated checker against the running app, or add a linter such as eslint-plugin-jsx-a11y or html-validate to catch issues the preview hides.
  • Replit Agent fixes what you name specifically. Before shipping, send one broad instruction like 'review the whole app for WCAG 2.1 AA: semantic HTML, keyboard access, contrast, form labels, and alt text' and then re-test.
  • The preview pane never shows keyboard or screen reader behavior. Open the deployed URL and Tab through it end to end, then run a few screens with a screen reader before calling it done.
  • Each time you ask the Agent to add a feature, earlier accessibility fixes can regress in the regenerated code. Re-run your keyboard and contrast checks after every significant change, not only once at the end.

axe DevTools

A browser extension that audits the live output of your Replit app for WCAG violations, surfacing the semantic and ARIA problems the builder preview hides.

eslint-plugin-jsx-a11y

An ESLint plugin you can run in Replit's Shell against generated React code to automatically flag clickable divs, missing alt text, and unlabeled inputs.

WAVE

A web-based evaluation tool that overlays accessibility errors directly on your published Replit site, making missing labels and low contrast easy to locate.

Further Reading

Other CMS Checklists