Ebaltix – Alt Text Audit and AI Alt Text

Description

WordPress stores alt text in three unrelated places, and most plugins only fix one of them.

  1. Attachment metadata (_wp_attachment_image_alt) – what the Media Library edits.
  2. Baked into post content – when an editor inserts an image, WordPress copies the alt attribute literally into the post HTML. Fixing the Media Library afterwards does not change it. Your visitor still gets alt="".
  3. Images that are not attachments – theme-hardcoded, external, or offloaded to a CDN. There is no attachment metadata to fix.

Ebaltix handles all three, and shows you which layer each image needs fixing at, so the report matches what an accessibility checker actually sees on your pages.

What it does for free

Everything below runs on your own server, needs no account, and has no limit:

  • Scan and audit every image – Media Library, post and page content, featured images, WooCommerce galleries and ACF fields.
  • Classify each one as missing, needs improvement, or properly described, with the reason (filename as alt text, stray symbols, over 120 characters, generic placeholder).
  • Used vs unused – see which images actually appear on your site, so you can skip the uploads nobody sees.
  • Write alt text from metadata – built from the title, caption and filename. Unlimited, instant, no network request.
  • Fix rendered pages without editing your content. Alt text is injected at render time, so your posts are never rewritten and deactivating the plugin restores the previous behaviour exactly.
  • Review before anything is written. Every suggestion is shown next to the image and is fully editable.
  • Undo. Every change is logged with its original value and any run can be reversed in one click.
  • Never overwrites human-written alt text, unless you turn that guard off.
  • Decorative images are left alone. A spacer, divider or icon should have empty alt – describing it makes screen readers worse, not better.

Optional: AI descriptions

Metadata can only describe what WordPress already knows. For a photograph, the filename tells you nothing, so the plugin can optionally send the image to our hosted service to be described.

This is entirely optional. The plugin is fully functional without it, and nothing is sent anywhere until you press Connect this site and agree.

External services

This plugin can connect to SmartAlt Gen AI, a service operated by EcomBack, to generate alt text by looking at your images. This only happens if you choose to connect, and only when you press Generate with the AI option selected.

Service endpoint: https://accessibilitygenerator.com/alt-text-pro-wp/api/wp

What is sent when you press “Connect this site”:

  • Your site address
  • The email address of the administrator connecting
  • Your WordPress version, plugin version, and site language

This is used to create your account, issue a licence key, and count usage against your plan.

What is sent when you generate AI alt text:

  • A small thumbnail of the image (typically the medium_large size), or its URL if your media is offloaded to a CDN
  • The image filename and its own title field
  • The title of the post it is uploaded to in the Media Library, if any
  • Your chosen language, maximum length, and any extra instructions you have set

The image is held in memory only for the length of one description request and then discarded.

What the service stores: your site address, administrator email, plan and usage counters. It does not store image files, the alt text produced, or any of your page content.

Terms of Service: https://www.ecomback.com/eb-altix-terms-of-service
Privacy Policy: https://www.ecomback.com/eb-altix-pro-privacy-policy

Generating alt text with AI is a metered service. A free allowance is included; beyond that it requires a paid plan. Scanning, auditing, metadata-based alt text, applying and undoing are always free and never require an account.

Screenshots

Installation

  1. Upload the plugin to /wp-content/plugins/ or install it through Plugins > Add New.
  2. Activate it through the Plugins screen.
  3. Go to Ebaltix and press Scan my site.
  4. Review the audit, then generate alt text from metadata (free) or connect for AI descriptions.

Nothing is written to your site until you review the suggestions and press Embed.

FAQ

Do I need an account?

No. Scanning, auditing, metadata-based alt text, applying and undoing all work with no account and no limit. An account is only needed for AI descriptions.

Will this change my posts?

No. Alt text is written to the attachment, and rendered pages are corrected by a filter at output time. Your post content is left exactly as it is, and deactivating the plugin returns your pages to how they were.

Can I undo it?

Yes. Every change is recorded with its previous value. Open Bulk edit tasks and press Undo on any run.

Will it overwrite alt text I wrote myself?

No. Anything the audit considers properly described is left alone by default.

What about decorative images?

Spacers, dividers and icons are detected and excluded from generation. A decorative image should have empty alt text – a screen reader announcing “a thin grey line” is worse than saying nothing.

Does it work with WooCommerce, ACF or page builders?

Product galleries, featured images, ACF image fields and images inside post and page content are all found by the scan.

Is the AI any good?

It describes what is visible in the image and follows WCAG guidance on length and phrasing. You review and edit every suggestion before it is written, because an automatic description is a starting point, not a guarantee.

Does it work on WordPress Multisite?

Yes, per sub-site. Each sub-site keeps its own settings, its own image inventory and its own plan, and each is licensed and metered independently – so a plan bought for one sub-site applies to that sub-site only.

Centralised licensing across a network, where one subscription covers every sub-site, is not available.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Ebaltix – Alt Text Audit and AI Alt Text” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.3.3

  • Internal hardening of how the plugin talks to its own database tables. Every query is now built from bound parameters rather than assembled as text, and table names are passed as identifiers. No screen, setting or stored result changes.

0.3.2

  • The plugin is now called Ebaltix. Only the name and the admin menu have changed – your settings, your scan results and your history are untouched, and any link or bookmark to an old screen still works.
  • Updated Action Scheduler, the library that runs scans and generation in the background, to 4.1.
  • Now requires WordPress 6.8 or newer. That is what the new Action Scheduler needs; on an older site the plugin says so and stops rather than half-working.
  • On a site below that minimum, background scheduling is no longer loaded at all, so an unsupported WordPress can still reach wp-admin.

0.3.1

  • Buy extra AI descriptions without changing plan – a block of images added to your account, bought once. They do not expire at the end of the cycle and stay with you if you change or cancel your plan.
  • Plan & usage now shows your plan’s monthly allowance and any credits you have bought as separate figures, so a purchase is visible arriving rather than folded into one number.
  • Annual plans, billed once a year with two months free and a larger monthly allowance on every paid tier.
  • Skip images that already have alt text – a checkbox when generating for a hand-picked selection, so a bulk run can top up only what is missing without touching descriptions already written.
  • Search the image picker by filename.
  • Privacy Policy and Terms of Service are now linked from every screen.
  • Illustrations on the Review, Generate, Bulk tasks, Plan and Settings screens.
  • Choosing a plan no longer reports a failure when a single network request is dropped – it tries once more first.

0.3.0

  • Scheduled tasks now run at the time you set them for, instead of up to five minutes later.
  • Scheduled times now show which timezone they are in, and whether a task is due yet or still waiting – so a task set for your own clock can no longer look overdue when it is simply early.
  • A one-off task set for a time that has already passed is now refused, with the reason, instead of being quietly moved to the next day.
  • A scheduled task that finds nothing left to describe is reported as finished rather than as an error.
  • Scheduling a task now confirms it on screen, and says which timezone the time was read in.
  • Media items with no image file behind them – the kind an interrupted import leaves behind – are no longer sent to the AI. They are reported as needing a re-upload or removal, and no longer count against your plan on every attempt.
  • Review and embed now explains when a run produced nothing to review, instead of suggesting you generate the suggestions you had just asked for.
  • Scheduled work is more reliable on a site whose owner is not in wp-admin, and now survives deactivating and reactivating the plugin.
  • New setting, off by default: delete this plugin’s own records if the plugin is deleted. Your alt text is never removed either way – it lives in WordPress’s own field and stays on your site.
  • New navigation, and a refreshed Generate screen.

0.2.0

  • AI generation now tells the difference between a temporary failure and a permanent one. An image the AI could not describe because the service was busy is tried again; only an image that genuinely cannot be described is reported as such.
  • Images that failed temporarily are offered for retry instead of quietly disappearing from the report.
  • A run no longer reports itself finished while images are still waiting to be tried again.
  • Runs now wait between retries, and pause altogether when the AI service is overloaded rather than continuing to ask.
  • Images are claimed before work starts, so two overlapping runs can no longer describe – or count – the same image twice.
  • The Generate button in the Media Library now says why it could not write anything, instead of showing the same message for every cause. An image it failed on temporarily is offered for retry like any other.
  • Database update to version 6, applied automatically on update.

0.1.1

  • Initial release.
  • Scan and audit across the Media Library, post content, featured images, WooCommerce galleries and ACF fields.
  • Local classification and metadata-based alt text generation.
  • Optional AI descriptions through the SmartAlt Gen service.
  • Review-before-apply, render-time fixes for content images, and per-run undo.