Usabilis Documentation
Version: 3.6.0 | Last update: 23 Dicembre 2025
Usabilis is a complete solution to make your site more accessible.
What is Usabilis
Usabilis is a WordPress plugin that adds an advanced accessibility widget to your site, allowing users to customize their browsing experience based on their specific needs.
Main features
35+ Accessibility Features
Pre-configured profiles, text control, colors, navigation, speech synthesis and much more.
Optimized Performance
Lightweight widget that doesn't slow down your website.
Easy to Configure
Simple installation and intuitive control panel.
System requirements
| Requirement |
Minimum |
Recommended |
| WordPress |
5.0 |
6.0 or higher |
| PHP |
7.2 |
8.0 or higher |
| MySQL |
5.6 |
8.0 or higher |
| Browser |
Chrome, Firefox, Safari, Edge (recent versions) |
License types
- 1 domain
- All accessibility controls
- Email support
- 5 domains
- All accessibility controls
- Color customization
- Widget icon size
- Priority support
- Unlimited domains
- All accessibility controls
- Color customization
- Widget icon size
- Custom CSS
- Priority support
- White label
Installation
Important:: Important: Make sure you have a valid license before proceeding with the installation.
Method 1: Upload via WordPress
- Download the plugin ZIP file from your client area
- Access the WordPress administration panel
- Go to Plugins → Add New
- Click on Upload Plugin
- Select the ZIP file and click Install Now
- Activate the plugin
Method 2: Upload via FTP
- Extract the plugin ZIP file
- Connect to your server via FTP
- Upload the
usabilis folder to /wp-content/plugins/
- Access the WordPress panel and go to Plugins
- Find Usabilis and click Activate
Post-installation
After activating the plugin:
- Go to Settings → Usabilis
- Enter your license key
- Configure the widget settings
- Verify that the widget appears correctly on the frontend
Configuration
License activation
- Access Settings → Usabilis
- Enter the license key in the appropriate field
- Click on Save License
- Verify that the status shows "Active License"
Widget configuration
Button position
You can choose where to position the widget opening button:
- Bottom right (default)
- Bottom left
- Center right
- Center left
Support email
Enter the email that will be shown in the accessibility statement to allow users to contact you.
Enable/Disable the widget
You can temporarily disable the widget by unchecking the "Show accessibility panel in frontend" option.
New Visibility Options (v3.3.0+)
NEW! New! Since version 3.3.0 you can control where and how to show the widget with greater precision.
Hide on Mobile
This option allows you to completely hide the widget on mobile devices. Useful if:
- You have a dedicated mobile app with integrated accessibility features
- Your mobile design uses different approaches for accessibility
- You want to optimize performance on devices with limited resources
Warning:: Warning: If you hide the widget on mobile, make sure to provide accessibility alternatives for mobile users.
Section Management
You can now choose exactly which widget sections to show to your users:
Accessibility Profiles
Preset modes for different disabilities (Visually Impaired, ADHD, Epilepsy, etc.)
CONTENT Section
Controls for text, font, spacing and alignment
COLORS Section
Controls for contrast, brightness, saturation and color inversion
ORIENTATION Section
Navigation tools like reading line, mask and highlighting
How to configure:
- Go to Settings → Usabilis
- Find the "Widget Configuration" section
- Check/uncheck the checkboxes for each section
- Click on "Save Configuration"
Important:: Important: At least one section must remain active. The system will prevent deactivating all sections.
Widget Features
Accessibility profiles
| Profile |
Description |
Applied settings |
| Visually Impaired Mode |
Improves site visibility |
Larger text, readable font, increased saturation |
| Seizure Safe Profile |
Eliminates flashes and reduces color |
Grayscale, disable animations |
| ADHD Friendly Mode |
Focused navigation, without distractions |
Increased saturation, reading mask |
| Blind Users Mode |
Optimized for screen readers |
High contrast, maximum brightness |
| Epilepsy Safe Mode |
Dampens colors and removes flashes |
Grayscale, stop animations |
Content controls
Larger text
Increases text size up to 130%
Cursor
Changes cursor type (pointer, crosshair, text)
Line height
Increases space between lines to improve readability
Letter spacing
Increases space between letters
Readable font
Replaces fonts with Arial for maximum readability
Dyslexia font
Applies OpenDyslexic font optimized for dyslexics
Color controls
Invert colors
Inverts all page colors
Brightness
Adjusts overall site brightness
Contrast
Increases or decreases contrast
Saturation
Adjusts color intensity
Orientation tools
Reading line
Shows a horizontal line that follows the mouse
Keyboard navigation
Highlights elements when navigating with TAB
Highlight titles
Emphasizes all titles (H1-H6)
Reading mask
Darkens areas above and below the reading point
Advanced accessibility tools
Read the page
Allows clicking on any page text to hear it through speech synthesis. Includes:
- Reading of text, links, buttons and labels
- Automatic multilingual support
- Mini player with stop control
- Highlighting of text being read
Disable animations
Stops all CSS and JavaScript animations on the site for motion-sensitive users. Includes:
- Stop CSS animations
- Block parallax effects
- Disable transitions
- Support for prefers-reduced-motion
Customization
Customization features are available for Pro and Enterprise licenses.
Color customization (Pro/Enterprise)
With a Pro or Enterprise license you can customize:
- Main color: The color of the button and active elements
- Icon size: Small, Medium, Large or Very Large
// Settings are automatically saved
// and applied to the widget in real time
Custom CSS (Enterprise)
Available only for Enterprise licenses
With an Enterprise license you can add custom CSS to completely modify the widget appearance:
/* Example: Change widget border radius */
.wpap-section {
border-radius: 0 !important;
}
/* Example: Custom font for title */
.wpap-sidebar-header h2 {
font-family: 'Montserrat', sans-serif !important;
}
/* Example: Custom animation for button */
.wpap-toggle-button {
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}
/* Example: Customize reading mini player */
.wpap-reading-mini-player {
background: #1a202c !important;
border-radius: 20px !important;
}
/* Example: Style for highlighted text during reading */
.wpap-reading-active {
background: rgba(52, 179, 228, 0.2) !important;
padding: 2px 4px !important;
border-radius: 4px !important;
}
White Label (Enterprise)
Enterprise licenses automatically remove the "Developed by STUDIO 09" branding from the widget.
Visibility and Sections Control
NEW v3.3.0: New v3.3.0: Now you have complete control over where and how to show the widget!
Device Visibility
Hide on Mobile
The widget can be completely hidden on mobile devices. This is useful for:
- Mobile Apps: If you have an app with integrated accessibility features
- Responsive Design: If your mobile design uses different approaches
- Performance: To optimize loading on devices with slow connections
How does mobile detection work?
The system uses three methods to identify mobile devices:
- User Agent: Detects Android, iOS, Windows Phone, etc.
- Touch Screen: Verifies touch capabilities
- Screen Size: Considers mobile devices with width ≤ 768px
// The widget automatically checks if it's on mobile
if (config.hideOnMobile && isMobileDevice()) {
// Widget is not loaded
return;
}
Granular Section Control
Why control sections?
Not all sites have the same needs. Some examples:
- Minimalist blog: You might only want text controls
- Corporate site: Only preset profiles for simplicity
- E-commerce: Focus on contrast and readability
- Educational portal: All features active
Best Practices
- Analyze your users' needs
- Start with all sections active
- Gradually remove unused ones
- Monitor user feedback
- Deactivating too many sections at once
- Hiding on mobile without alternatives
- Ignoring accessibility needs
- Relying only on assumptions
Configuration Examples
"Essential" Configuration
✓ Accessibility Profiles
✗ CONTENT Section
✗ COLORS Section
✗ ORIENTATION Section
Ideal for: Sites with already optimized design that only want to offer quick profiles.
"Reading" Configuration
✗ Accessibility Profiles
✓ CONTENT Section
✗ COLORS Section
✓ ORIENTATION Section
Ideal for: Blogs, news sites, documentation portals.
"Visual" Configuration
✗ Accessibility Profiles
✗ CONTENT Section
✓ COLORS Section
✗ ORIENTATION Section
Ideal for: Galleries, portfolios, sites with strong visual component.
Frequently Asked Questions
No, the widget is optimized for performance. It loads asynchronously and is very lightweight. Additionally, it uses a global CDN to ensure fast loading times.
It depends on the license type:
- Basic: 1 domain
- Pro: up to 5 domains
- Enterprise: unlimited domains
You can manage your domains from the client panel.
Yes, the widget is fully GDPR compliant. User preferences are saved only in the local browser (localStorage) and are not sent to external servers. Usage statistics are anonymous and aggregated.
Yes! Since version 3.3.0 you can activate the "Hide on Mobile" option in the widget settings. The widget won't be loaded on devices with screens smaller than 768px or that are detected as mobile touch devices.
Certainly! With version 3.3.0 you can choose which sections to show:
- Accessibility Profiles: The preset modes
- CONTENT: Text controls
- COLORS: Color and contrast management
- ORIENTATION: Navigation tools
At least one section must remain active for the widget to function.
On the contrary! The new options improve performance:
- By disabling unnecessary sections, the widget becomes lighter
- Conditional loading reduces impact on Core Web Vitals metrics
Yes! The speech synthesis function automatically uses the site language detected by WordPress. We currently support:
- Italian (it-IT)
- English (en-US)
- Spanish (es-ES)
- French (fr-FR)
- German (de-DE)
Voice quality depends on the user's browser and operating system.
The function adds the wpap-no-animations class to the body and sets animation: none !important on all elements. If you have critical animations that must remain active, you can exclude them by adding more specific CSS rules in your theme.
Troubleshooting
The widget doesn't appear on the site
- Verify that the plugin is active
- Check that the license is valid and active
- Make sure the "Show accessibility panel" option is active
- Clear site and browser cache
- Check the browser console for JavaScript errors
"Invalid license" error
- Verify you have correctly copied the license key
- Check that the license hasn't expired
- Make sure the domain is authorized for this license
- Try clicking "Verify Now" to update the status
The "Read the page" function doesn't work
- Verify that the browser supports Web Speech API (see compatibility table)
- Check that audio is not muted in the browser
- On some mobile browsers, speech synthesis requires user interaction before working
- Make sure there are no browser extensions blocking speech synthesis
Conflicts with other plugins
If you encounter compatibility issues:
- Temporarily deactivate other plugins one by one
- Identify which plugin causes the conflict
- Contact support with conflict details
Performance issues
If you notice slowdowns after installation:
- Verify that your hosting meets minimum requirements
- Use a caching plugin (W3 Total Cache, WP Rocket)
- Enable GZIP compression on the server
- Consider using a CDN
- If you use "Disable animations", some features like reading line and magnifier might be automatically disabled
Debug mode
To enable debug mode and get more information:
// wp-config.php
define('WPAP_DEBUG', true);
Changelog
🌐 Multilingual Accessibility Statement
- 5 Languages Support: Italiano 🇮🇹, English 🇬🇧, Deutsch 🇩🇪, Français 🇫🇷, Español 🇪🇸
- Tab Interface: Edit declaration texts for each language directly from the admin panel
- Default Texts: Each language has professional default texts ready to use
- Automatic Detection: The widget displays the declaration in the WordPress site language
- Smart Fallback: If a language is not configured, it uses the default values
✨ New Features
- Customizable sections per language: Commitment, Approach, Features, Feedback, Limitations
- Complete features list with all 24 plugin features
- Common fields (organization, conformance level, date) shared across all languages
🐛 Bug Fix
- Fixed UTF-8 encoding for emojis in admin notifications
- Resolved WordPress automatic slashes issue in textarea fields
- Fixed custom declaration checkbox not saving correctly
- Improved MutationObserver to prevent declaration duplications
New Features
- Enterprise Icon Customization: Added the ability to change the widget icon for Enterprise plans
Bug Fix
🎉 New Accessibility Features
- 🎙️ "Read the page" (Click to Read):
- Click on any text to hear it through speech synthesis
- Automatic multilingual support based on site language
- Mini player with stop control during reading
- Visual highlighting of text being read
- Contextual recognition (announces "Link:", "Button:", etc.)
- Support for image alternative texts
- 🚫 "Disable animations":
- Stops all CSS and JavaScript animations
- Blocks parallax effects
- Native support for prefers-reduced-motion
- Automatically disables smooth scroll
- Optimized for users with vestibular disorders
🌍 Complete Multilingual Support
- New Supported Languages:
- 🇪🇸 Spanish (es_ES)
- 🇫🇷 French (fr_FR)
- 🇩🇪 German (de_DE)
- In addition to 🇮🇹 Italian and 🇬🇧 English already present
- WPML Integration: Automatic site language detection with full compatibility for WPML, Polylang, TranslatePress and other multilingual plugins
- Intelligent Fallback System:
- Exact locale match (e.g: es_ES)
- Partial match for regional variants (e.g: es_* for any Spanish)
- Primary fallback to Italian, secondary to English
🎯 Complete Translations
- All UI strings professionally translated
- Accessibility statement localized in each language
- Labels, descriptions and messages fully translated
- Support for special characters and local formatting
- Specific messages for new features in all languages
💻 Technical Improvements
- Automatic WordPress locale detection via
get_locale()
- Dynamic translation loading without performance impact
- Optimized event listener management for new features
- Improved screen reader compatibility when "Read the page" is active
🐛 Bug Fixes
- Improved UTF-8 character handling in all languages
- Fixed encoding issues with apostrophes and special characters
- Fixed conflicts with some third-party animations
- Fixed speech synthesis handling on Safari iOS
- Fixed text highlighting issue on complex elements
⚡ Performance
- New features add only ~8KB to widget weight
- Lazy loading of speech synthesis only when needed
- Optimizations to reduce CPU usage when animations are disabled
✅ Tested Compatibility
- WPML 4.6+
- Polylang 3.5+
- TranslatePress 2.6+
- Weglot 4.0+
- WordPress Multisite with different languages per site
- All major screen readers (JAWS, NVDA, VoiceOver)
🎉 New Features
- Mobile Visibility Control: New option to completely hide the widget on mobile devices
- Custom Section Management: Ability to individually enable/disable each widget section:
- Accessibility Profiles
- CONTENT Section
- COLORS Section
- ORIENTATION Section
- Improved Embed Code Generator: New "Visibility" tab for non-WordPress sites
💻 Improvements
- Redesigned admin interface with new visibility options
- Intelligent validation ensuring at least one active section
- 30% optimized performance on mobile when widget is hidden
- Improved mobile device detection (user agent + touch + screen size)
- Clearer feedback messages in admin panel
🐛 Bug Fixes
- Fixed widget settings saving issues
- Fixed backward compatibility with existing installations
- Fixed default handling in new installations
- Fixed CSS conflicts with some WordPress themes
📝 Notes
- 100% backward compatible update - no action required
- New options have default values that maintain previous behavior
- Tested with WordPress 6.7 and PHP 8.3
Improvements
- Improved compatibility with WordPress 6.7
- New widget customization options for Pro licenses
- Added support for OpenDyslexic 3 font
- Optimized widget performance
Bug Fixes
- Fixed issue with reading mask on Safari
- Fixed display on devices with notch
New features
- Added "Disable animations" control
- Support for prefers-reduced-motion
- White label mode for Enterprise licenses
New features
- Notification system for updates
- CSS customization for Enterprise
- Improved mobile interface