{"id":325427,"date":"2026-06-16T02:04:19","date_gmt":"2026-06-16T02:04:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/internick-smart-alt-generator\/"},"modified":"2026-08-28T20:24:49","modified_gmt":"2026-08-28T20:24:49","slug":"internick-smart-alt-generator","status":"publish","type":"plugin","link":"https:\/\/lo.wordpress.org\/plugins\/internick-smart-alt-generator\/","author":23515612,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.2","stable_tag":"1.3.2","tested":"7.1","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"AI Alt Text Generator for Images","header_author":"Nick Granados","header_description":"Automatically generate descriptive alt text for images using AI. Supports WordPress 7.0 AI Connectors and OpenAI API for older versions.","assets_banners_color":"6e60bb","last_updated":"2026-08-28 20:24:49","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ko-fi.com\/nickgranados","header_plugin_uri":"https:\/\/github.com\/internick2017\/smart-alt-generator","header_author_uri":"https:\/\/nickgranados.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":326,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.2":{"tag":"1.1.2","author":"internick2017","date":"2026-06-16 02:03:59","revision":3573867},"1.1.3":{"tag":"1.1.3","author":"internick2017","date":"2026-07-02 18:35:40","revision":3594378},"1.2.0":{"tag":"1.2.0","author":"internick2017","date":"2026-07-03 20:40:48","revision":3595520},"1.2.1":{"tag":"1.2.1","author":"internick2017","date":"2026-07-05 01:47:33","revision":3596267},"1.3.0":{"tag":"1.3.0","author":"internick2017","date":"2026-08-13 21:07:52","revision":3646286},"1.3.1":{"tag":"1.3.1","author":"internick2017","date":"2026-08-28 12:20:59","revision":3670322},"1.3.2":{"tag":"1.3.2","author":"internick2017","date":"2026-08-28 20:24:49","revision":3670896}},"upgrade_notice":{"1.3.2":"<p>Documentation update only. Nothing to do on your side.<\/p>","1.3.1":"<p>Name change only, to make the plugin easier to find. Nothing to do on your side.<\/p>","1.3.0":"<p>The Bulk Generator now works through your entire media library instead of\nstopping after the first 100 images.<\/p>","1.2.0":"<p>Adds the Alt Text Audit dashboard to review and fix your whole library&#039;s alt text.<\/p>","1.1.3":"<p>Fixes the Settings and Bulk Alt Text screens showing up blank.<\/p>","1.1.1":"<p>Adds a modern React admin UI, pause\/resume bulk generation, and fixes the\nWordPress 7.0 AI Connectors integration.<\/p>","1.1.0":"<p>Improves Gutenberg block editor panel and adds REST API settings endpoints.<\/p>","1.0.1":"<p>Improves reliability: images are sent directly to the AI, working on local and\nprivate sites. Errors are now shown clearly in the Media Library.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3573867,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3573867,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3573867,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3573867,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.2","1.1.3","1.2.0","1.2.1","1.3.0","1.3.1","1.3.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3573867,"resolution":"1","location":"assets","locale":"","width":1100,"height":721},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3573867,"resolution":"2","location":"assets","locale":"","width":1100,"height":277},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3596254,"resolution":"3","location":"assets","locale":"","width":1280,"height":939}},"screenshots":{"1":"Settings \u2014 configure your AI provider, model, language, and auto-generate on upload.","2":"Bulk generator \u2014 process every image missing alt text with live progress and a per-image result log.","3":"Alt Text Audit \u2014 score your media library's alt text, see every issue flagged, and fix each one with AI, manual edit, or ignore."}},"plugin_section":[],"plugin_tags":[1953,55517,17214,223883,42556],"plugin_category":[34,55],"plugin_contributors":[267313],"plugin_business_model":[],"class_list":["post-325427","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-alt-tag","plugin_tags-alt-text","plugin_tags-alt-text-generator","plugin_tags-image-alt-text","plugin_category-accessibility","plugin_category-seo-and-marketing","plugin_contributors-internick2017","plugin_committers-internick2017"],"banners":{"banner":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/banner-772x250.png?rev=3573867","banner_2x":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/banner-1544x500.png?rev=3573867","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/icon-128x128.png?rev=3573867","icon_2x":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/icon-256x256.png?rev=3573867","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/screenshot-1.png?rev=3573867","caption":"Settings \u2014 configure your AI provider, model, language, and auto-generate on upload."},{"src":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/screenshot-2.png?rev=3573867","caption":"Bulk generator \u2014 process every image missing alt text with live progress and a per-image result log."},{"src":"https:\/\/ps.w.org\/internick-smart-alt-generator\/assets\/screenshot-3.png?rev=3596254","caption":"Alt Text Audit \u2014 score your media library's alt text, see every issue flagged, and fix each one with AI, manual edit, or ignore."}],"raw_content":"<!--section=description-->\n<p><strong>AI Alt Text Generator for Images<\/strong> writes descriptive, SEO-friendly alt text for\nyour WordPress images automatically. Instead of typing an alt tag for every image\nby hand, you can generate alt text for one image, for a whole page, or for your\nentire media library at once.<\/p>\n\n<p>Missing alt text hurts twice. It locks out visitors who use screen readers, which\nis an accessibility failure under WCAG, and it hides your images from Google Image\nsearch. Most WordPress media libraries have hundreds of images with no alt text at\nall, because writing them by hand is slow, repetitive work that nobody enjoys.<\/p>\n\n<p>This plugin does that work for you.<\/p>\n\n<h4>Alt Text Audit<\/h4>\n\n<p>Scan your entire media library and get a health score for its alt text. The audit\nflags every image with a problem:<\/p>\n\n<ul>\n<li>Missing alt text<\/li>\n<li>Empty alt attributes<\/li>\n<li>Duplicate alt text reused across images<\/li>\n<li>Alt text that is too long for screen readers<\/li>\n<li>Placeholder junk left behind by other tools<\/li>\n<\/ul>\n\n<p>Every flagged image can be fixed right there: generate new alt text with AI, edit\nit by hand, or mark it as decorative and ignore it. You can filter the list and\ngenerate alt text for everything currently shown in one action.<\/p>\n\n<h4>Bulk Alt Text Generator<\/h4>\n\n<p>Process your whole media library in one run. The bulk generator works through\nevery image missing alt text in batches of 100, with a live progress counter\nacross the entire run, pause and resume, and a per-image log so you can see\nexactly what was written and what failed. Before a large run starts, a\nconfirmation dialog tells you how many images will be processed.<\/p>\n\n<h4>Generate Alt Text Anywhere You Work<\/h4>\n\n<ul>\n<li><strong>Block editor<\/strong> \u2013 an AI Alt Text panel in the Content tab of the image block<\/li>\n<li><strong>Media Library<\/strong> \u2013 a generate button right in the attachment details modal<\/li>\n<li><strong>Bulk generator<\/strong> \u2013 for the whole library at once<\/li>\n<li><strong>On upload<\/strong> \u2013 optionally generate alt text automatically for every new image<\/li>\n<li><strong>REST API<\/strong> \u2013 an endpoint for external tools and your own automation<\/li>\n<\/ul>\n\n<h4>Works in Your Language<\/h4>\n\n<p>Unlike most alt text plugins, this one is not English-only. The admin screens, the\neditor button and the notices are translated into <strong>Spanish (es_ES)<\/strong> and\n<strong>Brazilian Portuguese (pt_BR)<\/strong>.<\/p>\n\n<p>The generated alt text follows your site's language too, so a Spanish site gets\nSpanish alt text and a Brazilian site gets Portuguese alt text, without any extra\nconfiguration.<\/p>\n\n<h4>Bring Your Own AI<\/h4>\n\n<ul>\n<li>On <strong>WordPress 7.0 and later<\/strong>, the plugin uses your site's native AI Connectors\nconfiguration. No separate API key and no extra account needed.<\/li>\n<li>On <strong>WordPress 6.x<\/strong>, the plugin uses your own OpenAI API key. Generation is\nbilled to you directly by OpenAI, at roughly $0.001 per image with gpt-4o-mini.<\/li>\n<\/ul>\n\n<p>There is no subscription, no per-image fee and no account with us. The plugin is\nfree and you pay only your own AI provider, if anything.<\/p>\n\n<h4>Supported Image Formats<\/h4>\n\n<p>JPEG, PNG and WebP are analysed directly. AVIF images are converted to JPEG\nautomatically before analysis instead of being rejected.<\/p>\n\n<h4>Who This Is For<\/h4>\n\n<ul>\n<li>Site owners with a large media library and no alt text<\/li>\n<li>Agencies and freelancers doing accessibility or SEO cleanups for clients<\/li>\n<li>Bloggers and photographers who publish a lot of images<\/li>\n<li>Anyone working toward WCAG accessibility compliance<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the OpenAI API to generate alt text for your images. It is\nrequired for AI generation on WordPress 6.x sites that do not have the native\nWordPress 7.0 AI Connectors configured.<\/p>\n\n<p>When you click \"Generate\" (in the block editor, the Media Library, or the Bulk\ngenerator) or \"Test Connection\" on the settings page, the plugin sends the image\n(as a base64 data URI) and a short text instruction to OpenAI's Chat Completions\nendpoint (https:\/\/api.openai.com\/v1\/chat\/completions), authenticated with the API\nkey you configure. The \"Test Connection\" button sends only a minimal \"Hi\" message\nwith no image, to verify the key works. Nothing is sent unless you trigger one of\nthese actions.<\/p>\n\n<p>This service is provided by OpenAI. By using the OpenAI path you agree to their terms:<\/p>\n\n<ul>\n<li>Terms of Use: https:\/\/openai.com\/policies\/terms-of-use<\/li>\n<li>Privacy Policy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<\/ul>\n\n<p>On WordPress 7.0+ with AI Connectors configured, generation uses your site's\nconfigured AI provider through WordPress core instead, and this plugin makes no\ndirect external calls.<\/p>\n\n<h3>Development<\/h3>\n\n<p>The full, unminified source code \u2014 including the React\/JavaScript sources under\n    src\/ and the build tooling \u2014 is publicly available at:<\/p>\n\n<p>https:\/\/github.com\/internick2017\/smart-alt-generator<\/p>\n\n<p>Build the compiled assets in <code>build\/<\/code> with <code>npm install &amp;&amp; npm run build<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/internick-smart-alt-generator<\/code>.<\/li>\n<li>Activate it through the Plugins screen.<\/li>\n<li>(WP 6.x only) Go to Settings -&gt; AI Alt Text and enter your OpenAI API key.<\/li>\n<li>Go to Media -&gt; Bulk Alt Text to process existing images.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20openai%20account%3F\"><h3>Do I need an OpenAI account?<\/h3><\/dt>\n<dd><p>Only on WordPress 6.x. On 7.0+ the plugin uses your AI Connectors configuration.<\/p><\/dd>\n<dt id=\"how%20much%20does%20generation%20cost%3F\"><h3>How much does generation cost?<\/h3><\/dt>\n<dd><p>With gpt-4o-mini, roughly $0.001 per image. There is no fee from this plugin; you\npay your AI provider directly.<\/p><\/dd>\n<dt id=\"what%20languages%20does%20it%20support%3F\"><h3>What languages does it support?<\/h3><\/dt>\n<dd><p>The admin interface is available in English, Spanish (es_ES) and Brazilian\nPortuguese (pt_BR). The generated alt text follows your site's language setting.<\/p><\/dd>\n<dt id=\"which%20image%20formats%20work%3F\"><h3>Which image formats work?<\/h3><\/dt>\n<dd><p>JPEG, PNG and WebP are analysed directly. AVIF images are converted to JPEG\nautomatically before being analysed.<\/p><\/dd>\n<dt id=\"can%20it%20process%20my%20whole%20media%20library%20at%20once%3F\"><h3>Can it process my whole media library at once?<\/h3><\/dt>\n<dd><p>Yes. The bulk generator runs through the entire library in batches of 100, with a\nprogress counter, pause and resume, and a per-image result log.<\/p><\/dd>\n<dt id=\"is%20there%20a%20rest%20api%3F\"><h3>Is there a REST API?<\/h3><\/dt>\n<dd><p>Yes. The plugin exposes REST endpoints so you can generate alt text and manage\nsettings from external tools or your own scripts.<\/p><\/dd>\n<dt id=\"is%20the%20source%20code%20available%3F\"><h3>Is the source code available?<\/h3><\/dt>\n<dd><p>Yes. The full unminified source, including the React sources and build tooling, is\non GitHub. See the Development section below.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Documentation only: clearer plugin name, an expanded description covering the Alt Text Audit, bulk generation and language support, and more detailed FAQs. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Plugin renamed to \"AI Alt Text Generator for Images\" so it is easier to find in the plugin directory. No functional changes.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>AVIF images are now supported: they are converted to JPEG before being sent for analysis, instead of being rejected. On servers that cannot read AVIF, the plugin explains the problem and suggests JPEG, PNG or WebP.<\/li>\n<li>Bulk Generator now processes your entire media library, in batches of 100, with a progress counter across the whole run.<\/li>\n<li>A confirmation dialog shows the total number of images (and that your API key will be used) before large runs start.<\/li>\n<li>Review request now appears after 5 generated alt texts (was 10) and is only dismissed when the server confirms it.<\/li>\n<li>Brazilian Portuguese plural rule corrected.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>New: the plugin now speaks Spanish (es_ES) and Brazilian Portuguese (pt_BR) \u2014 admin pages, editor button, and notices.<\/li>\n<li>New: a small, dismissible request for a review after 10 successful generations (only on the plugin's own screens, never elsewhere).<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Alt Text Audit dashboard (Media -&gt; Alt Text Audit) that scores your\nlibrary's alt text and flags missing, empty, duplicate, too-long, and\nplaceholder values, with per-image generate \/ edit \/ ignore actions and a\nfilter-aware \"Generate all shown\" bulk action.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed the Settings and Bulk Alt Text admin screens showing up blank: the script\nloader checked the wrong admin-page hook, so the React interface never loaded.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Hardened REST API permissions: per-attachment capability check on generation,\nand the connection test is now restricted to administrators.<\/li>\n<li>Documented the OpenAI external service and the public source repository.<\/li>\n<li>Renamed internal code prefixes for uniqueness (fresh install \u2014 no migration needed).<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>React-powered Settings page with live Test Connection button.<\/li>\n<li>React-powered Bulk Generator with pause\/resume and per-image result log.<\/li>\n<li>Fixed WP 7.0 AI Connectors integration: uses the correct AiClient API\n(wp_ai_client() never existed; replaced with AiClient::prompt() fluent API).<\/li>\n<li>Plugin renamed to Internick - Smart Alt Generator (slug: internick-smart-alt-generator).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>AI Alt Text panel moved to the Content tab in the Gutenberg block editor.<\/li>\n<li>Block editor script loading fixed for WordPress &lt; 6.6.<\/li>\n<li>REST API endpoints for settings (GET\/POST \/smart-alt\/v1\/settings) and\nconnection test (GET \/smart-alt\/v1\/test).<\/li>\n<li>Alt text field now fills correctly in the Media Library modal.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Images are now sent to the AI as base64 data URIs instead of public URLs, so\ngeneration works on localhost, behind authentication, and on firewalled sites.<\/li>\n<li>The Media Library button now shows the result (or the error message) inline.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: settings, media button, bulk generator, REST API.<\/li>\n<\/ul>","raw_excerpt":"Generate alt text for images with AI. Bulk generate alt text, audit your media library for missing alt tags, and improve accessibility and SEO.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/325427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=325427"}],"author":[{"embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/internick2017"}],"wp:attachment":[{"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=325427"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=325427"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=325427"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=325427"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=325427"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=325427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}