images_missing_alt
Umbodi has a model write alt text for every image that lacks it, publishes it in a pull request only when no image is left without, and checks the defect is gone from the live site.
Not fixed by Umbodi on its own site — it cannot be planted there
An image without alt text is absent for anyone using a screen reader — a WCAG level-A failure — and it is the only thing image search can read about the picture.
Fires when any image on the page has no alt text. Severity: warn.
The agent writes alt text for every image missing it and refuses a partial pass, so the fix either covers all of them or does not ship. The text is written by a model, so it is never stamped mechanical: it must clear the score bar, and the call is paid for only from the owner's daily allowance for unattended writing, which is off by default.
The change reaches the site as a pull request against its repository, opened by the Umbodi GitHub App, one page per pull request. A page rendered from a database row — a blog post, say — is healed by writing that row instead, and the write is read back before it counts.
The value is written, not derived, so it must clear the score bar of 55 on its own. It also applies only when the owner has armed unattended acting and set this category's autonomy dial to automatic; merging needs a separate opt-in.
One proposal in ten is held back as a control group — chosen by a fixed hash per project, not by hand — and is never applied unattended, so the effect of the fixes can be measured against the ones not made.
After the pull request merges and the production deploy appears, the agent fetches the live page and runs the same audit rule that raised the defect. The repair counts only when that rule no longer fires. If it still fires, the page is re-read up to five times, about two and a half hours, and then the agent reverts its own merge.
It stops, and says why, when the site has no GitHub App installation or chosen repository, when the page is not one it may write, when a pull request for the page is already open, when the required checks fail or a person has touched the branch, or when no deploy appears within six hours. It never merges on a check it cannot read, and never reverts on a page it cannot fetch.
Our site has nowhere this defect can be planted without breaking something real, so there is no live receipt. The repair path is proven in the test suite only. The reason, as the code states it:
the only pages with an <img> are methodology (3), walkthroughs (6) and developers (1), and all three are marketing pages pre-rendered into fr/ and es/ — so mirroredRefusal refuses the plant, correctly. There is no unmirrored page on this site with an image. Measured 2026-10-06.
Last verified 2026-10-11 08:43 UTC
Only what the test suite proves: the route from finding to verified repair works against fixtures. Nothing on this page claims it has happened live.
It does not prove a ranking or citation change. Umbodi never infers one from a fix: rank is measured separately, on Google, and reported as measured. One receipt also shows the path works on this site, not that it works on every site.
Umbodi has a model write alt text for every image that lacks it, publishes it in a pull request only when no image is left without, and checks the defect is gone from the live site.
Not live. Our site has nowhere it can be planted without breaking something real, so the repair is proven in the test suite only, and this page says why.
The receipts page lists every defect type the agent repairs on its own, and which of them it has repaired live on this site.