Skip to content

Release/v4.1.3#570

Merged
bainternet merged 343 commits into
masterfrom
release/v4.1.3
Jul 7, 2026
Merged

Release/v4.1.3#570
bainternet merged 343 commits into
masterfrom
release/v4.1.3

Conversation

@DinetsV

@DinetsV DinetsV commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

✨ PR Description

1. Problem & Context

Release v4.1.3 consolidates branding (Ally → Web Accessibility), adds Elementor One integration with migration popup, and improves remediation robustness. Version bump from 4.1.2.

2. What Changed (Where)

Category Changes
Branding UI strings, help text, modal titles across 20+ files (Ally → Web Accessibility)
One Integration New MigrationModal, migration API endpoint, tracking infrastructure, popup dismissal state
Remediation Removed global flag; unified element lookup via get_element_by_xpath_with_snippet_fallback; added frontend fallback logic
Review Flow New ThanksForm page, call scheduling, multistate popup (ratings→feedback→thanks) with PAGE_IDS constants
Deactivation Fixed field ID mappings (ea11y_ prefix), added event delegation for option clicks, resetModal on open
Dashboard Fixed stats calculation (issues_total → issues_opened), progress SVG rendering
Dependencies Updated wp-one-package (1.0.62→1.0.66), elementor-one-assets (0.4.35→0.4.38), mixpanel-browser (2.58.0→2.80.0)
Scanner Added public DOM normalization (fetch anonymous page, remove admin-only markup before scanning), re-run remediations post-normalization

3. How It Works

Migration Flow: Settings context checks hasElementorOneSubscription && !isElementorOne && !isMigrationPopupDismissed → triggers MigrationModal. User clicks "Move to One" → calls migrateToOne() API endpoint (/elementor-one/v1/plugins/pojo-accessibility/migration/run), tracks event via mixpanel, reloads on success.

Remediation Simplification: Removed conditional isGlobal ? snippet_fallback : xpath_only. Now always attempts XPath first, validates snippet match if provided, falls back to snippet search. Constructor uses exists_with_fallback() to mark non-STYLES failures as frontend-deferred.

Scanner DOM Normalization: On load, fetches public page (credentials: omit), builds stable element signatures (tag + id + stable classes + data attrs), removes orphaned admin-markup from live DOM, stores removed nodes, re-runs remediations against normalized tree. On widget close, restores original markup.

Review Multistate: Rating triggers submit or feedback flow (rating < 4 → feedback page, rating ≥ 4 → thanks). Thanks page shows call scheduling buttons. Feedback submit also lands on thanks. Dismissal/submit logic checks avoidClosing flag for success toast timing.

4. Risks

  • One Integration Untested: New migration endpoint unvalidated; assumes Elementor One facade API stable. User reload mid-migration unhandled.
  • DOM Normalization Fragile: Signature matching relies on stable class detection (regex hardcoded); plugins adding dynamic classes break matching. Removed nodes cached indefinitely if widget never closes.
  • Deactivation Event Delegation: Added global click handler on document; clicks inside text fields now trigger option handlers (guarded by e.target.closest('.ea11y-feedback-option')), but nested elements risk misfires.
  • Branding Strings Incomplete: @ea11y-apps scope strings unchanged; scattered "Ally" references may remain in untouched modules or translations.
  • Dashboard Stats Logic Change: issues_totalissues_opened calculation differs; if issues_total summed across scans differently, rendering could misreport progress.

Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Description using Guidelines Learn how

bainternet and others added 30 commits March 10, 2025 08:32
* update: convert imports to named imports

* add: function to check if current screen is settings page

* update: rename elementor logo to app logo

* add: url mismatch flow and components

* update: remove obsolete code

* Update modules/connect/rest/authorize.php

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>

* Update modules/settings/module.php

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>

* fix: modal was not closing

* update: remove url mismatch notice

* update: mismatch modal and rendering logic

* add: toast notifications for errors

* update: convert components into styled components

* update: remove bottom border from the dialog

* update: text copy

* fix: logo alignment

* update: renamed styled component

---------

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>
* [APP-1108][APP-1109][APP-1110] Add analytics backend logic

* [APP-1108][APP-1109][APP-1110] Add analytics backend logic

* Add nonce to the widget settings

* Update routes and DB table

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments
* update: add save changes footer to the bottom and remove it from capabilities

* add: logic to save settings for skiptocontent using footer

* update: text

* update: convert component to styled component
* add: quota bar

* add: openLink helper function

* add: styled elements and visits link placeholder

* update: remove hover state from the box

* add: quota notices

* update: quota access and usage calculations

* add: logic to calculate plan usage

* update: move logic to calculate plan usage to hook

* add: todo note

* add: todos

* add: mixpanel events

* fix: hide quota bar when sidebar is minimized

* fix: settings panel was not expanding when sidebar is minimized

* update: text and structure of the bar

* update: quota calculation logic

* update: remove TODOs

* update: text and values

* fix: height of the container for icon settings

* update: golinks

* update: golinks
* [APP-1108][APP-1109][APP-1110] Add analytics backend logic

* [APP-1108][APP-1109][APP-1110] Add analytics backend logic

* Add nonce to the widget settings

* Update routes and DB table

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1201] add accessibility rules

* [APP-1107] fixed API endpoint

* [APP-1107] fixed API endpoint

* [APP-1107] fixed API endpoint

* [APP-1107] add check for is_active

* update to the latest

* update to the latest

* update to the latest

* fix bugs, add changes

* fix bugs, add changes

* fix bugs, add changes

* fix bugs, add changes
* add: volume and solid crown icon

* add: volume and crown icons to export

* update: refactor menu item to a new component

* add: screen reader to the menu items and reorganize them

* add: pro item infotip content

* add: capabilities item and pro info tip to exports

* update: import ProInfoTip component and change disabled logic

* update: imports

* update: refactor pro item infotip into the separate component

* update: refactor infotip and add comments

* add: custom switch component

* add: logo settings layout

* update: switch component

* add: useToggleSetting hook to manage widget settings.

* update: move pro feature key to a separate constant

* fix: pro icon style

* update: remove branding key

* update: pro enable check structure

* update: pro enabled check structure

* update: key name

* update: update key before checking for it

* fix: null error

* add: update logic to get the tools settings based on plan

* update: exclude remove-elementor-label from the minimum option rule

* update: add formlabel and eventnames

* add: logic to deactivate the features which are disabled for the plan

* fix: PHP warning

* fix: keyword name

* add: GOLINKS

* add: open link function

* fix: PHP warning undefined key

* update: logic to show the icon and added golinks
* add: plan name and subscription link

* update: refactor my account menu

* update: move truncate email to a helper file

* update: simplify truncation logic
* add: force update site/info on mismatch url

* update: add a constant for the transient

* add: delete_transient for switch account as well

* add: delete_transient for disconnect as well
* fix: undefined was shown when there is no quota data

* add: preloader
* fix: pro tip spacing

* fix: pro icon
* update: hide info button on minimized sidebar

* fix: alignment of quota bar icon

* fix: conditional logic

* update: improve sidebar motion

* fix: switch account issue
* fix: format display of percentage correctly.

* update: fraction conversion logic
* reduce transient timeout

* force referrer in script tags
* [APP-1262] Enable routes for get statistic on disabled analytics

* [APP-1262] Enable routes for get statistic on disabled analytics

* [APP-1262] Enable routes for get statistic on disabled analytics

* [APP-1262] Enable routes for get statistic on disabled analytics

* [APP-1262] Enable routes for get statistic on disabled analytics

* [APP-1262] Enable routes for get statistic on disabled analytics
* add: admin quota notices

* add: fix function name and phpcs issues

* fix: formatting issues
* fix: wp notice close logic plus banner text

* update: banner text
* add: missing mixpanel events

* update: use variable for hardcoded names

* update: use variable for hardcoded names
* update: add additional check to prevent fatal error

* fix: formatting
* add: icon radius component

* add: icon radius component

* update: add support for widget radius

* fix: minor ui fixes

* fix: resolve comments

* fix: alignment of the icon

* update: add styled components

* add: corner radius mixpanel event

* fix: corner radius should have default values when no value is set based on icon

* fix: icon radius input style

* add: accessibility attributes

* fix: active states color

* add: logic to control invalid inputs

* update: make aria attributes translatable

* update: styled component names

* add: spacing between the components
)

* [APP-0000] store plan scope after register/switch

* Update modules/settings/module.php

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>

* remove deprecated method

* remove deprecated method

* [1342] Add super prop to mixpanel

* [1342] Add super prop to mixpanel

* [1342] Add super prop to mixpanel

---------

Co-authored-by: Pavlo Kniazevych <139438463+pkniazevych@users.noreply.github.com>
rami-elementor and others added 14 commits June 9, 2026 11:28
* update: review ui for new design

* feat: add PAGE_IDS enum to constants

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: extract styled components in thanks-form

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: extract styled component and use PAGE_IDS in dismiss-button

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: use PAGE_IDS enum in user-feedback-form

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: use PAGE_IDS enum in rating-form and use-settings

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: pr comments

* feat: enhance feedback handling and improve thanks message based on user rating

* Fix: Update the thanks form's heading level [APP-2473]

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Kniazevych <pavlok@elementor.red>
* [APP-2954] AI fix not work

* [APP-2954] AI fix not work

* [APP-2954] AI fix not work
* APP-2894 One Migration flow: Move Accessibillity to One

* Added mixpanel events for one_migration_popup_displayed and one_migration_button_clicked actions
…dded interaction result "skip_migration" (#567)

* APP-2894 One Migration flow: Move Accessibillity to One

* Added mixpanel events for one_migration_popup_displayed and one_migration_button_clicked actions

* Removed X icon for the migration popup
@wiz-9a149474ff

wiz-9a149474ff Bot commented Jun 26, 2026

Copy link
Copy Markdown

Wiz Scan Summary

Scanner Findings
Vulnerability Finding Vulnerabilities -
Data Finding Sensitive Data -
Secret Finding Secrets -
IaC Misconfiguration IaC Misconfigurations 1 Low
SAST Finding SAST Findings -
Software Management Finding Software Management Findings -
Total 1 Low

View scan details in Wiz

To detect these findings earlier in the dev lifecycle, try using Wiz Code VS Code Extension.

Comment thread readme.txt
7. Scanner dashboard: Track your site's accessibility scans, monitor open issues, and follow progress over time.

== Changelog ==
= 4.1.3 – 2026-06-29 =

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changelog items for the release are missing.

Comment thread package.json Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not updating mixpanel here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will do

nirbhayel
nirbhayel previously approved these changes Jun 30, 2026
DinetsV added 2 commits July 2, 2026 13:52
* [APP-2954] fix selector to use fallback snippet

* [APP-2954] fix selector to use fallback snippet

* [APP-2954] fix selector to use fallback snippet
nirbhayel
nirbhayel previously approved these changes Jul 2, 2026
@bainternet bainternet merged commit 44c29d8 into master Jul 7, 2026
78 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants