{"id":272557,"date":"2026-10-14T02:51:22","date_gmt":"2026-10-14T02:51:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/handypal-accessibility-widget\/"},"modified":"2026-10-15T18:28:53","modified_gmt":"2026-10-15T18:28:53","slug":"handypal","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/handypal\/","author":7928724,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.3","stable_tag":"1.5.3","tested":"7.1.3","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"HandyPal Accessibility Widget","header_author":"HandyPal","header_description":"Add the HandyPal accessibility widget to your WordPress site. Make your website accessible to everyone with 43+ accessibility features.","assets_banners_color":"f6f5ef","last_updated":"2026-10-15 18:28:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.handypal.net\/wordpress","header_author_uri":"https:\/\/www.handypal.net","rating":0,"author_block_rating":0,"active_installs":0,"downloads":145,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.4":{"tag":"1.4.4","author":"rgenzon","date":"2026-10-14 02:51:06","revision":3745197},"1.5.2":{"tag":"1.5.2","author":"rgenzon","date":"2026-10-14 14:28:10","revision":3746597},"1.5.3":{"tag":"1.5.3","author":"rgenzon","date":"2026-10-15 18:28:53","revision":3749126}},"upgrade_notice":{"1.5.0":"<p>Customize appearance and automatic fixes from the WordPress dashboard. Connect with your private HandyPal account token to use the new controls.<\/p>","1.4.4":"<p>Fixes stale website connections when changing tokens and separates directory and direct-download update channels.<\/p>","1.4.3":"<p>WordPress.org plugin review compliance fixes: proper asset handling, input sanitization, and native auto-updates.<\/p>","1.4.0":"<p>Improved WordPress.org compatibility, proper asset enqueuing, and security hardening.<\/p>","1.3.0":"<p>New 2-column layout makes the settings page easier to navigate with less scrolling.<\/p>","1.2.0":"<p>Added auto-update toggle to keep your plugin automatically updated with the latest security fixes and features.<\/p>","1.1.0":"<p>Security improvements and live widget preview that shows your actual dashboard styling.<\/p>","1.0.9":"<p>New widget preview and page exclusion features. Hide the widget on specific pages like checkout or login.<\/p>","1.0.8":"<p>Updated plugin branding and fixed icon display in WordPress updates.<\/p>","1.0.7":"<p>Adds a &quot;Check for updates&quot; button in plugin settings for easy one-click updates.<\/p>","1.0.1":"<p>Fixes CSS loading issue and adds automatic update notifications.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3745197,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3745197,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3745197,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3745197,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.4","1.5.2","1.5.3"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3749126,"resolution":"1","location":"assets","locale":"","width":1600,"height":900},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3749126,"resolution":"2","location":"assets","locale":"","width":1600,"height":900},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3749126,"resolution":"3","location":"assets","locale":"","width":1600,"height":900},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3749126,"resolution":"4","location":"assets","locale":"","width":1600,"height":900},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3749126,"resolution":"5","location":"assets","locale":"","width":1600,"height":900},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3749126,"resolution":"6","location":"assets","locale":"","width":1600,"height":900}},"screenshots":{"1":"Make your site easier to use: visitor-controlled reading and navigation tools on a fictional storefront.","2":"Let visitors read their way: adjust text size and spacing to suit their preferences.","3":"Keep your website's identity: a customizable widget alongside your existing theme.","4":"Keep settings in sync: actual WordPress and HandyPal appearance controls for the same website.","5":"Optional AI assistance on paid plans: help with link, button, and form labels. AI assistance is in beta and needs review.","6":"Know what to work on next: an actual audit of our fictional demo with steps to review and fix an issue. Scans and reports are paid features; manual testing is still needed."}},"plugin_section":[],"plugin_tags":[1447,1953,2682,8940,1956],"plugin_category":[34],"plugin_contributors":[286623],"plugin_business_model":[],"class_list":["post-272557","plugin","type-plugin","status-publish","hentry","plugin_tags-a11y","plugin_tags-accessibility","plugin_tags-ada","plugin_tags-disability","plugin_tags-wcag","plugin_category-accessibility","plugin_contributors-rgenzon","plugin_committers-rgenzon"],"banners":{"banner":"https:\/\/ps.w.org\/handypal\/assets\/banner-772x250.png?rev=3745197","banner_2x":"https:\/\/ps.w.org\/handypal\/assets\/banner-1544x500.png?rev=3745197","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/handypal\/assets\/icon-128x128.png?rev=3745197","icon_2x":"https:\/\/ps.w.org\/handypal\/assets\/icon-256x256.png?rev=3745197","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/handypal\/assets\/screenshot-1.jpg?rev=3749126","caption":"Make your site easier to use: visitor-controlled reading and navigation tools on a fictional storefront."},{"src":"https:\/\/ps.w.org\/handypal\/assets\/screenshot-2.jpg?rev=3749126","caption":"Let visitors read their way: adjust text size and spacing to suit their preferences."},{"src":"https:\/\/ps.w.org\/handypal\/assets\/screenshot-3.jpg?rev=3749126","caption":"Keep your website's identity: a customizable widget alongside your existing theme."},{"src":"https:\/\/ps.w.org\/handypal\/assets\/screenshot-4.jpg?rev=3749126","caption":"Keep settings in sync: actual WordPress and HandyPal appearance controls for the same website."},{"src":"https:\/\/ps.w.org\/handypal\/assets\/screenshot-5.jpg?rev=3749126","caption":"Optional AI assistance on paid plans: help with link, button, and form labels. AI assistance is in beta and needs review."},{"src":"https:\/\/ps.w.org\/handypal\/assets\/screenshot-6.jpg?rev=3749126","caption":"Know what to work on next: an actual audit of our fictional demo with steps to review and fix an issue. Scans and reports are paid features; manual testing is still needed."}],"raw_content":"<!--section=description-->\n<p>Make your website easier to use. HandyPal gives visitors control over text, contrast, reading, and navigation. Customize the widget in WordPress and keep your settings in sync with your HandyPal dashboard.<\/p>\n\n<p>Start with the Free visitor widget. Paid plans add background fixes, optional AI assistance for labels, accessibility scans, and PDF reports. Use these tools to find your next improvements, alongside manual testing and fixes.<\/p>\n\n<h4>Help visitors read their way<\/h4>\n\n<p>Give visitors control over text size, spacing, contrast, reading guides, and browser-based text-to-speech. They choose the preferences that help them use your pages.<\/p>\n\n<h4>Keep your website's identity<\/h4>\n\n<p>Choose your widget color, icon, size, and position. Your existing theme stays in place.<\/p>\n\n<h4>Customize once. Keep settings connected<\/h4>\n\n<p>Adjust widget appearance and visibility in Settings &gt; HandyPal or in your HandyPal dashboard. Saved settings are shared between both dashboards.<\/p>\n\n<h4>Find your next improvement<\/h4>\n\n<p>Paid plans add background fixes, optional AI assistance for link, button, and form labels, accessibility scans, and PDF reports. AI assistance is in beta. Review the results on your pages; automated tools complement manual testing and fixes.<\/p>\n\n<h4>Accessibility Features Include<\/h4>\n\n<ul>\n<li>Adjust text size, line height, and letter spacing<\/li>\n<li>High contrast modes (smart, high, higher, highest)<\/li>\n<li>Reading guide and reading mask<\/li>\n<li>Dyslexia-friendly font<\/li>\n<li>Hide images option<\/li>\n<li>Keyboard navigation enhancements<\/li>\n<li>Focus indicators<\/li>\n<li>Color blind filters (protanopia, deuteranopia, tritanopia, achromatopsia)<\/li>\n<li>Text-to-speech narration<\/li>\n<li>Page zoom<\/li>\n<li>Stop animations<\/li>\n<li>And many more...<\/li>\n<\/ul>\n\n<h4>Quick Setup<\/h4>\n\n<ol>\n<li>Install and activate the plugin<\/li>\n<li>Go to Settings &gt; HandyPal<\/li>\n<li>Enter your account token from handypal.net<\/li>\n<li>The widget automatically appears on your site!<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>A HandyPal account (Free plan available at <a href=\"https:\/\/www.handypal.net\">handypal.net<\/a>)<\/li>\n<li>WordPress 5.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to HandyPal when you save or verify your account token. It sends the token, site URL, and site name to https:\/\/www.handypal.net\/api\/wordpress\/validate to authenticate and register the website. When enabled, the widget loads JavaScript and CSS from https:\/\/cdn.handypal.net and requests its configuration from HandyPal. Widget usage events may be sent to HandyPal. A HandyPal account and an authorized plan are required.<\/p>\n\n<p>Service terms: https:\/\/www.handypal.net\/terms\nPrivacy policy: https:\/\/www.handypal.net\/privacy<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>HandyPal collects the following data:\n* Your website URL and name (for registration and widget configuration)\n* Widget usage analytics (how often the widget is opened)<\/p>\n\n<p>Visitor analytics are handled by the HandyPal service. See the <a href=\"https:\/\/www.handypal.net\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<h3>Support<\/h3>\n\n<ul>\n<li>Documentation: <a href=\"https:\/\/www.handypal.net\/help\">handypal.net\/help<\/a><\/li>\n<li>Support: <a href=\"https:\/\/www.handypal.net\/contact\">handypal.net\/contact<\/a><\/li>\n<li>Dashboard: <a href=\"https:\/\/www.handypal.net\/dashboard\">handypal.net\/dashboard<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<p>Search for \"HandyPal\" under Plugins &gt; Add New, install and activate it, then open Settings &gt; HandyPal.<\/p>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin ZIP file<\/li>\n<li>Log in to your WordPress admin dashboard<\/li>\n<li>Go to Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Choose the ZIP file and click \"Install Now\"<\/li>\n<li>Activate the plugin<\/li>\n<li>Go to Settings &gt; HandyPal to configure<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Log in to your <a href=\"https:\/\/www.handypal.net\/dashboard\">HandyPal dashboard<\/a><\/li>\n<li>Go to Settings and copy your Account Token<\/li>\n<li>In WordPress, go to Settings &gt; HandyPal<\/li>\n<li>Paste your Account Token and save<\/li>\n<li>Your website will be automatically registered and the widget will appear<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20handypal%20account%3F\"><h3>Do I need a HandyPal account?<\/h3><\/dt>\n<dd><p>Yes. The Free plan includes the visitor widget for one website, with HandyPal branding and 5,000 widget loads per month. Paid plans add background fixes, optional AI assistance, scans, and PDF reports. See current plans and trial terms at <a href=\"https:\/\/www.handypal.net\/pricing\">handypal.net<\/a>.<\/p><\/dd>\n<dt id=\"will%20this%20slow%20down%20my%20website%3F\"><h3>Will this slow down my website?<\/h3><\/dt>\n<dd><p>The widget loads asynchronously from the HandyPal CDN. Performance depends on your site, network, and configuration.<\/p><\/dd>\n<dt id=\"is%20handypal%20wcag%202.1%20compliant%3F\"><h3>Is HandyPal WCAG 2.1 compliant?<\/h3><\/dt>\n<dd><p>HandyPal provides visitor accessibility tools. Installing a widget does not guarantee WCAG conformance or legal compliance. Audit your content and fix accessibility issues in your site code.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>The plugin includes JavaScript exclusions for WP Rocket, LiteSpeed Cache, and Autoptimize. Test your caching setup after installation.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20on%20multiple%20sites%3F\"><h3>Can I use this on multiple sites?<\/h3><\/dt>\n<dd><p>Yes! Depending on your plan, you can use HandyPal on 1-20+ websites. Each WordPress installation will automatically register as a site on your account.<\/p><\/dd>\n<dt id=\"what%20if%20i%20already%20have%20another%20accessibility%20plugin%3F\"><h3>What if I already have another accessibility plugin?<\/h3><\/dt>\n<dd><p>HandyPal will detect other accessibility plugins and display a warning. We recommend using only one accessibility widget to avoid conflicts.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customize%20the%20widget%20appearance%3F\"><h3>How do I customize the widget appearance?<\/h3><\/dt>\n<dd><p>Open Settings &gt; HandyPal in WordPress to change widget color, icon, size, position, and visibility. You can also customize the same website in your HandyPal dashboard. Saved settings sync between both dashboards.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20subscription%20expires%3F\"><h3>What happens if my subscription expires?<\/h3><\/dt>\n<dd><p>The widget will stop appearing on your site. Your settings are preserved, so if you resubscribe, the widget will work again automatically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Clarify visitor tools, paid background fixes, optional AI assistance, and audits.<\/li>\n<li>Update setup instructions for the published WordPress.org plugin.<\/li>\n<li>Clarify that saved widget settings sync with the HandyPal dashboard.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Refresh clean, visible dashboards every 15 seconds without replacing unsaved edits.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Share widget visibility and page-path rules with the HandyPal dashboard.<\/li>\n<li>Retire local visibility overrides after an explicit import\/keep choice when needed.<\/li>\n<li>Refresh shared settings when returning to either dashboard, preserving unsaved edits.<\/li>\n<li>Save only changed appearance fields so unrelated settings from the other dashboard are preserved.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Customize widget color, position, icon, and size directly in Settings &gt; HandyPal.<\/li>\n<li>Control automatic accessibility fixes in grouped WordPress dashboard controls.<\/li>\n<li>Keep appearance and fixes synchronized with your HandyPal website settings.<\/li>\n<li>Private account tokens stay server-side; site ownership and active subscriptions are verified on every request.<\/li>\n<li>Tested on WordPress 7.1.3 and PHP 8.3, with PHP 7.4 compatibility regression coverage.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Fixed: Replacing or clearing an account token disconnects the previous website.<\/li>\n<li>Fixed: Validation and fallback caches are bound to the token; fallback expires after 24 hours.<\/li>\n<li>Improved: Repeatable WordPress.org and direct-download packaging with consistent release metadata.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Fixed: Removed directory assets (banners, icons, screenshots) from plugin package<\/li>\n<li>Fixed: Removed inline script\/style tags, using wp_enqueue exclusively<\/li>\n<li>Fixed: Renamed main plugin file to follow plugin-slug.php convention<\/li>\n<li>Fixed: Removed discouraged load_plugin_textdomain() call<\/li>\n<li>Fixed: Proper input sanitization for nonce verification<\/li>\n<li>Removed: Custom auto-update filter in favor of WordPress native auto-updates<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Improved: Widget assets now loaded via wp_enqueue_style and wp_enqueue_script for better compatibility<\/li>\n<li>Improved: Proper output escaping throughout admin interface<\/li>\n<li>Improved: WordPress.org plugin guidelines compliance<\/li>\n<li>Fixed: Prefixed global variables in uninstall routine<\/li>\n<li>Removed: Debug logging from production code<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Improved: New 2-column layout for settings page - easier to navigate and less scrolling<\/li>\n<li>Improved: Cleaner sidebar with connection status, updates, and quick links<\/li>\n<li>Improved: More compact auto-update toggle design<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added: Auto-update toggle - keep your plugin automatically updated with the latest features and security fixes<\/li>\n<li>Added: Auto-updates enabled by default for new installations<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Live widget preview with actual dashboard styling<\/li>\n<li>Security: Added nonce verification for cache clear operations<\/li>\n<li>Security: Added environment check for SSL bypass in dev mode<\/li>\n<li>Security: Improved escaping of dynamic content<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Added: Widget preview in admin settings<\/li>\n<li>Added: Page exclusion feature - hide widget on specific pages<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Added: HandyPal shield logo on plugin settings page<\/li>\n<li>Fixed: Icon handling in update info<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Added: Check for updates section in plugin settings with one-click update<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Improved: Reduced update cache time and added force refresh support<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Improved: Customize link now goes directly to website's customize page<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added: Helpful message directing users to HandyPal Dashboard for widget customization<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Removed: Documentation link from settings<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Removed: Position setting from plugin (now syncs from HandyPal dashboard)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: Widget CSS now loads correctly<\/li>\n<li>Added: Automatic update notifications<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Account token authentication<\/li>\n<li>Automatic website registration<\/li>\n<li>Caching plugin compatibility<\/li>\n<li>Conflict detection with other accessibility plugins<\/li>\n<li>24-hour fallback caching for API issues<\/li>\n<\/ul>","raw_excerpt":"Help visitors read and navigate your site with customizable text, contrast, and reading tools.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/272557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=272557"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rgenzon"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=272557"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=272557"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=272557"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=272557"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=272557"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=272557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}