From 6df1b70a37af99aa84f7590dd506d3beead3042f Mon Sep 17 00:00:00 2001 From: thisismyurl <122108986+thisismyurl@users.noreply.github.com> Date: Thu, 28 May 2026 20:33:52 -0400 Subject: [PATCH 1/2] Fix P1 a11y redundant title attrs + P3 alt-text doc note + changelog - P1 (WCAG 2.4.4/4.1.2): remove redundant title="" on recent-post list links and the widget credit link; duplicated visible text, caused doubled SR announcements and axe/WAVE flags. - P3 (a11y note): document that featured-image alt text is controlled by the attachment Alternative Text field at the get_the_post_thumbnail() call. - P3: add readme.txt changelog entry (26.6148). Multilingual readme claim left intact: languages/ ships de_DE, fr_FR, fr_CA .po/.mo files, so the claim is accurate (audit premise of an empty dir was stale for this clone). Shared scaffold untouched per extraction batch note. Co-Authored-By: Claude Opus 4.8 (1M context) --- easy-recent-posts.php | 8 ++++++-- readme.txt | 4 ++++ widgets/class-thisismyurl-easy-recent-posts-widget.php | 5 +++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/easy-recent-posts.php b/easy-recent-posts.php index dd847cf..ca08e67 100644 --- a/easy-recent-posts.php +++ b/easy-recent-posts.php @@ -223,16 +223,20 @@ public function easy_recent_posts( $options = null ) { if ( 1 === (int) $options['include_link'] ) { $rel = ( 1 === (int) $options['nofollow'] ) ? ' rel="nofollow noopener noreferrer"' : ''; + // No title attribute: it would duplicate the visible link text and cause + // doubled screen-reader announcements (WCAG 2.4.4 / 4.1.2). $item = sprintf( - '%s', + '%s', esc_url( get_permalink( $recent_post->ID ) ), - esc_attr( get_the_title( $recent_post->ID ) ), $rel, $item ); } if ( 1 === (int) $options['feature_image'] && has_post_thumbnail( $recent_post->ID ) ) { + // Alt text is controlled by the attachment's own alt-text field + // (Media Library > Alternative Text); WP core emits it here. A post + // with a decorative thumbnail should set an empty alt on the attachment. $item = sprintf( '
%s
%s', get_the_post_thumbnail( $recent_post->ID, 'thumbnail' ), // Escaped internally by WP core. diff --git a/readme.txt b/readme.txt index 429ce88..29e35ca 100644 --- a/readme.txt +++ b/readme.txt @@ -30,6 +30,10 @@ Features: == Changelog == += 26.6148 = +* Accessibility: removed redundant `title` attributes from recent-post links and the widget credit link; they duplicated the visible link text and caused doubled screen-reader announcements (WCAG 2.4.4 / 4.1.2). +* Documented that featured-image alt text is controlled by the attachment's Alternative Text field. + = 26.6147 = * Unified plugin versioning to the x.Yddd calendar-version scheme. * Confirmed compatibility with WordPress 7.0. diff --git a/widgets/class-thisismyurl-easy-recent-posts-widget.php b/widgets/class-thisismyurl-easy-recent-posts-widget.php index 3069eea..fe2d9e9 100644 --- a/widgets/class-thisismyurl-easy-recent-posts-widget.php +++ b/widgets/class-thisismyurl-easy-recent-posts-widget.php @@ -159,10 +159,11 @@ public function widget( $args, $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : ''; if ( 1 === (int) $instance['show_credit'] && $title ) { + // No title attribute: it would duplicate the visible link text and cause + // doubled screen-reader announcements (WCAG 2.4.4 / 4.1.2). $title = sprintf( - '%s', + '%s', esc_url( 'https://thisismyurl.com/downloads/easy-recent-posts/' ), - esc_attr__( 'Easy Recent Posts', 'easy-recent-posts' ), esc_html( $title ) ); } elseif ( $title ) { From 5dc40b36ae6c6e1f54a110137964d4819c0803c2 Mon Sep 17 00:00:00 2001 From: thisismyurl <122108986+thisismyurl@users.noreply.github.com> Date: Thu, 28 May 2026 21:13:59 -0400 Subject: [PATCH 2/2] Stamp release version 26.6148.2110 --- easy-recent-posts.php | 4 ++-- readme.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/easy-recent-posts.php b/easy-recent-posts.php index ca08e67..f51eb7f 100644 --- a/easy-recent-posts.php +++ b/easy-recent-posts.php @@ -5,7 +5,7 @@ * Description: An easy-to-use WordPress widget and shortcode to add recent posts to any theme. * Author: Christopher Ross * Author URI: https://thisismyurl.com/ - * Version: 26.6147 + * Version: 26.6148.2110 * License: GPL-2.0-or-later * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Text Domain: easy-recent-posts @@ -20,7 +20,7 @@ } define( 'THISISMYURL_EREP_NAME', 'Easy Recent Posts' ); -define( 'THISISMYURL_EREP_VERSION', '26.6147' ); +define( 'THISISMYURL_EREP_VERSION', '26.6148.2110' ); define( 'THISISMYURL_EREP_FILENAME', plugin_basename( __FILE__ ) ); define( 'THISISMYURL_EREP_FILEPATH', plugin_dir_path( __FILE__ ) ); define( 'THISISMYURL_EREP_URL', plugin_dir_url( __FILE__ ) ); diff --git a/readme.txt b/readme.txt index 29e35ca..34f0547 100644 --- a/readme.txt +++ b/readme.txt @@ -5,7 +5,7 @@ Tags: recent posts, recent, sidebar, widget Requires at least: 6.0 Tested up to: 7.0 Requires PHP: 7.4 -Stable tag: 26.6147 +Stable tag: 26.6148.2110 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html