Description
AltScribe scans your WordPress Media Library for images that are missing alt text and helps you fix them fast — either with a vision AI model of your choice or by writing your own. Descriptive alt text improves accessibility for screen-reader users and helps search engines understand your images.
You stay in control: edit any AI suggestion before or after saving, or skip AI entirely and type alt text manually. Alt text is written to native WordPress attachment meta, so it never disappears.
What makes AltScribe different
Most alt-text tools lock you into one AI service. AltScribe lets you bring your own provider — and supports several at once with automatic fallback, so a bulk run keeps going even when one model hits a rate limit:
- Choose from Cloudflare Workers AI, OpenRouter, Google Gemini, OpenAI, Anthropic, or any custom OpenAI-compatible endpoint.
- Run a fully free, self-hosted model (Ollama, LM Studio) through the Custom endpoint — no per-image cost and no data leaving your server to a big vendor.
- Name-aware mode: when a filename looks like a person’s name (great for team headshots), the AI can use that name in the alt text.
Key features
- Alt text auditor: instantly list every Media Library image whose alt text is empty or missing.
- Fix Now / Fix All: generate descriptive alt text for one image or the whole library, rate-limit friendly.
- Manual editing: write and save your own alt text; SVG/vector files get a title-based suggestion.
- Smart context: the image title, caption, description and a cleaned filename hint are sent with the image for more accurate results.
- Auto fallback across every provider you have connected.
Alt text is written to native WordPress attachment meta (_wp_attachment_image_alt), so the values persist even if you deactivate or delete this plugin. Uninstalling removes only the plugin’s own settings, never your alt text.
Only vision (image-to-text) models can generate alt text, because the model needs to see the image.
External services
This plugin does not send any data anywhere until you connect a provider and ask it to generate alt text. When you click Fix Now, Fix All with AI, or Test AI Connection, the plugin makes a request to the provider you selected, using the API key you entered.
What is sent: the image (as bytes/base64) for the item you are fixing, a short text prompt, and small page context (the image title, caption, description, and a cleaned version of the filename). Requests are made only to the single provider tied to the model you selected. No analytics, tracking, or telemetry is sent, and nothing is sent to the plugin author.
Depending on which provider you connect, data is sent to one or more of the following third-party services. Please review each provider’s terms and privacy policy before use:
- Cloudflare Workers AI – https://api.cloudflare.com/ – Terms: https://www.cloudflare.com/website-terms/ – Privacy: https://www.cloudflare.com/privacypolicy/
- OpenRouter – https://openrouter.ai/ – Terms: https://openrouter.ai/terms – Privacy: https://openrouter.ai/privacy
- Google Gemini (Google AI) – https://generativelanguage.googleapis.com/ – Terms: https://ai.google.dev/gemini-api/terms – Privacy: https://policies.google.com/privacy
- OpenAI – https://api.openai.com/ – Terms: https://openai.com/policies/ – Privacy: https://openai.com/policies/privacy-policy
- Anthropic (Claude) – https://api.anthropic.com/ – Terms: https://www.anthropic.com/legal/consumer-terms – Privacy: https://www.anthropic.com/legal/privacy
- Custom endpoint – if you configure a Custom OpenAI-compatible endpoint, data is sent to the URL you provide. You are responsible for that endpoint’s terms and privacy.
Installation
- Upload the
altscribefolder to/wp-content/plugins/, or install the plugin through the Plugins screen in WordPress. - Activate the plugin through the Plugins screen.
- Go to Media > AltScribe.
- Open the Connect Providers tab and add an API key for at least one provider.
- Open the Active Model tab, choose a vision model, and Save. Use Test AI Connection to confirm it works.
- Open the Auditor tab, click Run Scan, then Fix Now, Fix All with AI, or type alt text manually.
FAQ
-
Do I need to pay for AI?
-
No. Cloudflare Workers AI and several OpenRouter models have free tiers, and you can run a local model through the Custom endpoint at no cost. Paid providers such as OpenAI and Anthropic are optional.
-
Can I use my ChatGPT Plus/Pro or Claude Pro subscription?
-
No. Those subscriptions are for the chat apps and do not include API access. To use OpenAI or Anthropic here you need a paid API key from their developer platforms. If you do not have one, use a free provider (Cloudflare, OpenRouter free models, or a local model via the Custom endpoint).
-
Does it help SEO?
-
Descriptive alt text helps search engines understand your images and improves image search visibility, while also making your site more accessible. The plugin writes standard alt attributes to your Media Library.
-
Where is the alt text stored?
-
In native WordPress attachment meta (
_wp_attachment_image_alt). It stays with your images even if you remove this plugin. -
Does it change or re-upload my images?
-
No. It only reads image bytes to send to the AI and writes text to the attachment’s alt field.
-
What about SVG or other vector files?
-
AI cannot read vector files. The plugin fills a suggestion from the image title so you can quickly edit and save it manually.
Contributors & Developers
“AltScribe” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “AltScribe” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial public release: Media Library scan, AI-generated alt text with Fix Now / Fix All, manual editing, and persistent saves to native attachment meta.
- Providers: Cloudflare Workers AI, OpenRouter, Google Gemini, OpenAI, Anthropic, and any custom OpenAI-compatible endpoint.
- Curated free/paid vision model list, Active Model selector, automatic fallback, and name-aware mode.
