{"id":389940,"date":"2026-10-29T08:12:31","date_gmt":"2026-10-29T08:12:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/altnegar\/"},"modified":"2026-10-29T08:12:05","modified_gmt":"2026-10-29T08:12:05","slug":"altnegar","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/altnegar\/","author":18518628,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"AltNegar","header_author":"sepehr sarmadi","header_description":"Review missing alt text in the media library and suggest text from titles or filenames.","assets_banners_color":"6ca2fe","last_updated":"2026-10-29 08:12:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/sepehrsarmadi.ir","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"sepehr1","date":"2026-10-29 08:12:05","revision":3772365}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3772401,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3772401,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3772401,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3772401,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The review workspace with demonstration media and editable suggestions.","2":"Text suggestion settings, with optional upload autofill disabled."}},"plugin_section":[],"plugin_tags":[1953,17214,163,233],"plugin_category":[34,50],"plugin_contributors":[289409],"plugin_business_model":[],"class_list":["post-389940","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-alt-text","plugin_tags-images","plugin_tags-media-library","plugin_category-accessibility","plugin_category-media","plugin_contributors-sepehr1","plugin_committers-sepehr1"],"banners":{"banner":"https:\/\/ps.w.org\/altnegar\/assets\/banner-772x250.png?rev=3772401","banner_2x":"https:\/\/ps.w.org\/altnegar\/assets\/banner-1544x500.png?rev=3772401","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/altnegar\/assets\/icon-128x128.png?rev=3772401","icon_2x":"https:\/\/ps.w.org\/altnegar\/assets\/icon-256x256.png?rev=3772401","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>AltNegar focuses on reviewing missing media-library alt text: administrators can inspect and edit local title\/filename suggestions, save selected images, and see per-image outcomes. It does not require an external service or API key. Upload autofill is optional and disabled by default.<\/p>\n\n<p>AltNegar provides a review workspace for alternative text in the WordPress media library. It lists image attachments with missing or whitespace-only alt metadata and suggests text from the parent post title or filename.<\/p>\n\n<p>Suggestions are editable and need human review. AltNegar does not analyze the visual content of an image, use AI, or guarantee accessibility or search rankings.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Scan the media library for image attachments with empty alternative text.<\/li>\n<li>Review and edit suggestions before saving selected images or the current page.<\/li>\n<li>Recheck existing alternative text before saving and report skipped or failed items.<\/li>\n<li>Use filename cleanup and a configurable maximum text length.<\/li>\n<li>Optionally fill empty alternative text on new uploads (disabled by default).<\/li>\n<li>Translation-ready interface with RTL layout support. Translations are delivered through WordPress.org language packs when available.<\/li>\n<\/ul>\n\n<h4>Scope and precautions<\/h4>\n\n<p>AltNegar updates only the standard attachment alt metadata. It does not rewrite post HTML, block attributes, Elementor data, external images, or CSS background images. Updating media metadata does not necessarily change images already inserted into pages.<\/p>\n\n<p>Decorative images may correctly use empty alt text. Leave those images unselected. A parent post title or filename may not describe the image accurately.<\/p>\n\n<p>Back up your database before bulk changes. There is no automatic undo. Existing alt text is rechecked before each write, but writes from other tools are not transactionally locked.<\/p>\n\n<h4>Access and privacy<\/h4>\n\n<p>The review workspace and AJAX actions require the manage_options capability. Saving also requires permission to edit each image.<\/p>\n\n<p>AltNegar does not send media, alt text, or site data to an external service. It has no API key, tracking, or remote font requirement. Thumbnails use the attachment URLs configured by your WordPress site, which may be hosted on your own storage provider.<\/p>\n\n<p>Settings and media alternative text are retained when the plugin is deleted.<\/p>\n\n<h4>Credits<\/h4>\n\n<p>Maintained by sepehr sarmadi: https:\/\/sepehrsarmadi.ir<\/p>\n\n<p>AltNegar is derived from the supplied Auto Image Alt 1.0.0 code by Sara Studio (https:\/\/saraghadimii.ir), which declared GPLv2 or later. Original attribution is retained here and in credits.txt. AltNegar includes security, interface, input-handling and internationalization changes. It is not affiliated with the separate WordPress.org plugin Auto Image Alt Attribute by jaggskrist.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the altnegar folder to wp-content\/plugins, or upload the plugin ZIP through Plugins &gt; Add New &gt; Upload Plugin.<\/li>\n<li>Deactivate any earlier private builds before activating AltNegar.<\/li>\n<li>Activate AltNegar and open Media &gt; AltNegar as an administrator.<\/li>\n<li>Select Scan media library, review a few non-decorative images, then save the selected suggestions.<\/li>\n<li>Verify the saved text in the media library before processing more images.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20altnegar%20use%20ai%3F\"><h3>Does AltNegar use AI?<\/h3><\/dt>\n<dd><p>No. Suggestions are derived locally from titles or filenames. They need human review.<\/p><\/dd>\n<dt id=\"does%20it%20scan%20all%20images%20displayed%20on%20my%20website%3F\"><h3>Does it scan all images displayed on my website?<\/h3><\/dt>\n<dd><p>No. It scans image attachments in the current site's media library and their alt metadata. It does not crawl frontend pages or external images.<\/p><\/dd>\n<dt id=\"will%20it%20update%20images%20already%20inserted%20into%20gutenberg%20or%20elementor%20pages%3F\"><h3>Will it update images already inserted into Gutenberg or Elementor pages?<\/h3><\/dt>\n<dd><p>Not necessarily. Those tools may store alternative text separately. Review the rendered pages and edit their image blocks or widgets when needed.<\/p><\/dd>\n<dt id=\"is%20an%20empty%20alt%20field%20always%20a%20problem%3F\"><h3>Is an empty alt field always a problem?<\/h3><\/dt>\n<dd><p>No. Empty alternative text can be appropriate for decorative images.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20bulk%20changes%3F\"><h3>Can I undo bulk changes?<\/h3><\/dt>\n<dd><p>There is no built-in undo history. Restore from your database backup or edit individual media items manually.<\/p><\/dd>\n<dt id=\"are%20existing%20settings%20from%20private%20builds%20retained%3F\"><h3>Are existing settings from private builds retained?<\/h3><\/dt>\n<dd><p>The first activation copies settings from the earlier aia_settings option when the new altnegar_settings option does not exist. It does not delete the legacy option or change attachment alt text on activation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Use WordPress.org language packs instead of bundled translation catalogs and a custom Persian loader.<\/li>\n<li>Clarify the review workflow, optional upload autofill, and translation availability.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Preserve duplicate\/non-text alt metadata; restrict writes to image attachments.<\/li>\n<li>Serialize plugin writers and condition existing-row writes on their previous bytes.<\/li>\n<li>Check parent read permissions, bound pagination retries and prime media metadata.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial AltNegar directory release candidate, based on the previously tested private build.<\/li>\n<li>Administrator-only review workspace, editable suggestions, bounded batches, and per-item save results.<\/li>\n<li>English source strings, bundled Persian fallback, RTL support and scoped interface styles.<\/li>\n<li>Scoped anti-existence queries and automatically invalidated cached media counts.<\/li>\n<\/ul>","raw_excerpt":"Find media-library images with empty alt text, review editable suggestions from titles or filenames, and save selected images in batches.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/389940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=389940"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sepehr1"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=389940"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=389940"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=389940"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=389940"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=389940"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=389940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}