Skip to content
Merged
Show file tree
Hide file tree
Changes from 83 commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
743de69
feat: Add axe rule to detect naked links
google-labs-jules[bot] Jun 12, 2025
6a1e464
Move the rule to a 'none' type for fails
pattonwebz Jun 12, 2025
964f824
Rename the rule to use an underscore matching out existing name pattern
pattonwebz Jun 12, 2025
ac8d57d
Loosen the rule expectation in the test
pattonwebz Jun 12, 2025
0e6cfa2
Rename the naked link rule, check and test files
pattonwebz Jun 12, 2025
baf60c8
Fix lint issues
pattonwebz Jun 12, 2025
717e855
Add a rule definition for the new Naked Link rule
pattonwebz Jun 12, 2025
3c5894c
Correct file reference for new rules
pattonwebz Jun 12, 2025
c20be43
Fix rule name in test
pattonwebz Jun 12, 2025
495756b
Merge branch 'develop' into feature/naked-link-rule
pattonwebz Dec 2, 2025
b4ea152
Update the names of the new rule and check to use dashes instead of c…
pattonwebz Dec 2, 2025
8271006
Use name that starts with `link` for the rule to match other link che…
pattonwebz Dec 2, 2025
4d6d0ea
Add the php rule definition for Link Naked rule
pattonwebz Dec 2, 2025
cb23f90
Update tests to point to the updated file names
pattonwebz Dec 2, 2025
f578564
Make sure the list of rule classes stay in alphabetical order
pattonwebz Dec 2, 2025
1cbc688
Make sure that mailto and tel links will fail if they are _mostly_ naked
pattonwebz Dec 2, 2025
c1009c8
Make the naked link rule be an error rather than a warning
pattonwebz Dec 2, 2025
6ef94b4
Update the test cases to cover more items and fix test file name
pattonwebz Dec 2, 2025
2f31b3b
Refactor the test to cover all the new test cases added with pass/fai…
pattonwebz Dec 2, 2025
cd20298
Add more test cases for naked links since the rule ended up much more…
pattonwebz Dec 2, 2025
29ec979
Guard EDAC_KEY_VALID usage in options page
SteveJonesDev Feb 14, 2026
77392c7
Handle missing EDAC key flag
SteveJonesDev Feb 14, 2026
1f65eaf
Export the first set of components to be shared with other add-ons
pattonwebz May 27, 2026
63b95ec
Add a few more components and helpers to the list of shared components
pattonwebz May 27, 2026
9efe75d
Setup for jest tests on some of the react components we will export f…
pattonwebz May 27, 2026
9f63cd3
Add some jest tests for components that are being exported
pattonwebz May 27, 2026
42a3f2b
Fix some old lint issues in a few test files
pattonwebz May 27, 2026
1911ed0
PRO-540: Update how_to_fix language to remove references to the Ignor…
SteveJonesDev May 28, 2026
2db1620
Update dashboard link in Email Reports to point to license keys page
SteveJonesDev May 29, 2026
43299ab
Update 'Reports Enabled' message to clarify email recipient for free …
SteveJonesDev May 29, 2026
8dc65ad
Add some test setup needed for react act to test the sidebar components
pattonwebz May 29, 2026
f023d7d
Merge pull request #1728 from equalizedigital/steve/pro-778-email-rep…
SteveJonesDev Jun 1, 2026
f5d104a
Merge pull request #1731 from equalizedigital/release/1.43.0
SteveJonesDev Jun 1, 2026
cb61239
Remove unimplemented Pro upsell from Reports Enabled message
SteveJonesDev Jun 1, 2026
1827bfe
Merge pull request #1729 from equalizedigital/steve/pro-780-email-rep…
SteveJonesDev Jun 1, 2026
714cbb3
Apply Amber's feedback to the Link Text is URL rule
SteveJonesDev Jun 1, 2026
e36c993
Fix JS lint error: restore straight quotes on Don't test case
SteveJonesDev Jun 1, 2026
7e4daf8
Update composer.lock from develop to fix CVE-2026-24765
SteveJonesDev Jun 1, 2026
6ee6e87
Update composer.lock from develop to fix CVE-2026-24765
SteveJonesDev Jun 1, 2026
d650aad
docs: regenerate hooks docs
github-actions[bot] Jun 1, 2026
a0d53e4
Merge pull request #1734 from equalizedigital/automation/regenerate-h…
SteveJonesDev Jun 1, 2026
c212b90
Merge branch 'develop' into feature/naked-link-rule
SteveJonesDev Jun 1, 2026
f1157cc
fix: resolve merge conflict in composer.lock and update dependencies
SteveJonesDev Jun 1, 2026
b574177
feat: export severity and rule type helpers from shared components
pattonwebz Jun 1, 2026
fa29532
Udpated: naked link file names and slugs and normalized tags to use a…
SteveJonesDev Jun 1, 2026
bbaa34e
feat: add internationalization support for link text checks
SteveJonesDev Jun 1, 2026
908597c
Refactor EDAC_KEY_VALID condition for clarity
SteveJonesDev Jun 1, 2026
9fb6293
Merge remote-tracking branch 'origin/develop' into codex/run-automate…
SteveJonesDev Jun 1, 2026
aa68255
feat: add sharedComponents webpack entry with window global export
pattonwebz Jun 1, 2026
c7149b0
Fix serialization error in separate-process test
SteveJonesDev Jun 1, 2026
c9be6ac
fix: import getSeverityBadgeProps from badgeHelpers not severityHelpers
pattonwebz Jun 1, 2026
2768868
Merge pull request #1402 from equalizedigital/codex/fix-edac-key-vali…
SteveJonesDev Jun 1, 2026
31f7eff
Merge pull request #1407 from equalizedigital/codex/run-automated-bug…
SteveJonesDev Jun 1, 2026
98608d3
Merge pull request #1724 from equalizedigital/steve/pro-540-update-ho…
SteveJonesDev Jun 2, 2026
6faec4a
feat: export DismissPanel from sharedComponents
pattonwebz Jun 2, 2026
709ff92
Remove dead is_numeric check on policy page option
SteveJonesDev Jun 2, 2026
0f29712
Merge pull request #1735 from equalizedigital/steve/no-issue/remove-d…
SteveJonesDev Jun 2, 2026
79b9d60
refactor: extract FixCard as shared component and export from sharedC…
pattonwebz Jun 3, 2026
c78b09e
refactor: pull DismissPanel styles up to root scope
pattonwebz Jun 4, 2026
0ec7835
fix: correct split button alignment to center in dismiss panel base s…
pattonwebz Jun 4, 2026
2245235
revert: restore align-items: flex-end on split button
pattonwebz Jun 4, 2026
0492b7e
Add a system generated rest api url to localized data for frontend hi…
pattonwebz Jun 5, 2026
03ecb65
Use the system generated rest url for the frontend highlighter scan s…
pattonwebz Jun 5, 2026
e47899f
Pass the fixes url through rest_url to ensure it is correct on subsit…
pattonwebz Jun 5, 2026
87c49d2
Use an updated rest url for fixes to make sure it works on multisite …
pattonwebz Jun 5, 2026
08d4a7e
Add unit tests to cover and verify the changes to the rest api urls a…
pattonwebz Jun 5, 2026
ce8674d
fix: guard against undefined REST URLs and use window. prefix consist…
pattonwebz Jun 5, 2026
f713376
docs: regenerate hooks docs
github-actions[bot] Jun 8, 2026
cb1bb42
Merge pull request #1738 from equalizedigital/automation/regenerate-h…
pattonwebz Jun 8, 2026
df92b7c
docs: regenerate hooks docs
github-actions[bot] Jun 15, 2026
e71d0e4
Create Accessibility Issue template structure
amberhinds Jun 16, 2026
e9749a5
Fix indentation on WCAG Success Criterion dropdown
amberhinds Jun 16, 2026
3a89ca4
PRO-960: Restore global dismiss/unignore inline in DismissPanel
pattonwebz Jun 16, 2026
077df81
PRO-960: Add forceGlobal prop to DismissPanel
pattonwebz Jun 16, 2026
bd4b724
PRO-960: Batch undismiss when issue was globally dismissed
pattonwebz Jun 16, 2026
eef4a2d
PRO-960: Remove (all pages) from Dismiss Globally dropdown label
pattonwebz Jun 16, 2026
d5d2e65
PRO-960: Address review comments on DismissPanel and api.js
pattonwebz Jun 16, 2026
54540e7
Merge pull request #1746 from equalizedigital/william/pro-960-dismiss…
pattonwebz Jun 16, 2026
1fdba55
Initial plan
Copilot Jun 17, 2026
8f82063
chore: initial plan - add wp-block-separator exclusion to aria-hidden…
Copilot Jun 17, 2026
378b315
fix: exclude wp-block-separator from aria-hidden review issues
Copilot Jun 17, 2026
744862c
Address PR review: make three fields optional and update version plac…
pattonwebz Jun 17, 2026
87d829b
Potential fix for pull request finding
pattonwebz Jun 17, 2026
a0290cc
Merge pull request #1744 from equalizedigital/amberhinds-github-issue…
pattonwebz Jun 17, 2026
fe06eb1
PRO-959: Add edac_get_landmark_types() as single source of truth for …
SteveJonesDev Jun 16, 2026
df8b356
PRO-959: Thread landmarkTypes into frontend highlighter scanner context
pattonwebz Jun 17, 2026
226a5c5
PRO-959: Address code review — filter hook, i18n labels, Array.isArra…
pattonwebz Jun 17, 2026
cfc2181
PRO-959: Guard inner keys in edac_get_landmark_filter_options against…
pattonwebz Jun 17, 2026
2929343
PRO-959: Fix @since tags on new PHP helper functions (1.44.0)
pattonwebz Jun 17, 2026
04ce817
Merge pull request #1760 from equalizedigital/william/pro-959-landmar…
pattonwebz Jun 17, 2026
fb95d52
PRO-972: Extract CodeMirrorViewer to own file and export from sharedC…
pattonwebz Jun 17, 2026
8ba427a
PRO-972/PRO-979: Dual-scope CodeMirrorViewer and IssueImage CSS
pattonwebz Jun 17, 2026
2495824
PRO-972/PRO-979: Add edacp-ie-dismiss-modal to CodeMirrorViewer CSS s…
pattonwebz Jun 17, 2026
beeb544
fix: null editorRef after toTextArea() to prevent stale ref on remount
pattonwebz Jun 17, 2026
e778a6f
Initial plan
Copilot Jun 19, 2026
8040c46
Initial plan
Copilot Jun 19, 2026
d0b1419
Fix new window warning aria-label for links with images and text
Copilot Jun 19, 2026
d98e25a
Initial plan
Copilot Jun 19, 2026
f7f429f
Initial plan: Don't flag empty paragraphs with aria-live
Copilot Jun 19, 2026
4880aab
Rules: Don't flag empty paragraph on paragraphs with aria-live
Copilot Jun 19, 2026
af5d921
Merge pull request #1743 from equalizedigital/automation/regenerate-h…
SteveJonesDev Jun 19, 2026
42de267
fix: address CodeRabbit review comments on PR #1733
pattonwebz Jun 22, 2026
a323e97
Gating global dismiss for free users [PRO-823]
pattonwebz Jun 22, 2026
aaaa51b
Stubbing DismissPanel Jest mocks [PRO-823]
pattonwebz Jun 22, 2026
8e70799
Merge branch 'develop' into william/pro-823-setup-component-exports-f…
pattonwebz Jun 22, 2026
6789814
Merge pull request #1733 from equalizedigital/william/pro-823-setup-c…
pattonwebz Jun 22, 2026
56a7fbc
Merge pull request #1737 from equalizedigital/william/no-issue/fix-su…
pattonwebz Jun 22, 2026
5614631
Merge pull request #1774 from equalizedigital/copilot/fix-empty-parag…
pattonwebz Jun 22, 2026
1b059ba
Merge pull request #1773 from equalizedigital/copilot/fix-new-window-…
pattonwebz Jun 22, 2026
e2f5329
Merge pull request #1751 from equalizedigital/copilot/enhance-aria-hi…
pattonwebz Jun 22, 2026
1be7ea8
Bump version * Version: 1.43.0 -> 1.44.0
pattonwebz Jun 22, 2026
266df9e
Fix: address Gemini code review feedback on release/1.44.0
pattonwebz Jun 22, 2026
b4eda25
Merge pull request #1012 from equalizedigital/feature/naked-link-rule
pattonwebz Jun 22, 2026
86fe8e8
Fix: correct 'contentinfo' landmark label from 'Content Info' to 'Con…
pattonwebz Jun 22, 2026
afabcba
Merge branch 'release/1.44.0' of github.com:equalizedigital/accessibi…
pattonwebz Jun 22, 2026
4ee77c5
PRO-1039: Replace remaining 'Ignore' terminology with 'Dismiss'
SteveJonesDev Jun 22, 2026
db858b0
Replace 'Ingore' with 'Dismiss' in LinkTextIsUrlRule strings
pattonwebz Jun 22, 2026
e068cef
Fix grammar in dismiss terminology per code review
SteveJonesDev Jun 22, 2026
f736ae9
Update some test names to be more descriptive of what they are testing
pattonwebz Jun 22, 2026
6286243
Merge pull request #1782 from equalizedigital/steve/pro-1039-update-t…
SteveJonesDev Jun 22, 2026
d0b7001
Merge remote-tracking branch 'origin/feature/naked-link-rule' into de…
pattonwebz Jun 22, 2026
e8f9d0d
Replace 'Ingore' with 'Dismiss' in LinkTextIsUrlRule strings
pattonwebz Jun 22, 2026
ed3e855
Fix: correct 'contentinfo' landmark label from 'Content Info' to 'Con…
pattonwebz Jun 22, 2026
fd95d0a
Update pot file with latest translations
pattonwebz Jun 22, 2026
9962a9d
PRO-1041: Default Block Editor Metabox setting to checked for new ins…
SteveJonesDev Jun 22, 2026
3e019c4
Tests: add test verifying reactivation preserves existing metabox pre…
pattonwebz Jun 22, 2026
dbcbd61
Merge branch 'release/1.44.0' into steve/pro-1041-default-block-edito…
SteveJonesDev Jun 22, 2026
1dd5138
Merge pull request #1784 from equalizedigital/steve/pro-1041-default-…
SteveJonesDev Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 30 additions & 2 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,15 @@
},
"overrides": [
{
"files": [ "src/sidebar/**/*.js", "src/sidebar/**/*.jsx", "src/issueModal/**/*.js", "src/issueModal/**/*.jsx" ],
"files": [
"src/sidebar/**/*.js",
"src/sidebar/**/*.jsx",
"src/issueModal/**/*.js",
"src/issueModal/**/*.jsx",
"src/sharedComponents/**/*.js",
"tests/jest/**/*.js",
"tests/jest/**/*.jsx"
],
"plugins": [ "react" ],
"parserOptions": {
"ecmaVersion": 2021,
Expand All @@ -23,7 +31,27 @@
}
},
"rules": {
"react/jsx-uses-vars": "error"
"react/jsx-uses-vars": "error",
"jsdoc/check-tag-names": "off"
}
},
{
"files": [
"tests/jest/setupTests.js",
"tests/jest/styleMock.js",
"tests/jest/jest.config.js",
"tests/jest/babel.config.js"
],
"env": {
"node": true,
"browser": true
},
"globals": {
"Buffer": "readonly",
"globalThis": "readonly"
},
"rules": {
"no-redeclare": "off"
}
}
]
Expand Down
201 changes: 201 additions & 0 deletions .github/ISSUE_TEMPLATE/Accessibility_Issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
name: Accessibility Report
description: Let us know if you encounter an accessibility issue so we can fix it.
title: "[Accessibility]: "
labels:
- a11y
- needs-triage
assignees:
- amberhinds

body:
- type: markdown
attributes:
value: |
Please use this template when creating an accessibility issue.

- Please use the latest version of Accessibility Checker.
- Search for existing issues before creating a new one.

- type: checkboxes
id: prerequisites
attributes:
label: Before submitting
options:
- label: I've read and understood the [contribution guidelines](https://github.com/equalizedigital/accessibility-checker/blob/develop/.github/CONTRIBUTING.md).
required: true
- label: I've searched for [related issues](https://github.com/equalizedigital/accessibility-checker/issues) and confirmed this is not a duplicate.
required: true

- type: textarea
id: impacted-element
attributes:
label: Impacted element or component
description: What part of the plugin or interface is affected?
validations:
required: true

- type: textarea
id: description
attributes:
label: Description of the issue
validations:
required: true

- type: textarea
id: screenshots
attributes:
label: Screenshot(s) or video
description: Attach screenshots or paste links to videos demonstrating the issue.

- type: textarea
id: recommended-fix
attributes:
label: Recommended fix or expected behavior

- type: dropdown
id: severity
attributes:
label: Is this a critical blocker?
options:
- Yes - there is no workaround for this issue.
- No - this is an accessibility problem, but it is minor or not a blocker.
- Unsure

- type: dropdown
id: wcag-sc
attributes:
label: Related WCAG Success Criterion
description: Select the WCAG Success Criterion that is most closely related to this issue.
options:
- Not sure
- 1.1.1 Non-text Content
- 1.2.1 Audio-only and Video-only (Prerecorded)
- 1.2.2 Captions (Prerecorded)
- 1.2.3 Audio Description or Media Alternative (Prerecorded)
- 1.2.4 Captions (Live)
- 1.2.5 Audio Description (Prerecorded)
- 1.3.1 Info and Relationships
- 1.3.2 Meaningful Sequence
- 1.3.3 Sensory Characteristics
- 1.3.4 Orientation
- 1.3.5 Identify Input Purpose
- 1.4.1 Use of Color
- 1.4.2 Audio Control
- 1.4.3 Contrast (Minimum)
- 1.4.4 Resize Text
- 1.4.5 Images of Text
- 1.4.10 Reflow
- 1.4.11 Non-text Contrast
- 1.4.12 Text Spacing
- 1.4.13 Content on Hover or Focus
- 2.1.1 Keyboard
- 2.1.2 No Keyboard Trap
- 2.1.4 Character Key Shortcuts
- 2.2.1 Timing Adjustable
- 2.2.2 Pause, Stop, Hide
- 2.3.1 Three Flashes or Below Threshold
- 2.4.1 Bypass Blocks
- 2.4.2 Page Titled
- 2.4.3 Focus Order
- 2.4.4 Link Purpose (In Context)
- 2.4.5 Multiple Ways
- 2.4.6 Headings and Labels
- 2.4.7 Focus Visible
- 2.4.11 Focus Not Obscured (Minimum)
- 2.5.1 Pointer Gestures
- 2.5.2 Pointer Cancellation
- 2.5.3 Label in Name
- 2.5.4 Motion Actuation
- 2.5.7 Dragging Movements
- 2.5.8 Target Size (Minimum)
- 3.1.1 Language of Page
- 3.2.1 On Focus
- 3.2.2 On Input
- 3.2.3 Consistent Navigation
- 3.2.4 Consistent Identification
- 3.2.6 Consistent Help
- 3.3.1 Error Identification
- 3.3.2 Labels or Instructions
- 3.3.3 Error Suggestion
- 3.3.4 Error Prevention (Legal, Financial, Data)
- 3.3.7 Redundant Entry
- 3.3.8 Accessible Authentication (Minimum)
- 4.1.1 Parsing
- 4.1.2 Name, Role, Value
- 4.1.3 Status Messages

- type: textarea
id: reproduction
attributes:
label: How can we reproduce this behavior?
placeholder: |
1. Go to...
2. Click...
3. Observe...
validations:
required: true

- type: input
id: wordpress-version
attributes:
label: WordPress version
placeholder: e.g. 7.0

- type: input
id: accessibility-checker-version
attributes:
label: Accessibility Checker version
placeholder: e.g. 1.43.0
validations:
required: true

- type: input
id: active-theme
attributes:
label: Active theme
placeholder: e.g. Twenty Twenty-Six

- type: checkboxes
id: screen-reader
attributes:
label: Which screen reader are you using? (if applicable)
options:
- label: NVDA
- label: VoiceOver
- label: JAWS
- label: Other

- type: input
id: other-screen-reader
attributes:
label: Other screen reader
placeholder: Specify if you selected Other

- type: checkboxes
id: browser
attributes:
label: Which browser is affected?
options:
- label: Internet Explorer
- label: Edge
- label: Chrome
- label: Firefox
- label: Safari
- label: Brave

- type: checkboxes
id: editor
attributes:
label: Which editor is affected? (if relevant)
options:
- label: Classic Editor
- label: Gutenberg
- label: Classic Editor Plugin
- label: Page Builder

- type: input
id: page-builder
attributes:
label: Page Builder name
placeholder: Elementor, Beaver Builder, Divi, etc.

4 changes: 2 additions & 2 deletions accessibility-checker.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
* Plugin Name: Accessibility Checker
* Plugin URI: https://a11ychecker.com
* Description: Audit and check your website for accessibility before you hit publish. In-post accessibility scanner and guidance.
* Version: 1.43.0
* Version: 1.44.0
* Requires PHP: 7.4
* Author: Equalize Digital
* Author URI: https://equalizedigital.com
Expand All @@ -36,7 +36,7 @@

// Current plugin version.
if ( ! defined( 'EDAC_VERSION' ) ) {
define( 'EDAC_VERSION', '1.43.0' );
define( 'EDAC_VERSION', '1.44.0' );
}

// Current database version.
Expand Down
5 changes: 3 additions & 2 deletions admin/AdminPage/AccessibilityReportsPage.php
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public function render_page() {
]
);

$dashboard_url = edac_link_wrapper( 'https://my.equalizedigital.com/', 'accessibility-reports', 'account', false );
$dashboard_url = edac_link_wrapper( 'https://my.equalizedigital.com/license-keys/', 'accessibility-reports', 'account', false );
$signup_url = edac_link_wrapper( 'https://my.equalizedigital.com/sign-up/', 'accessibility-reports', 'signup', false );
$privacy_url = edac_link_wrapper( 'https://equalizedigital.com/privacy-policy/', 'accessibility-reports', 'privacy', false );
$data_processing_url = edac_link_wrapper( 'https://equalizedigital.com/data-terms/', 'accessibility-reports', 'dpa', false );
Expand Down Expand Up @@ -237,7 +237,8 @@ public function render_page() {
<h3><?php esc_html_e( 'Reports Enabled', 'accessibility-checker' ); ?></h3>
<span class="edac-reports-card__status edac-reports-card__status--success" aria-hidden="true"><?php echo wp_kses( $this->get_status_icon( 'check' ), $allowed_icon_html ); ?></span>
</div>
<p><?php esc_html_e( 'You’ll receive weekly accessibility reports for this site.', 'accessibility-checker' ); ?></p>
<p><?php esc_html_e( 'Weekly accessibility reports for this site are being emailed to the account owner of the license key.', 'accessibility-checker' ); ?></p>

<p class="edac-reports-card__meta">
<?php if ( $next_send_date ) : ?>
<?php /* translators: %s: next report date. */ ?>
Expand Down
28 changes: 15 additions & 13 deletions admin/class-enqueue-admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ public static function maybe_enqueue_admin_and_editor_app_scripts() {
[
'postID' => $post_id,
'nonce' => wp_create_nonce( 'ajax-nonce' ),
'edacApiUrl' => esc_url_raw( rest_url() . 'accessibility-checker/v1' ),
'edacApiUrl' => esc_url_raw( rest_url( 'accessibility-checker/v1' ) ),
'fixesRestUrl' => esc_url_raw( rest_url( 'edac/v1' ) ),
'restNonce' => wp_create_nonce( 'wp_rest' ),
'proUrl' => esc_url_raw( edac_generate_link_type( [ 'utm_content' => '__name__' ] ) ),
'hasDismissEndpoint' => method_exists( \EDAC\Inc\REST_Api::class, 'dismiss_issue' ),
Expand Down Expand Up @@ -133,18 +134,19 @@ public static function maybe_enqueue_admin_and_editor_app_scripts() {
'edac-editor-app',
'edac_editor_app',
[
'postID' => $post_id,
'edacUrl' => esc_url_raw( get_site_url() ),
'edacApiUrl' => esc_url_raw( rest_url() . 'accessibility-checker/v1' ),
'baseurl' => plugin_dir_url( __DIR__ ),
'active' => $active,
'pro' => $pro,
'debug' => $debug,
'scanUrl' => $scan_url,
'maxAltLength' => max( 1, absint( apply_filters( 'edac_max_alt_length', 300 ) ) ),
'version' => EDAC_VERSION,
'postStatus' => get_post_status( $post_id ),
'restNonce' => wp_create_nonce( 'wp_rest' ),
'postID' => $post_id,
'edacUrl' => esc_url_raw( get_site_url() ),
'edacApiUrl' => esc_url_raw( rest_url() . 'accessibility-checker/v1' ),
Comment thread
pattonwebz marked this conversation as resolved.
Outdated
'baseurl' => plugin_dir_url( __DIR__ ),
'active' => $active,
'pro' => $pro,
'debug' => $debug,
'scanUrl' => $scan_url,
'maxAltLength' => max( 1, absint( apply_filters( 'edac_max_alt_length', 300 ) ) ),
'landmarkTypes' => edac_get_landmark_types(),
'version' => EDAC_VERSION,
'postStatus' => get_post_status( $post_id ),
'restNonce' => wp_create_nonce( 'wp_rest' ),
]
);

Expand Down
2 changes: 1 addition & 1 deletion docs/hooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ This document is auto-generated by `tools/generate-hooks-docs.php`. It lists onl
| `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 |
| `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 |
| `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 |
| `edac_pro_setting_saving_checkbox` | action | [includes/options-page.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/options-page.php#L882) | 882 | Filter to run before saving a pro checkbox setting. | 1.31.0 |
| `edac_pro_setting_saving_checkbox` | action | [includes/options-page.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/options-page.php#L881) | 881 | Filter to run before saving a pro checkbox setting. | 1.31.0 |
| `edac_scannable_post_statuses` | filter | [admin/class-settings.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/admin/class-settings.php#L28) | 28 | Filters the list of post statuses that are scannable. | 1.29.0 |
| `edac_settings_tab_content` | action | [partials/settings-page.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/partials/settings-page.php#L175) | 175 | Fires after the settings tab content has maybe been displayed. | 1.4.0 |
| `edac_validate_before_sending_rest_response` | action | [includes/classes/class-rest-api.php](https://github.com/equalizedigital/accessibility-checker/blob/develop/includes/classes/class-rest-api.php#L617) | 617 | Fires before sending the REST response ending the validation process. | 1.14.0 |
Expand Down
2 changes: 1 addition & 1 deletion includes/classes/Rules/Rule/AriaHiddenRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static function get_rule(): array {
'why_it_matters' => esc_html__( 'The aria-hidden attribute is used to hide content from assistive technologies. While this is useful for decorative or redundant elements, it can cause accessibility issues if applied to important content that screen reader users need to access.', 'accessibility-checker' ),
'how_to_fix' => sprintf(
// translators: %s is <code>aria-hidden="true"</code.
esc_html__( 'Check whether the element should truly be hidden from screen reader users. If it contains important content or functionality, remove %s. If it\'s decorative or redundant, leave the element alone and dismiss this warning using the "Ignore" feature in Accessibility Checker.', 'accessibility-checker' ),
esc_html__( 'Check whether the element should truly be hidden from screen reader users. If it contains important content or functionality, remove %s. If it\'s decorative or redundant, leave the element alone and dismiss this warning in Accessibility Checker.', 'accessibility-checker' ),
'<code>aria-hidden="true"</code>'
),
'references' => [
Expand Down
2 changes: 1 addition & 1 deletion includes/classes/Rules/Rule/ImgAltEmptyRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static function get_rule(): array {
'why_it_matters' => esc_html__( 'Screen readers rely on alternative text to describe images to users who cannot see them. If the alt attribute is empty, it signals that the image is decorative and should be skipped. However, if a meaningful image has an empty alt attribute, users with visual impairments will miss important information. Proper use of alternative text improves accessibility and ensures all users can understand the content.', 'accessibility-checker' ),
'how_to_fix' => sprintf(
// translators: %1$s is <code>alt=""</code>, %2$s is <code>role="presentation"</code>, and %3$s is <code>role="none"</code>.
esc_html__( 'Review the image to determine if it is decorative. If it is decorative, it is correct to use an empty %1$s attribute and you can dismiss this warning by using the "Ignore" feature in Accessibility Checker or adding %2$s or %3$s to the image and rescanning the page. If the image conveys information, add descriptive alt text that communicates the image\'s purpose or meaning.', 'accessibility-checker' ),
esc_html__( 'Review the image to determine if it is decorative. If it is decorative, it is correct to use an empty %1$s attribute and you can dismiss this warning in Accessibility Checker or by adding %2$s or %3$s to the image and rescanning the page. If the image conveys information, add descriptive alt text that communicates the image\'s purpose or meaning.', 'accessibility-checker' ),
'<code>alt=""</code>',
'<code>role="presentation"</code>',
'<code>role="none"</code>',
Expand Down
2 changes: 1 addition & 1 deletion includes/classes/Rules/Rule/ImgAltLongRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public static function get_rule(): array {
'why_it_matters' => esc_html__( 'Alternative text should be concise and focused on describing the purpose or meaning of the image. Overly long alt text may overwhelm screen reader users, reduce readability, and distract from other content on the page.', 'accessibility-checker' ),
'how_to_fix' => sprintf(
// translators: %s is the maximum character count for alt text.
esc_html__( 'Shorten the alt text to fewer than %s characters while still describing the image\'s function or purpose. Keep descriptions simple and avoid repeating surrounding content. If the image\'s alt text does not need to be changed, dismiss this warning using the "Ignore" feature in Accessibility Checker.', 'accessibility-checker' ),
esc_html__( 'Shorten the alt text to fewer than %s characters while still describing the image\'s function or purpose. Keep descriptions simple and avoid repeating surrounding content. If the image\'s alt text does not need to be changed, dismiss this warning in Accessibility Checker.', 'accessibility-checker' ),
'300'
),
'references' => [
Expand Down
2 changes: 1 addition & 1 deletion includes/classes/Rules/Rule/ImgAnimatedGifRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public static function get_rule(): array {
'summary' => esc_html__( 'This element is an animated image file (e.g., GIF or animated WebP).', 'accessibility-checker' ),
'summary_plural' => esc_html__( 'These elements are animated image files (e.g., GIFs or animated WebPs).', 'accessibility-checker' ),
'why_it_matters' => esc_html__( 'Animated images can be distracting, induce seizures in some individuals, or create cognitive load. WCAG guidelines require that animations that flash or loop continuously provide a mechanism to pause, stop, or hide them.', 'accessibility-checker' ),
'how_to_fix' => esc_html__( 'Replace the animated image with a static image or a video that includes controls. If you must use an animated image, ensure it does not flash more than three times per second and provide pause or stop controls if it plays for more than 5 seconds. If you have confirmed the image is accessible and pauseable, you can dismiss this warning by using the "Ignore" feature in Accessibility Checker.', 'accessibility-checker' ),
'how_to_fix' => esc_html__( 'Replace the animated image with a static image or a video that includes controls. If you must use an animated image, ensure it does not flash more than three times per second and provide pause or stop controls if it plays for more than 5 seconds. If you have confirmed the image is accessible and pauseable, you can dismiss this warning in Accessibility Checker.', 'accessibility-checker' ),
'references' => [
[
'text' => __( 'Should you use animated GIFs?', 'accessibility-checker' ),
Expand Down
Loading
Loading