Skip to content

Commit 6149777

Browse files
authored
Merge branch 'develop' into steve/pro-997-simplified-summary-text-area-is-missing-a-programmatic-label
2 parents 1f771dc + a9196c9 commit 6149777

128 files changed

Lines changed: 1968 additions & 576 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

accessibility-checker.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
*
99
* @wordpress-plugin
1010
* Plugin Name: Accessibility Checker
11-
* Plugin URI: https://a11ychecker.com
11+
* Plugin URI: https://equalizedigital.com/accessibility-checker
1212
* Description: Audit and check your website for accessibility before you hit publish. In-post accessibility scanner and guidance.
13-
* Version: 1.45.0
13+
* Version: 1.46.0
1414
* Requires PHP: 7.4
1515
* Author: Equalize Digital
1616
* Author URI: https://equalizedigital.com
@@ -36,7 +36,7 @@
3636

3737
// Current plugin version.
3838
if ( ! defined( 'EDAC_VERSION' ) ) {
39-
define( 'EDAC_VERSION', '1.45.0' );
39+
define( 'EDAC_VERSION', '1.46.0' );
4040
}
4141

4242
// Current database version.

admin/class-ajax.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function summary() {
8080
$simplified_summary_grade = 0;
8181
if ( class_exists( 'DaveChild\TextStatistics\TextStatistics' ) ) {
8282
$text_statistics = new \DaveChild\TextStatistics\TextStatistics();
83-
$simplified_summary_grade = (int) floor( $text_statistics->fleschKincaidGradeLevel( $simplified_summary ) );
83+
$simplified_summary_grade = edac_normalize_fk_grade( $text_statistics->fleschKincaidGradeLevel( $simplified_summary ) );
8484
}
8585
$simplified_summary_grade_failed = ( $simplified_summary_grade > 9 ) ? true : false;
8686

@@ -671,7 +671,7 @@ public function readability() {
671671
$simplified_summary_grade = 0;
672672
if ( class_exists( 'DaveChild\TextStatistics\TextStatistics' ) ) {
673673
$text_statistics = new \DaveChild\TextStatistics\TextStatistics();
674-
$simplified_summary_grade = (int) floor( $text_statistics->fleschKincaidGradeLevel( $simplified_summary ) );
674+
$simplified_summary_grade = edac_normalize_fk_grade( $text_statistics->fleschKincaidGradeLevel( $simplified_summary ) );
675675
}
676676

677677
$simplified_summary_grade_failed = ( $simplified_summary_grade > 9 ) ? true : false;

changelog.txt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
*** Accessibility Checker ***
22

3+
2026-07-08 - version 1.46.0
4+
* Updated - the aria-hidden rule no longer flags core Cover blocks.
5+
* Updated - the Incorrect Heading Order summary no longer claims specific heading levels that may not match the actual issue.
6+
* Updated - more strings translated into other languages.
7+
* Fix - .ogg audio files are no longer treated as video content by the video checks.
8+
* Fix - reading level grades between 0 and 1 are now rounded up to grade 1 instead of being treated as not calculable.
9+
* Fix - Accessibility Analysis panel now shows a success icon when no issues are found.
10+
* Fix - Reading Level summary card now conveys its status to screen readers.
11+
* Fix - corrected the accessible name on the settings page navigation landmark.
12+
* Fix - settings page logo now displays correctly on right-to-left site languages.
13+
314
2026-06-30 - version 1.45.0
415
* Updated - default dismiss reasons are now reordered so first item is confirmed accessible.
516
* New - added filter edac_dismiss_reasons to allow adding or removing dismiss reasons.
6-
* Fix - keep focus well positioned when c
17+
* Fix - keep focus well positioned when clearing dismiss notice.
718

819
2026-06-23 - version 1.44.1
920
* Updated - improved the dismiss panel screen reader announcements.

docs/hooks.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ This document is auto-generated by `tools/generate-hooks-docs.php`. It lists onl
66
| ---- | ---- | ---- | ---- | ----------- | ----- |
77
| `edac_action_enqueue_frontend_fixes` | action | [includes/classes/Fixes/FixesManager.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/Fixes/FixesManager.php#L120) | 120 | Maybe enqueue the frontend scripts. | |
88
| `edac_admin_toolbar_menu_items` | filter | [includes/classes/class-admin-toolbar.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-admin-toolbar.php#L77) | 77 | Filters the admin toolbar menu items for Accessibility Checker. | 1.27.0 |
9+
| `edac_after_ignore_change` | action | [includes/classes/class-rest-api.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-rest-api.php#L1345) | 1345 | Fires after an ignore state change succeeds. | |
910
| `edac_after_meta_box` | action | [admin/class-meta-boxes.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-meta-boxes.php#L77) | 77 | Fires after the meta box is rendered. | 1.10.0 |
1011
| `edac_after_rule` | action | [includes/classes/class-rest-api.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-rest-api.php#L568) | 568 | Fires after a rule is run against the content. | 1.5.0 |
1112
| `edac_after_validate` | action | [includes/classes/class-rest-api.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-rest-api.php#L584) | 584 | Fires after the validation process is complete. | 1.5.0 |
@@ -15,6 +16,7 @@ This document is auto-generated by `tools/generate-hooks-docs.php`. It lists onl
1516
| `edac_before_validate` | action | [includes/classes/class-rest-api.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-rest-api.php#L501) | 501 | Fires before the validation process starts. | 1.5.0 |
1617
| `edac_check_license_hook` | action | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L154) | 154 | Sets up the license page and handlers. | 1.xx.x |
1718
| `edac_debug_information` | filter | [admin/site-health/class-information.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/site-health/class-information.php#L79) | 79 | Filter the debug information. | 1.6.10 |
19+
| `edac_dismiss_reasons` | filter | [admin/class-ignore-ui.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-ignore-ui.php#L64) | 64 | Filters the dismiss reasons available in the ignore/dismiss panel. | 1.xx.x |
1820
| `edac_filter_admin_scripts_slugs` | filter | [admin/class-enqueue-admin.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-enqueue-admin.php#L58) | 58 | Enqueue the admin and editorApp scripts. | |
1921
| `edac_filter_command_classes` | filter | [includes/classes/WPCLI/BootstrapCLI.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/WPCLI/BootstrapCLI.php#L83) | 83 | Filter the list of classes that hold the commands to be registered. | 1.15.0 |
2022
| `edac_filter_dashboard_widget_capability` | filter | [admin/class-helpers.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-helpers.php#L229) | 229 | Filter the capability required to view the dashboard widget. | 1.9.3 |
@@ -36,14 +38,15 @@ This document is auto-generated by `tools/generate-hooks-docs.php`. It lists onl
3638
| `edac_filter_simplified_summary_heading` | filter | [includes/classes/class-simplified-summary.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-simplified-summary.php#L75) | 75 | Filter the heading that gets output before the simplified summary inside an <h2> tag. | 1.4.0 |
3739
| `edac_fix_underline_target` | filter | [includes/classes/Fixes/Fix/LinkUnderline.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/Fixes/Fix/LinkUnderline.php#L118) | 118 | Filters the target element selector for forcing underlines. | 1.16.0 |
3840
| `edac_free_product_id` | filter | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L144) | 144 | Sets up the license page and handlers. | 1.xx.x |
39-
| `edac_get_origin_url_for_virtual_page` | filter | [admin/class-enqueue-admin.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-enqueue-admin.php#L118) | 118 | Enqueue the admin and editorApp scripts. | |
41+
| `edac_get_origin_url_for_virtual_page` | filter | [admin/class-enqueue-admin.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-enqueue-admin.php#L120) | 120 | Enqueue the admin and editorApp scripts. | |
4042
| `edac_ignore_permission` | filter | [admin/class-ajax.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-ajax.php#L326) | 326 | Filters if a user can ignore issues. | 1.4.0 |
4143
| `edac_is_sale_time` | filter | [admin/class-upgrade-promotion.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-upgrade-promotion.php#L207) | 207 | Filter whether it's currently sale time for upgrade promotions. | 1.27.0 |
4244
| `edac_jwt_audience` | filter | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L925) | 925 | Get the expected audience for JWT validation (RFC 8725). | 1.xx.x |
4345
| `edac_jwt_issuer` | filter | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L913) | 913 | Get the expected issuer for JWT validation (RFC 8725). | 1.xx.x |
46+
| `edac_landmark_types` | filter | [includes/helper-functions.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/helper-functions.php#L868) | 868 | Filter the landmark types used by the scanner and Issues Explorer filter. | 1.44.0 |
4447
| `edac_link_wrapper_mock` | filter | [tests/phpunit/Admin/PluginRowMetaTest.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/tests/phpunit/Admin/PluginRowMetaTest.php#L57) | 57 | Wrapper function that delegates to mock in test mode. | |
4548
| `edac_link_wrapper_test_mode` | filter | [tests/phpunit/Admin/PluginRowMetaTest.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/tests/phpunit/Admin/PluginRowMetaTest.php#L56) | 56 | Wrapper function that delegates to mock in test mode. | |
46-
| `edac_max_alt_length` | filter | [admin/class-enqueue-admin.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-enqueue-admin.php#L144) | 144 | Enqueue the admin and editorApp scripts. | |
49+
| `edac_max_alt_length` | filter | [admin/class-enqueue-admin.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-enqueue-admin.php#L146) | 146 | Enqueue the admin and editorApp scripts. | |
4750
| `edac_mydot_api_endpoint` | filter | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L528) | 528 | Filters the MyDot API endpoint URL. | 1.xx.x |
4851
| `edac_mydot_product_id` | filter | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L548) | 548 | Filters the MyDot product ID. | 1.xx.x |
4952
| `edac_pro_product_id` | filter | [includes/classes/MyDot/Connector.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/MyDot/Connector.php#L1302) | 1302 | Infer license metadata from an EDD response. | 1.xx.x |

includes/classes/Rules/Rule/IncorrectHeadingOrderRule.php

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@ public static function get_rule(): array {
2525
'info_url' => 'https://a11ychecker.com/help1940',
2626
'slug' => 'incorrect_heading_order',
2727
'rule_type' => 'error',
28-
'summary' => sprintf(
29-
// translators: %1$s is the found heading level (e.g., <h3>), %2$s is the previous heading level (e.g., <h1>.
30-
esc_html__( 'This page uses headings out of order. This is an %1$s after an %2$s, skipping one or more heading levels.', 'accessibility-checker' ),
31-
'<code>&lt;h3&gt;</code>',
32-
'<code>&lt;h1&gt;</code>'
33-
),
28+
'summary' => esc_html__( 'This page uses headings out of order, skipping one or more heading levels.', 'accessibility-checker' ),
3429
'summary_plural' => sprintf(
3530
// translators: %1$s is <code>&lt;h1&gt;</code>, %2$s is <code>&lt;h3&gt;</code>, %3$s is <code>&lt;h2&gt;</code.
3631
esc_html__( 'These pages use headings out of order, skipping one or more heading levels, such as going from %1$s to %2$s without an %3$s between.', 'accessibility-checker' ),

includes/classes/class-rest-api.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1077,7 +1077,7 @@ private function get_readability_data( $post_id ) {
10771077
$simplified_summary_grade = 0;
10781078
if ( class_exists( 'DaveChild\TextStatistics\TextStatistics' ) ) {
10791079
$text_statistics = new \DaveChild\TextStatistics\TextStatistics();
1080-
$simplified_summary_grade = (int) floor( $text_statistics->fleschKincaidGradeLevel( $simplified_summary ) );
1080+
$simplified_summary_grade = edac_normalize_fk_grade( $text_statistics->fleschKincaidGradeLevel( $simplified_summary ) );
10811081
}
10821082

10831083
$simplified_summary_grade_failed = $simplified_summary_grade >= 9;

includes/classes/class-summary-generator.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,7 @@ private function calculate_content_grade() {
290290
$content_grade = 0;
291291

292292
if ( class_exists( 'DaveChild\TextStatistics\TextStatistics' ) ) {
293-
$content_grade = floor(
294-
( new \DaveChild\TextStatistics\TextStatistics() )->fleschKincaidGradeLevel( $content )
295-
);
293+
$content_grade = edac_normalize_fk_grade( ( new \DaveChild\TextStatistics\TextStatistics() )->fleschKincaidGradeLevel( $content ) );
296294
}
297295

298296
return (int) round( $content_grade );

includes/helper-functions.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,6 +1053,27 @@ function edac_format_datetime_from_utc( string $utc_datetime ): string {
10531053
return wp_date( $format, $timestamp );
10541054
}
10551055

1056+
/**
1057+
* Normalize a raw Flesch-Kincaid grade level float to a whole-number grade.
1058+
*
1059+
* `floor()` alone collapses any FK value in (0, 1) to 0, which misrepresents
1060+
* very simple content as "not calculable." Values above 0 but below 1 are
1061+
* normalized to 1 so that compliance checks treat them correctly.
1062+
*
1063+
* @since 1.46.0
1064+
*
1065+
* @param float|bool|null $fk_grade Raw Flesch-Kincaid grade level returned by the library.
1066+
* @return int Normalized grade: 0 when the library returned 0, false, or null (not enough content),
1067+
* otherwise max(1, floor($fk_grade)).
1068+
*/
1069+
function edac_normalize_fk_grade( $fk_grade ): int {
1070+
$fk_grade = (float) $fk_grade;
1071+
if ( $fk_grade <= 0 ) {
1072+
return 0;
1073+
}
1074+
return max( 1, (int) floor( $fk_grade ) );
1075+
}
1076+
10561077
/**
10571078
* Determine the icon name to display for the readability panel.
10581079
*

0 commit comments

Comments
 (0)