TLDR: AI is great at pages that look right and unreliable at the parts you cannot see: alt text, focus outlines, keyboard support, and readable contrast. To make an AI-generated page accessible, name the five things that matter in your prompt (semantic HTML, alt text, contrast, keyboard operation, and labeled fields), then run three quick checks. Copy-paste prompts are below.
You ask AI for a page, it hands you something clean, you send it out. It looks great on your screen. And a real slice of the people who open it cannot use it, because accessibility is exactly the kind of thing that never shows up in a screenshot.
This is not an edge case. Plenty of your recipients navigate with a keyboard instead of a mouse, use a screen reader, zoom the page way up, or simply cannot make out light gray text. When a page ignores them, it does not throw an error. It just quietly fails, and you never find out. Making an AI-generated page accessible is mostly about knowing which invisible things to ask for, and this article is that list.
What “accessible” actually means
Accessibility means the page works for people who interact with it differently than you do. In practice, for the kind of page AI builds, it comes down to a handful of concrete things: the page has a sensible heading structure a screen reader can announce, images have text descriptions, text is dark enough to read, everything can be reached and operated with a keyboard, and form fields say what they are. That is most of it.
Here is the part that makes this worth your time: almost everything on that list also makes the page better for people with no disability at all. Good heading structure helps skimmers. Real buttons work on touch and with browser shortcuts. Strong contrast is easier to read in bright sunlight. Accessibility and general quality are the same project.
Why AI pages fail accessibility
Models are trained on a web full of both good and sloppy markup, and they optimize for what you can see. Ask for “a clean modern page” and you get one, styled beautifully, that fails in the same predictable ways every time.
- Headings used for size, not structure. The AI picks an
h3because it wanted smaller text, or jumps fromh1toh4, or scatters severalh1s around. A screen reader user navigates by headings, so a scrambled outline is like a table of contents with the page numbers shuffled. - Missing or useless alt text. Images arrive with no
altattribute, or a filename, or the word “image.” Someone using a screen reader hears nothing useful where your chart or photo should be. - Clickable divs. The model builds a “button” out of a styled
<div>with a click handler. It looks and clicks like a button with a mouse, but a keyboard cannot focus it and a screen reader does not announce it as anything. - Focus outlines removed. To look tidy, models often add
outline: noneto buttons and links. That deletes the visible ring that tells a keyboard user where they are on the page, stranding them. - Low-contrast text. The default aesthetic right now is light gray text on white. It photographs beautifully and is genuinely hard to read for a lot of people.
- Unlabeled form fields. Inputs get a placeholder and no
<label>. The placeholder disappears the moment you type, and a screen reader has nothing to announce for the field.
None of these show up when you glance at the result, which is exactly why they survive. The rest of this article is the language that closes each gap.
The five things that matter most
You do not need to write any of this markup yourself. You need to name it so the AI includes it. Here is what each item means and the phrasing that gets it.
1. Semantic HTML
Ask for real elements that carry meaning: one h1 per page, headings that descend in order, <button> for buttons, <a> for links, <nav>, <main>, and <footer> for structure. This single change fixes more than any other, because it is what assistive technology reads.
2. Alt text on every meaningful image
Every image that carries information needs a short description of what it shows and why it is there. Purely decorative images should get an empty alt="" so screen readers skip them. Tell the AI to do both.
3. Color contrast that passes
Aim for a contrast ratio of at least 4.5 to 1 for normal text and 3 to 1 for large text. That is the WCAG AA bar. The usual culprit is soft gray body text, so if the AI reaches for it, tell it to darken until it passes. There is more on this in color palettes that make AI pages look designed and typography tips for AI pages.
4. Full keyboard operation
Everything you can do with a mouse must work with a keyboard: Tab to move, Enter or Space to activate, arrow keys where they make sense. And keep a visible focus outline so people can see where they are. Ask for both explicitly, because the model’s instinct is to remove the outline for looks.
5. Labeled form fields
Every input, checkbox, and select needs a real <label> tied to it, not just a placeholder. This is what makes a form usable by voice control and screen readers, and it makes the whole form clearer for everyone.
Here is how the default AI page compares to one you asked to be accessible, on the same design.
| Default AI page | Accessible AI page | |
|---|---|---|
| Headings | Chosen for size, order scrambled | One h1, logical descending order |
| Images | No alt, or a filename | Real descriptions, decorative ones skipped |
| Buttons | Styled clickable divs | Real button and link elements |
| Keyboard | Some elements unreachable, no focus ring | Everything reachable, visible focus outline |
| Text contrast | Light gray on white | Meets or beats 4.5 to 1 |
| Forms | Placeholder only | Every field labeled |
| Looks right in a screenshot | Yes | Yes |
| Works for everyone | No | Yes |
Copy-paste prompts
Two situations: you are making a new page, or you are fixing one the AI already gave you. Here is language for both.
Add this to any page-building prompt:
Make this page accessible. Use semantic HTML: exactly one h1, headings in
descending order with no skipped levels, real button and a elements (never
clickable divs), and nav, main, and footer landmarks. Give every meaningful
image a short descriptive alt attribute and set alt="" on purely decorative
ones. Keep text-to-background contrast at 4.5 to 1 or higher for body text and
3 to 1 for large text. Make everything operable with the keyboard alone and
keep a clearly visible focus outline (do not use outline: none). Give every
form field a real associated label, not just a placeholder.Fix a page you already have:
Audit this HTML for accessibility and return the corrected single self-contained
file. Fix the heading order so there is one h1 and no skipped levels, add
descriptive alt text to every meaningful image and alt="" to decorative ones,
replace any clickable divs with real buttons or links, restore a visible focus
outline anywhere it was removed, raise any low-contrast text to at least 4.5 to 1
against its background, and connect a real label to every form field. Tell me
what you changed and why.
[paste your HTML]Ask it to grade itself before you ship:
Review this page as if you were running an accessibility audit against WCAG AA.
List every issue you find by severity, with the exact element and the fix. Do
not just say it looks good, look specifically for missing alt text, contrast
failures, keyboard traps, missing labels, and non-semantic interactive elements.That third prompt is worth running even when you think the page is fine. Models are far better at finding these problems on demand than at avoiding them by default. If you want the page to come back as one clean file you can publish, pair these with the approach in getting self-contained HTML from AI.
How to check it yourself in three minutes
You do not need to be an expert to catch the big problems. Three quick passes get you most of the way.
- Put the mouse away. Use only
Tab,Shift+Tab,Enter,Space, and arrow keys. Can you reach every link, button, and field? Can you always see where you are? If focus vanishes or you get stuck, that is a real bug for real people. - Check contrast. Paste your text and background colors into any online contrast checker, or use your browser’s built-in audit (in Chrome, the Lighthouse panel gives an accessibility score in seconds). Fix anything under 4.5 to 1.
- Listen to it. Turn on the screen reader already on your device (VoiceOver on Mac, Narrator on Windows) for one minute. Do the headings, links, and images read in an order that makes sense? You will hear a bad structure immediately.
Run those three and re-prompt for anything that fails. That loop, ask, check, re-ask, is the whole job.
Publishing a page that stays accessible
Once the page is right, the last step is getting it in front of people without losing what you built. This is where a lot of accessible work quietly dies: someone screenshots the page to share it, and every bit of it, the heading structure, the alt text, the keyboard support, collapses into a flat image that a screen reader reads as nothing.
The fix is to share the real, living page instead of a picture of it. Take the self-contained HTML the AI produced, or a ZIP for a multi-file project, and hand it to VisiblePage. You get a live URL immediately, with no build step or toolchain, and the page arrives exactly as built: the semantic structure intact, the alt text readable, every button reachable by keyboard, because your recipient is loading the actual page. It serves fast from the edge, and you can publish it public, private, or password-protected depending on who it is for.
Accessibility work is also iterative, and so is publishing. When your self-check turns up a contrast miss or a missing label and you re-prompt for the fix, you update the same link and everyone sees the corrected page with no new URL to resend. For more on getting AI output that does not look or behave generically in the first place, see making AI pages look less generic.
Try it now: Publish your accessible AI-generated page with VisiblePage and get a live link in seconds.
Frequently asked questions
How do I make an AI-generated page accessible?
Ask for it directly. Tell the AI to use real semantic HTML (one h1, headings in order, buttons that are actual button elements), add descriptive alt text to every meaningful image, keep text and background color contrast at 4.5 to 1 or higher, make everything usable with only the keyboard including a visible focus outline, and label every form field. Then check it with the keyboard and a contrast tool. Accessibility is mostly a question of asking for the right things up front.
Does AI generate accessible HTML by default?
Not reliably. Models produce pages that look correct but often skip the parts you cannot see: alt text, focus outlines they were told to remove for style, clickable divs that a keyboard cannot reach, and low-contrast gray-on-white text. None of it shows up in a screenshot, so it slips through unless you ask for accessibility specifically.
What is a good color contrast ratio for text?
Aim for at least 4.5 to 1 between normal body text and its background, and 3 to 1 for large text (roughly 24px, or 18.66px bold, and up). That is the WCAG AA standard. Light gray text on a white background is the most common failure, so if the AI reaches for a soft gray, ask it to darken the text until it passes.
How do I check if my page is accessible?
Three quick passes catch most issues. Unplug or ignore your mouse and try to reach and use everything with Tab, Enter, and the arrow keys. Run the page through a contrast checker or your browser’s built-in audit. And turn on a screen reader for a minute to hear whether headings, links, and images read in a sensible order. You do not need to be an expert to catch the big problems.