=== Fix Alt Text ===
Contributors: stevenayers63, jdorner
Tags: accessibility, alt text, image alt text, image seo, accessible
Requires at least: 5.3
Requires PHP: 7.4
Tested up to: 6.2.2
Stable tag: 1.6.0
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html

Find issues with your image alt text easily and fix them faster with Fix Alt Text. You can even force users to use alt text when adding images in Gutenberg or Classic editors.

== Description ==

It is increasingly important for you to make your images meet accessibility standards. Images must have alternative text (alt text) added so that the visually impaired can use screen readers to understand the purpose and context of the image displayed on the screen.

In addition to making your site more accessible, using alt text helps your site rank better in search engines. This is an added SEO benefit for marketers.

Unfortunately, as a site grows, it becomes difficult and time-consuming to edit and maintain image alt text. Fix Alt Text plugin can help you discover where alt text is needed, quickly fix issues, and even force users to input alt text as images are used throughout the site in the future.

=== Features: ===
* Find Usage: Easily find all uses of alt text by scanning the site
* Find keyword usage: Search for specific keywords used in alt text
* Inline Editing: Instantly edit alt text without manually editing and searching through the content of a post, attachment, or custom post type
* Detect Issues: Quickly identify issues with your alt text to assist you in ADA compliance
* Toggle Features: Control which features are active for maximum flexibility
* Tool Access: Control which user roles have access to the plugin
* Settings Access: Control which user roles have access to changing settings
* Global Settings: In a multisite setup, save time by using global settings and select which sites will inherit those settings
* Fully Multisite Compatible: Force sites within the network to use global network settings for easy management

== Bonus Features ==
* Privacy: It does not use any 3rd-party tracking
* No Sales Pitches: It does not sell or promote any pro plugins
* Free: It's currently and will continue to be a Free plugin!
* No Littering: It cleans up after itself if uninstalled or when a blog is removed from a multisite network.

=== Compatible With ===
* Multisite Installations
* WP Gutenberg Editor
* WP Classic Editor
* PHP Versions 7.4, 8.0, 8.1
* [WhereUsed](https://wordpress.org/plugins/where-used/)
* [Advanced Custom Fields - ACF](https://wordpress.org/plugins/advanced-custom-fields/)
* [Network Media Library](https://github.com/humanmade/network-media-library)

== Language Support ==

* English (default)
* [Translate this plugin in your language.](https://translate.wordpress.org/projects/wp-plugins/fix-alt-text)

== Screenshots ==

1. Dashboard: Initial scan is needed
2. Site Settings: Overwritten by network settings
3. Network Settings: Edit network settings and see scan status of all sites
4. Dashboard: Running full scan
5. Dashboard: Scan complete. Displaying issues and notifications
6. Alt Text: Found references involving alt text
7. Alt Text: Preview image and inline editing
8. Gutenberg Editor: Forcing Alt Text
9. Media Library: Forcing Alt Text

== Changelog ==

= Versions Key (Major.Minor.Patch) =
* Major - 1.x.x increase involves major changes to the visual or functional aspects of the plugin, or removing functionality that has been previously deprecated. (higher risk of breaking changes)
* Minor - x.1.x increase introduces new features, improvements to existing features, or introduces deprecations. (low risk of breaking changes)
* Patch - x.x.1 increase is a bug fix, security fix, or minor improvement and does not introduce new features. (non-breaking changes)

= Version 1.6.0 =
*Release Date - 28 Jul 2023*

* Bug fix: custom db tables were not being removed when the plugin was deleted from the site.
* Bug Fix: custom db tables were not being created in various scenarios
* Improvement: Converted Helpers Library to be under the plugin's namespace to prevent conflicts with other plugins using the same dependency
* Minor Improvement: Optimized the uninstall cleanup script

= Version 1.5.0 =
*Release Date - 13 Jul 2023*

* Improvement: Added compatibility with [Network Media Library plugin for WordPress](https://github.com/humanmade/network-media-library)
* Bug Fix: Error encountered when inline editing alt text of an image in the media library. Only occurs in a multisite environment when using the Network Shared Media Library plugin and the image was uploaded from a non-primary site.
* Minor Improvement: Updated Helpers Library 1.5.0

= Version 1.4.4 =
*Release Date - 31 May 2023*

* Bug fix: Javascript error occurs when selecting a PDF in media libary modal
* Minor Improvement: Tested up to: 6.2.2
* Minor Improvement: Updated Helpers Library 1.4.1

= Version 1.4.3 =
*Release Date - 17 May 2023*

* Bug Fix: After sending a post to the trash, references associated with the post still appear in References table
* Bug Fix: Attachment references were not getting removed from references table when deleted.
* Bug Fix: Force alt text alert was causing false positives when the media library modal is accessed, closed, then accessed again on the post edit screen int he admin.
* Improvement: switch the keyup listener to use input for detecting changes of alt text input fields to be more reliable

= Version 1.4.2 =
*Release Date - 21 Apr 2023*

* Bug Fix: Inline editing was encountering an error in specific scenarios: image_url_mismatch

= Version 1.4.1 =
*Release Date - 14 Apr 2023*

* Security: Improved sanitation of data
* Minor Improvement: Updated Helpers Library 1.4.0

= Version 1.4.0 =
*Release Date - 05 Apr 2023*

* Improvement: Search now includes the title of the attachment or post in the "from" column
* Bug Fix: Deprecated PHP notice - PHP 8.2 deprecated sending null to trim()
* Bug Fix: PHP Fatal error occurred if mbstring non-default extension was not installed. Fallback implemented.
* Minor Improvement: Updated Helpers Library 1.3.7
* Minor Improvement: Tested up to: 6.2.0

= Version 1.3.9 =
*Release Date - 10 Mar 2023*

* Bug Fix: The plugin directory constant values were incorrect if site_url() and admin_url() do not have the same HTTP protocol.
* Bug Fix: Prevent update of plugin if it is under local git control
* Minor Improvement: Updated Helpers Library 1.3.6

= Version 1.3.8 =
*Release Date - 9 Mar 2023*

* Bug Fix: Fixed fatal error related to multisite installations. Issue occurs when a previous blog has been deleted and a new blog is created. The new blog's IDs increments and no longer matches the assumed corresponding index within the full array of blogs.
* Bug Fix: The database tables were not getting created on plugin activation for a multisite.
* Minor Improvement: Updated Helpers Library 1.3.5

= Version 1.3.7 =
*Release Date - 3 Mar 2023*

* Bug Fix: JavaScript error when the issues chart attempts to display when there are no issues found.
* Bug Fix: Inline editing did not work for images directly located in the media library
* Bug Fix: When uploading an attachment, the attachment was not automatically scanned into the system

= Version 1.3.6 =
*Release Date - 3 Mar 2023*

* Bug Fix: Activating plugin on a multisite caused fatal error

= Version 1.3.5 =
*Release Date - 19 Jan 2023*

* Bug Fix: Inline edit feature was not compatible with post meta that was stored as an array or an object.
* Bug Fix: Sometimes alt text would be marked as having code in it if a quote mark was in the alt text.

= Version 1.3.4 =
*Release Date - 29 Nov 2022*

* Bug Fix: Scan duration details should not display 0 days, 0 hours, etc.
* Bug Fix: Scan is showing a message that a scan is needed when it is actually not
* Minor Improvement: Updated Helpers Library dependency
* Minor Improvement: Tested up to: 6.1.1

= Version 1.3.3 =
*Release Date - 09 Nov 2022*

* Bug Fix: Migration script wasn't single site compatible
* Bug Fix: When scan menus option changed in settings, the user was not being notified that a new scan was needed.
* Bug Fix: Headers sent prematurely when displaying admin notice if updating plugin while another plugin is using an older version of Helpers Library
* Bug Fix: Scans involving thousands of users, or terms would run out of memory due to meta caching
* Bug Fix: There was a rare possibility that a post gets queued and then the post is deleted before the background scan processes it, which could cause the progress bar to stall on the dashboard.
* Minor Improvement: Updated Helpers Library dependency
* Minor Improvement: Tested up to: 6.1.0

= Version 1.3.1 =
*Release Date - 27 Oct 2022*

* Security: Removed usernames from the scan users queue file
* Minor Improvement: Updated Helpers Library dependency

= Version 1.3.0 =
*Release Date - 26 Oct 2022*

* New Feature: Filter "fixalttext_excluded_post_types" has been added to allow modification of post types excluded from scans
* New Feature: Filter "fixalttext_excluded_taxonomies" has been added to allow modification of post types excluded from scans
* Improvement: Debug logging is more efficient
* Improvement: Scan was revised to now handle very large databases and use less resources
* Improvement: Updated recommended taxonomies and post types to scan. Please review your settings.
* Bug Fix: Uninstall script fixed
* Bug Fix: The plugin was initializing on the init hook, but activation hooks do not work on the init hook and were causing loading issues when plugin was activated.
* Bug Fix: Retrieving settings in a single site install were failing
* Bug Fix: Scan would run out of memory when trying to queue 400K posts
* Bug Fix: Post was not getting rescanned after it has been updated
* Security: Minor XSS Escaping within a user protected area

= Version 1.2.0 =
*Release Date - 20 Oct 2022*

* New Feature: Debug area for troubleshooting scan issues. Debug mode must be turned on in settings before it will appear.
* New Feature: Detects invalid image src URLs and invalid image types
* New Feature: Records plugin version history to assist troubleshooting issues
* New Feature: Detects image alt text located in post excerpts
* Improvement: Converted all AJAX requests to JSON responses
* Improvement: Upgraded to Chart.js v3.8.0
* Improvement: Implemented standard security class to handle consistent sanitization
* Improvement: Styling and code standardization to make maintenance easier
* Improvement: Added Helpers_Library 1.1.0 dependency
* Improvement: Added upgrade migration scripts
* Improvement: On multisite, you can now navigate to the network settings from the site settings tab
* Improvement: DB table columns tuned for performance
* Improvement: Renamed issue names to be more descriptive (rescan required on update)
* Improvement: Moved filters into the column headings and now applied automatically on change
* Improvement: Filters are highlighted blue when applied
* Improvement: Converted inline edit text input to a textarea field for better ease of editing. Thanks Rick Barley!
* Improvement: Added auto focus on the inline edit field to save a click. Thanks Rick Barley!
* Minor Improvement: Refactored compatibility checks
* Minor Improvement: Tested up to: 6.0.3
* Bug Fix: Uninstall script didn't remove scheduled crons
* Bug Fix: Conditional empty checks did not exist before iterating over various settings. Could result in PHP error.
* Bug Fix: Plugin options cache was not being cleared properly
* Bug Fix: Missing </tr> tag in settings DOM
* Bug Fix: WP Crons did not have a consistent prefix
* Bug Fix: Updated links to # to include an actual target to stop jumping to the top of the screen
* Bug Fix: JS and CSS assets had a double slash in the URL. Thanks @amundsan
* Bug Fix: Scan complete notification had a broken link to scan details
* Bug Fix: Scan was picking up attachments in the Media Library that were not images
* Bug Fix: When uninstalling the plugin it threw an error
* Bug Fix: Could not start a new scan if a previous scan was interrupted by deactivating the plugin or some other unexpected action.
* Note: Increased Minimum WP Version to 5.3

= Version 1.1.4 =
*Release Date - 15 Sep 2022*

* Minor Improvement: Added consistency with how constants were defined
* Minor Improvement: Updated version release key in changelog
* Minor Improvement: Code formatting
* Minor Improvement: Tested up to 6.0.2
* Bug Fix: User could save draft without being prompted to add alt text
* Bug Fix: hardcoded wp-admin references were breaking Bedrock compatibility. Thanks @amundsan

= Version 1.1.3 =
*Release Date - 09 Aug 2022*

* Minor Improvement: Added versions key to Changelog
* Bug Fix: JS assets were not loaded when adding a new post.

= Version 1.1.2 =
*Release Date - 25 Mar 2022*

* Bug Fix: non-static function called statically caused a fatal error

= Version 1.1.1 =
*Release Date - 25 Mar 2022*

* Bug Fix: delete_post hook was sending 1 parameter instead of 2 and caused a fatal error

= Version 1.1.0 =
*Release Date - 24 Mar 2022*

* New Feature: Scans now detect image alt text associated with taxonomies and users
* New Feature: Settings include ability to select which taxonomies to scan
* New Feature: Settings include ability to toggle on/off user scanning
* Improvement: Added labels to post types to be scanned in settings area
* Improvement: Minor styling adjustments
* Improvement: Minor performance tuning
* Improvement: Accessibility - Missing labels for Notification checkboxes
* Minor Improvement: Tested up to 5.9.2
* Bug Fix: The notification that a new scan is needed after saving settings was not displayed to the user immediately
* Bug Fix: Search highlighting would cause a fatal error if the text being searched included a percent sign
* Bug Fix: Iterating over a null value when setting checkboxes to checked if no settings initially existed. PHP Warning thrown.
* Bug Fix: On new scan, the database would get cleared out even if the scan failed. Functionality moved to run when confirmed that the scan is going to run.
* Bug Fix: Settings page background would flicker due to css hover effect on tables.


= Version 1.0.2 =
*Release Date - 11 Feb 2022*

* Improvement: Accessibility - Dropdown menus on Alt Text screen did not have labels
* Improvement: Accessibility - Table Row actions & inline edit link don't become visible on :focus
* Improvement: Accessibility - User Access settings did not have labels
* Bug Fix: Multiple links were opening in new tabs unintentionally.
* Thank you Joe Dolson (@joedolson) for reviewing the plugin and providing great feedback!

= Version 1.0.1 =
*Release Date - 10 Feb 2022*

* Minor Improvement: Code formatting and miscellaneous changes
* Bug Fix: JS error when defining jQuery constant for shorthand

= Version 1.0.0 =
*Release Date - 01 Feb 2022*
* Initial Release

